LoginSignup
2
0
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

8bitUSBマイコン CH552P あれこれ

Last updated at Posted at 2024-01-02

CH552P

8bitUSBマイコンって何??と思い、昨年末に入手した WCH社製 CH552P について、備忘録的に書き留めておく。

入手先

例によって、秋月電子通商さんから購入。秋月さんオリジナルのDIP化基板。

税込180円と格安のマイコン。

IMG_2823.png

マイコンチップは実装済み、ピンヘッダをハンダ付けするだけ。

書き込み回路

↓こちらのブログを参考に、ミニブレッドボードに組みました。

IMG_2833.png

左上のUSB-Cが、プログラム書き込み用。左下の赤いスイッチを押しながらUSBポートに接続すると、ダウンロード用のブートローダが走る。その間に、ArduinoIDEからプログラムをアップロードする。
ISPを使っても書き込めるが、USBマイコンと称する通りネイティブにUSBに接続できるマイコンだ。

シリアル接続

前項の写真の上部から来ている4本のケーブル(5V, GND, TXD, RXD)が、シリアル通信用。
このマイコンは3.3Vでも起動するが、5Vを供給しないとシリアル通信できない。最初、3.3VのUSBシリアル変換器を使っていて全然通信できず、原因が分からず何時間もハマった。

リセットスイッチ

右下の黒いスイッチがリセットボタン。RSTピン(7番ピン)は、マイコン内でプルダウンされているから普通はオープンでよい。外部からリセットするときは、RSTピンをHIGHにする。上の写真では、黒ボタンスイッチを押すと5番ピンに短絡するが、GPIOピンは、デフォルトでプルアップされているので、特別な配線不要でリセットボタンとなる。

ブート用の赤ボタンを押しながらリセットボタンを押しても、ダウンロードモードにはならない。ダウンロードモードに移行するには赤ボタンを押しながら、USB電源を入れ直す必要がある(USBケーブルの差し直し)。

写真では、シリアル通信のケーブルの下で見えにくいが、左上のUSB-Cの右側にスライドスイッチを取り付けてある。これをOFFすると、USBのVBUSが遮断されるので、ケーブルを抜き差しぜず、スイッチのOFF-ONと赤ボタン押下でダウンロードモードに移行できる

ArduinoIDEで”ch55xduino”

既出のブログの解説に従って、ch55xduinoボードを追加するだけ。

usb1.png

BASIC52の導入

既出のブログでは、WCHISPToolを使ってHEXファイルを書き込んでいるが、Macでは使えない。そこで、ArduinoIDEがch55xduinoボードの書き込みで使っているコマンドを流用。

$ ~/Library/Arduino15/packages/CH55xDuino/tools/MCS51Tools/2023.10.10/macosx/vnproch55x -r 2 -t CH552 -c 3 basic52q.hex
CH55x Programmer by Deqing
Updated on: 2023/10/10
------------------------------------------------------------------
usbRertySeconds 2
target: CH552
config bytes: 3
Load file as hex
   Loaded 8131 bytes between: 0000 to 1FFF
DeviceVersion of CH55x: 2.50 
MCU ID: 52 11
Found Device CH552
Bootloader: 2.5.0
ID: 91 31 C5 BC
XOR Mask: 43 43 43 43 43 43 43 95 
Write 8192 bytes from bin file.
..................................................
Write complete!!!
Verify chip
..................................................
Verify complete!!!
------------------------------------------------------------------
Reset OK

BASICのシリアルコンソール

既出のブログでは↓こう書かれている。

BASICのHEXファイル書き込みが成功した状態で、シリアル-2 (TxD1,RxD1) にTeraTERMを動かしたPCを接続するとBASICのプロンプトが表示されます

しかし、配線を何度も見直し、何度やってもうまくいかない。試しに、シリアルを9番10番ピンのTXD、RXDに接続したところ、あっさり動いた。 (使用したターミナルアプリは、開発デバッグ中の自作もの)

basic.png

ASCIIART(マンデルブロ集合)もご覧のとおり動く。
(RUN送信から実行終了のREADY受信までの時間をターミナルアプリで計測、24秒は早いのか??)

art.png

さらに、1980年代の懐かしいゲームで遊ぼうかとコードを入力していたが、全体60行弱のコードの22行目でメモリエラー。

term.png

RAMが1KBと極小のためだろう。残念。

RAMが6KBの上位チップ CH559 でリベンジしようか思案中。

以上

Pinout

2024.5.13追加

ch552p_pinout.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0