h_nari @ 熊本市のブログ。電子工作、プログラミング、ゲーム、TV、 政治、インターネットなどに日々の思い付きを、 うだうだ~と書いていきたい。
このブログにはコメント欄を設けておりません。 記事への御意見、ご質問はtwitter @h_nari宛に お願い致します。


アーカイブ


アマゾン・ベストセラー

メタ情報
RSS
Login

CH552版互換USB Blaster

CH552使用の互換USB Blasterが動かない件調査のため AliExpressに注文したものが到着した。 購入したのは CH552 ミニコアボード 199円 × 4個と 互換USB Blaster 225円 × 4個。 1個でよかったのだが1個の価格では 迅速配送が利用できず到着に時間がかかりそうだったので 迅速配送が利用できる最低量を購入した。 ちなみに迅速配送料は 459円と728円。1週間程度で届いた。 互換USB BlasterはCH552使用で前に購入したものと 同じで期待通り。

これらで試してわかったこと

  • CH552 ミニコアボードに CH55x-USB-Blaster のHEXファイルを書き込むと Intel Quartus Prime Lite Editionに認識されるし MAX2ボードに書き込みもできた。
  • 互換USB BlasterのCH552へのプログラム書込みはできるが 動作しない。ブートローダに手が入れられているっぽい。

CH552ミニコアボードでUSB Blaster

CH552 ミニコアボードに CH55x-USB-Blaster のHEXファイルを書き込んだら Intel Quartus Prime Lite EditionにUSB-Blasterとして認識された。 期待を持たせる展開だ。 ドライバーは Intel Quartus Prime Lite Edition同梱のもの。 MAX2ボードのJTAG端子と ブレッドボードとジャンパーピンで 1KΩの抵抗を介し接続。 (TMS - P1.4, TCK - P1.7, TDI - P1.5, TDO - P1.6) 不安定ながらも、なんとか書き込みに成功した。 その後、ミニコアボードと10ピンフラットケーブルコネクタを ユニバーサル基板上に配線し直したところ 安定して書き込みができるようになった。

CH55x-USB-BlasterのコードではコアボードとLEDが接続されている端子が違う。 ソースを修正し書き込んだところ、CPLDにコードをダウンロードする時、LEDが点灯するようになった。 CH55x-USB-Blasterのコンパイル時の注意点。

  • ch554_sdccが必要。 examplesの下に CH55x-USB-Blasterを展開するとmakeできる。 必要な環境整備については ch554_sdccの説明が詳しい。
  • 私は環境整備が楽なLinux上でコンパイルしたのだが、 出来上がった usb_blaster.hexをWindows側の WCHISPTOOLで書き込もうとすると 「不正なHEXファイル」とエラーになる。 改行がLFなのがまずいらしい。CRLFに変換すると書き込める。

CH552互換USB Blasterプログラム書き込めない問題

CH552互換USB Blasterは基板にD+や3V3などの端子が出ているので これらの間を10KΩで接続しUSBケーブルを刺し込むとプログラム書込みモード になり WCHISPTOOLで認識され、プログラムを書き込めたっぽいメッセージが出る。 ところがプログラムが動かない。LED点滅のプログラムが動かない。 USBデバイスとして認識されなくなるので元のプログラムは破壊されたようだ。 LEDが接続されている端子が違うのではないかとか、 必要な初期化がされていないのではないかとか いろいろ調べるがわからない。 ArduinoでLED点滅プログラムを書き、 コアボードで動作を確認後、そのまま互換USB Blasterに 書き込んでも動かない。LEDが点滅しないのは良いとしてCOMポートとしても 認識されので、これはブートローダに手を入れられていると確信した。

CH552はD+端子をプルアップされた状態で電源投入されると ブートローダが動作するが、これは 0x3800番地からのプログラムが 動作しているだけで、しかるべき回路なりプログラムがあれば書き換え可能らしい。 このプログラムを標準のものと置き換え、 単純な暗号化を施されたコード、例えば ビット反転したコードを書き込むようにすれば そのことを知らない人はプログラムの書き換えができなくなる。 知っている人は、簡単なHEXファイル編集プログラムを介するだけで 書込みは可能だ。

そのような改造が互換USB BlasterのCH552Gチップに施されている と推測している。 そうだとすれば、CH552Gチップを市販のものに貼り変えれば ふつうにプログラム書き込み可能になるはず。 CH552Gチップを注文した。

そもそもCH552互換USB Blasterが普通に動作すれば こんなにいろいろ手間をかける必要はないのだが、 動かないから200円ぐらいで売っているという気もする。 CH552版USB Blasterが購入したまま何もせず使えたという人がいたら教えて欲しい。 外見が同じでも中身が全く違う互換USB Blasterが沢山あるから 注意が必要だ。