CH32V006への書き込み
WCH社のCH32マイコンとしては、これまでにCH32V003, CH32V203, CH32X035などを使って来たが、新しく出たCH32V006を、遅ればせながら使ってみたら、思ったよりも苦労した。 CH32マイコンでは、通常はWCH-LinkEを使ってSWDピンを使った書き込みを行い、これまではそこで失敗したことは無かった。 しかし、CH32V006ではうまく行かず、悪戦苦闘した後に分かったのは、WCH-LinkEのfirmwareが古いと駄目だということである。
私が持っているWCH-LinkEはversionが2.8だったのだが、おそらく2.15以降でないとCH32V006には対応していないようだ。 Windowsの場合はfirmwareの書き換えは簡単らしいが、Linuxだと公式には対応していないので、wlink-iapを使った。 以下のコマンドで、2.15のfirmwareの書き込みができた。
cd src make mv wlink-iap ../firmwares ./wlink-iap -f FIRMWARE_CH32V305_v2.15.bin
いちいちWCH-LinkEを使うのも面倒なので、rv003usbのbootloader_v006を試してみることにした。 WeactStudioのマイコンボードを使ったので、DFUはPD5に設定する必要があるが、そのままの設定でよかったので、コンパイルしてbootloader領域に書き込んだ。
sudo ./minichlink -w bootloader.bin bootloader
RSTを押しながらUSBに繋ぐとbootloaderが立ち上がるので、minichlinkでUSBから書き込める。 LEDを光らせる単純なプログラムは無事に書き込みすることができた。
ちなみに、rv003usbのrvswdio_programmerだと、時々認識はできたけど、書き込みまではできなかった。 新しいWCH-LinkEを使うのがCH32V006の書き込みには無難なようだ。