アリエクでEthernet端子が載っているCH32Vを見かけたので買ってみました。
今回はArduino IDEでLチカできることの確認まで試します。
概要
- 性能は悪くなさそう、簡単な用途なら使えるよ
- 今のところ、使えない機能があるよ
- 本格活用するならMounRiverを使おう
購入の話
購入したのはこちら。
https://ja.aliexpress.com/item/1005004350410929.html
2024/1時点では$4.5(→700円程度)+送料と、有線LAN付きボードとしては格安となっています。
なお、このチップを搭載した開発ボードは観測した範囲で4種類ありました。コネクタの出し方が少しずつ違うようなので、用途に応じて選定しましょう。
ちなみに、現時点では秋月でCH32V003~CH32V305まで売っています。
いずれCH32V307も販売されるかもしれません。
端子関連の補足として、
- Ethernetは10Mbpsのようです。 結線が2対のため、電源供給の併用は難しそうです。
- Type-Cコネクタは2つありますが、初期状態ではプログラムの書き込みに使えません。(USB2.0デバイスとして扱うコネクタのようです。)
- SWD端子横の謎コネクタはTFカード用のようです、microSDカードが刺さることを確認しています。(読み書きは未検証)
- このタイプのボードはSWD経由でのSerialが動かないようです。使い方の調査中。
事前設定
WCH-LinkEの設定
前述のとおり、USB端子で書き込むことはできないので、WCH-LinkEのSWDで接続します。
最近はLinkEのコネクタを統一するのにポケットヘッダを使っています。
以前秋月で買ったWCH-LinkEだとバージョンアップが必要なようです、アップデートされるまで数分待ちます。
アップデート完了後、CH32Vの情報を読み取ります。
赤枠のQueryボタンを実行すると、右側に情報が出てきます。
Read Protectがかかっていると、この後の書き込みがうまくいかないので解除しておきます。
解除は鍵解除マークでできます。(何に対するロックなんだろう…)
解除すると、Read ProtectがDisabledになります。
ロック機能はCH32V003を使った際は見かけなかった気がするので、上位機種の機能でしょうか。
Arduino IDEで一部ピンを使う
CH32Vを使う場合はBoards Managerから「CH32 MCU EVT Boards」を入れておきます。
作業時は1.0.4が最新のようです。
このピン指定はPAxxやPBxxは定義されているようで、そのまま動きます。
void setup() { pinMode(PA5, OUTPUT); } void loop() { digitalWrite(PA5, HIGH); delay(500); digitalWrite(PA5, LOW); delay(500); }
ボードはCH32V30x
書き込みはエラーに見える表示ですが、これが正常です。
A5ポートにLEDを刺せば点滅するはずです。 (抵抗付きLEDって便利ですね)
PAxx~PBxx以外について
現在のArduino CoreでCH32V307の定義がこちらのようです。
arduino_core_ch32/variants/CH32V30x/CH32V307VCT6/variant_CH32V307VCT6.h at main · openwch/arduino_core_ch32 · GitHub
PC~PEは定義がされていないため、コンパイルエラーとなります。
今後のアップデートで使える可能性はありますが、現時点では使えません。PBまでのポートで頑張りましょう。
最後に
どこまでが正常動作か分からず苦労しました…
EthernetはMounRiverの方が情報があるようなので、次はMounRiverを試します。
簡易PoE改造して使う予定でしたが、コネクタの構造上難しそう……