概要
WCH社のCH32シリーズをいろいろ触っているのですが、シリーズの差がわかりにくかったのでまとめを作ってみました。
CH32シリーズとは?
STM32シリーズを意識したWCHの商品群になります。RISC-V搭載しているものと、STM32シリーズと同じくCortex-M3を使ったCH32Fシリーズなどがありますが、今回はRISC-V搭載のものだけピックアップしています。
搭載しているRISC-Vコア
ISA | HPE number of levels | Interruptions nesting number of levels | VTF number of channels | Pipeline | Vector table mode | Cache | Extended Instruction (XW) | Number of memory protection areas | |
---|---|---|---|---|---|---|---|---|---|
V2A | RV32EC | 2 | 2 | 2 | 2 | Address/ Instruction | x | o | x |
V2C | RV32EmC | 2 | 2 | 2 | 2 | Address/ Instruction | x | o | x |
V3A | RV32IMAC | 2 | 2 | 4 | 3 | Instruction | x | x | x |
V4A | RV32IMAC | 2 | 2 | 4 | 3 | Address/ Instruction | x | x | 4 |
V4B | RV32IMAC | 2 | 2 | 4 | 3 | Address/ Instruction | x | o | 4 |
V4C | RV32IMAC | 2 | 2 | 4 | 3 | Address/ Instruction | x | o | 4 |
V4F | RV32IMACF | 3 | 8 | 4 | 3 | Address/ Instruction | x | o | 4 |
V4J | RV32IMAC | 2 | 2 | 4 | 5 | Address/ Instruction | o | o | 4 |
QingKeのRISC-Vコアが利用されており、ざっくりとVのあとにバージョン番号とAからFまでのバリエーションがあります。V4はA/B/C/Fの4種類あり、Fは浮動小数点ユニットが搭載されており、アルファベットが後ろの方が高機能なものになっています。
V2CのRV32EmCはmが追加されていますが、乗算のようです。
シリーズ紹介
コア | チップ | 備考 | SWCLK | SWDIO | TX | RX |
---|---|---|---|---|---|---|
V2A | CH32V003 | 低価格 | PD1 | PD5 | PD6 | |
V2C | CH32V002 | 詳細不明 | ||||
V2C | CH32V004 | 詳細不明 | ||||
V2C | CH32V005 | 詳細不明 | ||||
V2C | CH32V006 | CH32V003の強化版 | ||||
V2C | CH32V007 | 詳細不明 | ||||
V3A | CH32V103 | STM32F103相当 | PA14 | PA13 | PA9 | PA10 |
V4B | CH32V203 | CH32V103のスペックアップ | PA14 | PA13 | PA9 | PA10 |
V4C | CH32V208 | CH32V203にBLE5.3とEthernetを追加 | PA14 | PA13 | PA9 | PA10 |
V4F | CH32V303 | PFU付き上位モデル | PA14 | PA13 | PA9 | PA10 |
V4F | CH32V305 | 480Mbps PHY搭載モデル | PA14 | PA13 | PA9 | PA10 |
V4F | CH32V307 | さらにEthernetを追加 | PA14 | PA13 | PA9 | PA10 |
V4C | CH32L103 | USB PD対応の省電力 | PA14 | PA13 | PA9 | PA10 |
V4C | CH32X033 | 最新コアの廉価版 | PC19 | PC18 | PB10 | PB11 |
V4C | CH32X035 | USB PD対応の低価格 | PC19 | PC18 | PB10 | PB11 |
コアの世代順に紹介したいと思います。
CH32V003(CH32V003) – V2A
一番世代が古いV2Aのコアになります。非常に限定的な製品であり、安価でありますが取り扱いは面倒なチップになります。SWDも1線のみで、若干取り扱いが異なるので注意してください。
CH32V006(CH32V002/4/5/6/7) – V2C
新製品のため詳細不明。2KしかなかったRAMを追加し、他にもタッチやSLTMなどを追加。
CH32V10x(CH32V103) – V3A
V3Aコアにパワーアップしています。中身はCH32F103をRISC-Vコアに置き換えた製品となります。CH32F103はSTM32F103を意識して作られています。
ベースとなるSTM32F103があるので学習しやすいモデルでありますが、このチップを使うのであればSTM32F103を最初から使ったほうがいい気もするので微妙なモデルになります。
CH32V20x(CH32V203) – V4B
V4Bコアを採用し、CH32V103をパワーアップさせたような製品になります。
CH32V20x(CH32V208) – V4C
CH32V203のV4BコアからV4Cにパワーアップしています。ただしBLE5.3を搭載しているので技適の関係で日本では利用ができません。
CH32V30x(CH32V303/CH32V305/CH32V307) – V4F
CH32V303
浮動小数点を計算できるPFU付きのモデルになります。
CH32V305/CH32V307
最上位モデルでEthernetなどがついたモデルです。CH32V305は機能制限モデルなので中身はCH32V307から機能を減らしたものになります。
CH32X03x(CH32X033/CH32X034/CH32X035) – V4C
コアはV4CとPFUなしのCH32V20xシリーズと同じものを採用しています。ただし、USB PDに対応したシリーズとなります。CH32X035が基本で、スペックダウンしたものにCH32X034とCH32X033があります。ただしCH32X034は販売実績はあるようですが、公式なスペック表にはありません。
ただCH32X033はUSB PDには対応していませんのでCH32V003よりも使いやすい廉価版みたいな位置づけになると思います。
CH32L10x(CH32L103) – V4C
CH32V103に似ておりますが、USB PDに対応したものがCH32L103です。CH32X035と比べるとGPIOが減りましたがクロックがあがっています。
ちなみにEVTが商品ページに追加されていませんが、ファイル自体は存在しています。上記の検索ページからはダウンロード可能です。
どれを使えばいいの?
入門にはCH32V103
書き込み機内蔵型があるのでUSBケーブルで接続すれば開発できるお手軽さがあります。CH32V307もこの形のものがありますが、情報量を考えるとCH32V103が最適だと思います。
購入はWCH公式サイトか上記のW Official Storeがおすすめです。1個だけ購入するときには送料無料のWCH公式のほうが安い場合がありますが、複数購入する場合にはWの方が総額は安くなります。
USB PDではCH32X035
今後はCH32L103の方が伸びていきそうですがCH32L103は出たばかりで情報が少ないのでCH32X035をおすすめします。またArduino環境もCH32L103はまだ対応していません。
まとめ
CH32V307とかは実際のところESP32やRP2040と比べちゃうとRISC-Vであるところ以外に魅力は感じませんでした。USB PDが利用できるCH32L103に期待していますが、まだまだ情報が足りません。
当座はCH32X035を中心に触ってみたいと思っています。
コメント