2022年10月23日日曜日

【備忘録】ROMライター CH341A の使い方

Amazonで購入したROMライター CH341A、使用できる状態にするまでに割と時間がかかったので備忘録。


購入した物

「VKLSVAN CH341Aライター SPI Flashプログラミング器 24 25シリーズ EEPROM BIOS プログラマー + SOP8 ICテストクリップ 8ピン」
https://www.amazon.co.jp/gp/product/B08HCJW1F5/

届いたものは商品ページの記載どおりの下記のモノで、Windows 10用のドライバー等は付属していない。
・CH341A USBプログラマー
・SOP8 SOIC8テストクリップ
・8Pinから8Pinへのコンバーター
・SOP8 SOP16から8Pinへのコンバーター
・2.54mm 4ピンヘッダー

別の業者取扱いのモノだと購入後にソフトウェアのダウンロードページがメールで送られてくるらしいのですが、今回の場合、そういった連絡は無いので、ドライバー等は自分で探す必要がある。
また、CH341A と言いつつも実装されているチップは CH341B でしたが、調べてみると両者の機能は同等のようです…

CH341A の Windows 10 用ドライバー

ドライバーは、下記のものを使用。

CH341PAR.EXE - 南京沁恒微电子股份有限公司
https://www.wch.cn/downloads/CH341PAR_EXE.html

↓の製品ページから辿れる CH341SER.EXE だと動作しない罠アリ

USB Bridge Controller CH341 - NanjingQinhengMicroelectronics
http://www.wch-ic.com/products/CH341.html

CH341PAR.EXE を実行して、起動した画面の「INSTALL」ボタン押下でドライバーをインストール。

ドライバーをインストールしてROMライターが認識されると、ディバイスマネージャーには Interface に「USB-EPP/I2C... CH341A」として表示される。

ROMライターのソフトウェア

ROMを読み書きするためのソフトウェアは AsProgrammer を使用。(2022年10月23日時点の最新版は Version 2.0.3a)

Releases · nofeletru/UsbAsp-flash · GitHub
https://github.com/nofeletru/UsbAsp-flash/releases

AsProgrammer_2.0.3a.zip をダウンロードして任意の場所に展開。

読み込み

ROMライターにチップをセット。取り付け位置は CH341A の裏面の「25 SPI BIOS」側に記載(チップの窪みの向き)を参考にセット。
今回使用した Windond 25Q64FV は 3.3V 駆動なので、そのまま載せましたが、1.8V 駆動のチップの場合は下の画像のような降圧下駄を履かせて使用。

AsProgrammer.exe を実行して起動。ツールバーの「Read ID」ボタンを押下して、表示された候補の中から使用するICを選択。

ツールバーの「Read IC」ボタンを押下して、チップの内容を読み込み。

ツールバーの「Save file」ボタンを押下して、読み込んだチップの内容をファイルに保存。(拡張子は bin)

書き込み

ツールバーの「Erase IC」ボタンを押下して、チップの内容を消去。(すべて FF で埋める挙動)
画像は消去後に読み込み直したもの。

ツールバーの「Open file」ボタンを押下して、書き込むファイルを選択。(拡張子は bin)
ASRockのマザーボードのBIOSを書き込む場合、ダウンロードしたBIOSファイルを先頭から 4096 byte 分を Stirling などのバイナリエディターで削除して使用。

ツールバーの「Program IC」ボタンを押下して、チップの内容を書き込み。
画像は書き込み後のもの。

ツールバーの「Verify IC」ボタンを押下して、チップの内容と書き込んだファイルが同一かを確認。
画像はベリファイ後のもの。

AsProgrammerを終了、CH341A を USB から抜いてからチップを取り外し。

4 件のコメント:

  1. すみません、このライターって、I2CのEEPROMも書き込みできますか?
    もし、ご存知なら教えてください。

    返信削除
    返信
    1. 2024-11の時点で、Ver2.1.0では、I2Cのチェックがありました。
      しかし、書き込む側のUSBライターの設定は、注意が必要です。
      また、AsProgrammerのソフトに同梱しているGIFファイルにICに対する接続方法が示してあるので、これと、そちらで利用するデバイスの種類をAsProgrammerから選定し、書き込み状態を検討して、合致すれば、OKだと思います。なお、チップによって電源電圧が異なったり、端子にプルアップ抵抗10KΩ程度が必要だったりしますが、デバイスチップのデータシートで確認すればよいと思います。

      削除
  2. AsProgrammer.exe を実行して起動。ツールバーの「Read ID」ボタンを押下して、表示された候補の中から使用するICを選択。ここで候補が表示されません AsProgrammer.exe はUSBにホルダーを作って入れてあります
    これをクリックするとAsProgrammer.exe をクリック  署名を検証できませんでした電子署名がありません  OK

    この実行ファイルを実行しますか はい  いいえ   はいにします

    画面が表示されますがICが表示されません ご指示いただけませんか

    返信削除
  3. AsProgrammer自体が、ポータビリティーがないため、C:\の任意に専用のフォルダーを作成し、そこにZipファイルを展開したほうが良いと思います。また、リード・ライトできるチップの種類ですが、これを知るには、C:\AsProgrammer\配下にあるchiplist.xmlをテキストエディターで読み解けば、そこに存在するかどうかが判ります。もし、リストに名前が無い場合には、リード・ライトは、このプログラムライターでは、できません。原作者にお願いするしかありません。また、私は、AsProgrammerを「管理者モード」で起動してます。これは、少しでもプログラムタスクの優先度を上げるためです。

    返信削除