CH32V203 ボード BluePill+ を試す(途中)

WeActStudio の、BluePill+を買ってみました。


![IMG_20241114_144657.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e0a37e6b-bcc5-b0a4-df86-76121145f7ce.jpeg)
今回は BitTradeOne より入手で￥574。安いぞ。Aliexpress とかと比べてもほぼ変わらない金額です。

https://btoshop.jp/products/wa00008


パッケージ内容。


![IMG_20241114_144645.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a6314b35-9079-dd4a-9485-9ca7b414f131.jpeg)

# mcu CH32V203CBT6 について

MCUは、 WCH社のCH32V203CBT6です。
![IMG_20241114_144712.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/fe8966dc-b3d7-40ae-1854-2ad66412d2ad.jpeg)

どこかで見たようなパッケージと形状ですね！

cf.,「STM32F103C8 で遊ぶ」
https://qiita.com/nanbuwks/items/ba37f049f45378da0e2b
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/8344c91d-9955-7b37-403a-bba4d3b81b23.png)

上記の記事は 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つが挙げられます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/4e699997-da6c-18a4-6038-3133f2a3b44d.png)

CH32V203 は、その改良を施した独自のナンバリングらしいです。

# BluePill ボードとしての相違点

もともと、BluePill としてジャンパーがある箇所は リセットボタンと BOOT モードに入るボタンが装着されています。


![IMG_20241114_144732.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/4113dabb-6e3e-0547-8703-c8e47758e682.jpeg)

オリジナル(というわけではないのですが、お話の都合上「オリジナル」と呼びます)のBluePill ではクロックがあったところがコンパクトになり、「KEY」が新設されています。「KEY」はユーザープログラムで使える用途のようです。
![IMG_20241114_144741.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d32776ad-2703-798a-afe7-917f33d69c07.jpeg)



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
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e99d562c-f913-d39c-8e64-c13c34c3aa30.png)

( MIT License / Copyright (c) 2022 WeAct Studio )

ここには、 CH32V203 は記載されていません。どうやら BluePill+ といっても CH32V 系にかかわらず様々な会社やアーキテクチャのピン互換のチップを搭載したバリエーションが販売されていて、その間で同じ回路図を使っているようでうす。

# ソフトウェア開発
## MounRiver Studio IDE のセットアップ

どうやら公式レポジトリ上のリソースは  MounRiver Studio IDE を使用する前提のようです。

http://www.mounriver.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/f5a0fa29-2697-243c-986e-7f67eaf3cec4.png)

今回は 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 
```
最初にワークスペースの場所を聞いてきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/799fbe40-f62c-b253-be1d-eb66bf53d39f.png)

起動直後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/eb8f66b4-e65d-cb52-df8e-5f6fd66e82a1.png)


## サンプルプログラムとビルド


サンプルプログラムを、 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...」で開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e9ca2d03-55ad-a2db-f2a3-7ebdf4f28a8b.png)
 main.c を開くとこのように Blink ぽいソースが確認できます。
 


「Project」-「Build All」すると、無事 elf ができたようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/fbcf5202-d09c-f4d4-a646-ffa9d05206df.png)


## WCH-LinkE のセットアップ

WCH-LinkE 経由で BluePill+ を開発 PC に接続します。

「Flash」-「Configration」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/731e689d-1e0f-e1dc-753c-31d65e3b791c.png)

Query を押して、WCH-LinkRV となっていることを確認します。もしなっていなければ、 WCH-LinkRV に変更して 「Apply」 とします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/f5f34dde-d507-d65e-c6b1-93d2e30cbb83.png)



## 書き込もうとしたけれど・・・



「Flash」-「Download」しようとすると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/03781289-5c02-c388-40db-2496c14c5dc0.png)

WCH-LinkE のファームウェアのアップデートが促されます。Yesでアップデートします。

以下によると、ファームウェアアップデートすると WCH-LinkE に問題が起こるという報告がありますが、今回の作業では WCH-LinkE が壊れるということは起こりませんでした。

https://www.eevblog.com/forum/microcontrollers/mounriver-studio-anyone-with-a-working-setup-under-linux/

### うーん??
Fail が出ています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d3093bef-86c8-912d-0b6d-4758fa9dedfa.png)

code protect がかかっているためかな? 外そうとしたけれども・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/dac3533d-2330-9c35-0f6f-cb7619daf13f.png)

failed to configure mcu. と出てきました。

少し調べたけれど、すぐには解決できませんでした。調査中です。