akira.kei が 2026年03月10日10時53分41秒 に編集
初版
タイトルの変更
格安32ビットCPUのCH32Vを試す(その1)
タグの変更
RISC-V
CH32V
CH32V003
CH32V203
UIAPduino
記事種類の変更
セットアップや使用方法
ライセンスの変更
(MIT) The MIT License
本文の変更
## RISC-V、格安、性能はそれなり? いつも使っているPICではちょっと足りない、でもRaspberry Pi Pico(シリーズ)だともったいない、という場面に使えそうなCH32Vシリーズを試してみている。[ARMなのかRISC-Vなのか](https://edn.itmedia.co.jp/edn/articles/2601/27/news104.html)という話は電子工作ユーザにはあまり関係ないし、C言語で書くプログラムには全く影響がない。問題は命令セットなんかよりどんなペリフェラルが統合されているかどうかだ。 皆大好き秋月電機通商には以下のように格安で売られているように見えなくもないが、ちょっとフェアじゃない。 |#| 型番 | ピン数 | 価格 | |:--:|:---:|:---:|:--:| |1| CH32V003J4M6 | 8 | ¥50 | |2| CH32V003F4P6 | 20 | ¥60 | |3| CH32V203K8T6 | 32 | ¥120 | |4| CH32V305FBP6 | 20 |¥250| |5| CH32X035G8U6(kit)|28+2|¥290| 上の1から4は表面実装ICなので電子工作用に使いやすくするには他に部品が必要だ。例えば8ピンなら変換基板(9枚で¥120)とピンヘッダー(1X40で¥35)が必要になる。まぁこれらを考慮しても¥70くらいなので普通のPICよりは安いことになる。  ## 開発環境…おなかいっぱい PICなら開発環境はほぼMPLAB X IDE+xc8コンパイラ一択だ(書き込み機にちょっとはバリエーションがある)。最近はVS Code拡張機能を出しているが普及しているようには思えないし、よくあるArduino IDEで扱えるようにはなっていない。 一方でCH32Vシリーズだと大雑把に分けても以下の5つだ。 1. MounRiver Studio (公式) 1. Arduino IDE(公式 & UIAPduino) 1. VScode+PlatformIO拡張 1. ch32fun (make) 1. レジスタ操作(make) 最後の「レジスタ操作」は書き方の違いというかSDKの関数呼び出しではなくレジスタを直接変更する方法ということなので、コンパイラ等はch32fun+VScodeと同じだ。[参考にした技術書](https://www.switch-science.com/products/10547?srsltid=AfmBOorj0PH1tpmLA0K4kugVjifUxN3sbc-EhgU7KL4ScagPZqAgTm_M)では公式SDKの使い方はさらっとしか書いていないが、 ch32funやレジスタ操作については詳しく書いてある。 ネット情報をさらってもArduino IDEとch32funの記事はよく見るような気がするし、MounRiver Studioの人気は低そうに見える。 ## 開発ボード 開発ボードとしては¥290の[UIAPduinoが大人気](https://fabscene.com/new/interview/uiapduino-290yen-mass-production-interview/)っぽい。思わず5枚も買ってみたんだが - Auduino IDE中心 - macは公式対応じゃない(minichlinkを書き換えればなんとかなる) - 特別な書き込み機が不要 - 一方で書き込み前に「リセットボタンを押しながら接続してボタンを離す」という儀式が必要 - (ツールの)開発者がぼっちかも というちょっと微妙な感じだ。 このUIAPduino以外であれば書き込み機にはWCH-LinkEを使う。RISC-Vがちょっと話題になりかけたころ¥770で買った[WCH-LinkE](https://akizukidenshi.com/catalog/g/g118065/)は今は¥1160するが、AliExpressで互換品も多く売られているみたいだし、[PICkit5なんかよりは十分安い](https://akizukidenshi.com/catalog/g/g118150/)。ただ[廉価版のSnap](https://akizukidenshi.com/catalog/g/g113854/)は¥2200なので格安だったのは昔だけだ。 またサイズ感もまだ微妙だ。8ピンのCH32V003J4M6はプログラムピンが1本で済み使いやすいが、次が20ピンになってしまう(PICなら14ピン)。また、USBを使いたくなったら32ピンのCH32V203K8T6を選ぶことになる。やはり14ピンのPIC16F1454はちょうどよい選択肢だ。まぁUSBシリアル変換を使えばいいので大きな違いはないかもしれない。 暫くは8ピンや20ピンをWCH-LinkEで接続しMounRiver Studioを使っていじりまわしてみる予定だ。