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


アーカイブ


アマゾン・ベストセラー

メタ情報
RSS
Login

CH552互換USB Blaster動作!

前回、CH552使用の互換USB Blasterが動かない、 プログラムが書き込めるが動かない、 ブートローダが書き換えられているのではないか と騒いていたが原因がわかった。 プログラムが書き込め、動作し、Quartus Prime Liteで MAX2に書き込むこともできた。 原因はCH552および互換USB Blasterについての不理解であった。

まず、注文していたCH552Gチップが届いたので 互換USB Blasterのチップと交換してみた。 プログラムは書き込めるが、動作しない。 交換前と全く同じ動作である。

次に、CH552GとUSBコネクタのみの回路で 動作するか実験を行うため必要な部品、 SOP16変換基板, ミニBメスUSBコネクタDIP化キット CH552P DIP化キットをついでに購入。 ブレッドボード上で実験したところ CH552P + USBコネクタで動作、 CH552G + USBコネクタでも動作した。

そこで動作するCH552Gと互換USB BlasterのCH552Gの 各端子の電圧を比較し、 互換USB BlasterのCH552Gの電源が3.3Vであることに 気が付いた。動作する方のCH552Gは5V。 Arduinoの設定で調べると 電源が3.3Vの場合クロックは16MHzに しなければいけないらしい。 クロックを24MHzにしていたため 動作しなかったらしい。 Arduinoで16MHzに設定を変更すると 互換USB Blaster上でLED点滅プログラムが動作した。

CH55x-USB-Blasterのプログラムは クロックが24MHzで5V電源用になっている。 これを16MHzに変更、端子配列も 互換USB Blaster用に変更し書き込むと Quarus Prime Liteに認識され、MAX 2に書き込むことができた。 LEDの論理が逆で常時店頭になっていたためプログラムを修正した。

変更の差分を以下に示す

今回理解していなかったCH55xの知識は

  • CH55xは電源5Vでも3.3Vでも動く。 3.3VでもUSBは動作する
  • 端子のHighレベルの電圧は電源電圧となる。 但し、USBの端子は常時3.3Vだと思われる
  • 電源5Vの時、クロックは最大24MHzだが、3.3V時は最大16MHz
  • CH552互換USB BlasterはHighレベルを3.3Vにするため電源3.3Vで動作している
となる。 CH55xへの理解が深まった。

安く買える互換USB Blasterが使用できるのはありがたい。