WeActStudio の、BluePill+を買ってみました。
今回は BitTradeOne より入手で¥574。安いぞ。Aliexpress とかと比べてもほぼ変わらない金額です。
パッケージ内容。
mcu CH32V203CBT6 について
どこかで見たようなパッケージと形状ですね!
cf.,「STM32F103C8 で遊ぶ」
https://qiita.com/nanbuwks/items/ba37f049f45378da0e2b
上記の記事は STMicroelectronics 社の STM32F103 のボードですが、最近は STM32F103 の中華クローンチップがちょっと前まで花盛りでした。
cf., https://tech-blog.cerevo.com/archives/8539/
さて今回のボードに搭載している mcu は STM32F103 のように見えながら ARM コアではなく RISC-V コアを搭載しています。そうではあるものの、IO構成や機能は酷似しています。
例えば 本家の STM32F103C8T6 に対し、GigaDevice 社の互換品は GD32F103C8T6 という名前のものがあり、同様に使えるぽくなっています。
しかしながら今回のものは CH32V203C8T6 で、 103 ではありません。本家の STM32 でも 例えば STM32F103C8T6 と STM32F303C8T6 はピン互換ぽく MPU コアの違いでバリエーションとなるようになっています。それに対応するように中華クローンチップも 32F303 などもありますが、今回の CH32V203 に相当する STM32V203 という型番はありません。
調べてみると、CH32V103 と CH32V203 の違いは主にメインクロックの速度が80MHz→144MHzに向上すること、電圧が 2.7〜5V → 2.5V/3.3V、低電力性能が向上しているという3つが挙げられます。
CH32V203 は、その改良を施した独自のナンバリングらしいです。
BluePill ボードとしての相違点
もともと、BluePill としてジャンパーがある箇所は リセットボタンと BOOT モードに入るボタンが装着されています。
オリジナル(というわけではないのですが、お話の都合上「オリジナル」と呼びます)のBluePill ではクロックがあったところがコンパクトになり、「KEY」が新設されています。「KEY」はユーザープログラムで使える用途のようです。
WeActStudio の製品は設計、製造とも良質であると聞いています。たしかにそんな感じ。
ボードの公式情報
GitHub に公式レポジトリがあります。
https://github.com/WeActStudio/WeActStudio.BluePill-Plus-CH32
CH32V103 系が主ですが、CH32V203C8T6 のサポートが後から追加されているようです。
回路図
https://github.com/WeActStudio/WeActStudio.BluePill-Plus-CH32/blob/master/HDK/BluePillPlus_V11_SchDoc.pdf
( MIT License / Copyright (c) 2022 WeAct Studio )
ここには、 CH32V203 は記載されていません。どうやら BluePill+ といっても CH32V 系にかかわらず様々な会社やアーキテクチャのピン互換のチップを搭載したバリエーションが販売されていて、その間で同じ回路図を使っているようでうす。
ソフトウェア開発
MounRiver Studio IDE のセットアップ
どうやら公式レポジトリ上のリソースは MounRiver Studio IDE を使用する前提のようです。
今回は Ubuntu 22.04 LTS で試してみます。
こちらから MounRiver_Studio_Community_Linux_x64_V190.tar.xz をダウンロードし、解凍します。
解凍フォルダに移った後、以下の作業を行います。
udev などの設定がなされるらしいです。
$ cd beforeinstall/
$ ls
50-wch.rules libhidapi-libusb.so.0.0.0 libtinfo.so.5
60-openocd.rules libjaylink.so libtinfo.so.5.9
libhidapi-hidraw.so libjaylink.so.0 libusb-1.0.so
libhidapi-hidraw.so.0 libjaylink.so.0.1.0 libusb-1.0.so.0
libhidapi-hidraw.so.0.0.0 libmcuupdate.so libusb-1.0.so.0.3.0
libhidapi-libusb.so libncurses.so.5 start.sh
libhidapi-libusb.so.0 libncurses.so.5.9
$ ./start.sh
Copy Libs
Register new Libs
copy rules
Reload rules
DONE
以下で起動
$ ./MounRiver\ Studio_Community
サンプルプログラムとビルド
サンプルプログラムを、 WeActStudio の公式を用いることにします。
$ git clone https://github.com/WeActStudio/WeActStudio.BluePill-Plus-CH32.git
WeActStudio.BluePill-Plus-CH32/Examples/CH32V203/02-flash_test
を「File」-「Open Projects from File System...」で開きます。
main.c を開くとこのように Blink ぽいソースが確認できます。
「Project」-「Build All」すると、無事 elf ができたようです。
WCH-LinkE のセットアップ
WCH-LinkE 経由で BluePill+ を開発 PC に接続します。
Query を押して、WCH-LinkRV となっていることを確認します。もしなっていなければ、 WCH-LinkRV に変更して 「Apply」 とします。
書き込もうとしたけれど・・・
WCH-LinkE のファームウェアのアップデートが促されます。Yesでアップデートします。
以下によると、ファームウェアアップデートすると WCH-LinkE に問題が起こるという報告がありますが、今回の作業では WCH-LinkE が壊れるということは起こりませんでした。
うーん??
Fail が出ています。
code protect がかかっているためかな? 外そうとしたけれども・・・
failed to configure mcu. と出てきました。
少し調べたけれど、すぐには解決できませんでした。調査中です。