1.WCH-LinkEの概要
1.1プログラミングツール
WCH-LinkモジュールはWCH RISC-V MCUのオンラインデバッグおよびダウンロードに使用できるほか、SWD/JTAGインターフェースを持つARM MCUのオンラインデバッグおよびダウンロードに使用できます。また、シリアルポートを搭載しており、デバッグの出力が容易に行えます。
WCHとはWCHはWinChipHead(南京秦衡微電子有限公司)を言います。
RISC-Vとはカリフォルニア大学バークレー校で開発されたオープンソースの命令セットアーキテクチャ(ISA)で、誰でも自由に利用、実装、変更、配布できる。 これにより、ライセンス料や特定の企業に依存することなく、低コストでCPUの開発ができる。
MCUとはマイクロコントローラユニット (Micro Controller Unit) の略で、CPU、メモリ、周辺機能を集積した小型のコンピュータだ。
ARMとはイギリスのArm社が開発・ライセンス提供しているCPUの設計(アーキテクチャ)のこと。
SWD/JTAGとは組み込みシステム開発におけるデバッグやテストに使用されるインターフェース規格。JTAGは複数のピンを使用するのに対し、SWDは2本の信号線で動作する。
主な違い:ピン数:JTAGは4ピン、SWDは2ピン、用途:JTAGは基板検査やCPUデバッグに広く使用され、SWDは特にARMプロセッサのデバッグに特化、転送速度:JTAGはSWDの約1.5倍の速度でダウンロードできる。
SWD (Serial Wire Debug)
通常H32VのMCUを開発する場合はこのインターフェースを使用します。
ただし、RISC-VモードとARMモードがあり、H32V は RISC-Vモードを使用します。
SWDはARM社が策定した、JTAGと共存可能な2線式デバッグインターフェースです。
TMS, TCK の2本の信号線を使用します。
ADI(ARM Debug Interface)v5とCoreSight用に特化されており、デバッグ用レジスタへのアクセスに使用されます。
JTAGよりも少ないピン数でデバッグできるため、小型のデバイスに適しています。
ホットプラグインには対応していません。
ただし、RISC-VモードとARMモードがあり、H32V は RISC-Vモードを使用します。
SWDはARM社が策定した、JTAGと共存可能な2線式デバッグインターフェースです。
TMS, TCK の2本の信号線を使用します。
ADI(ARM Debug Interface)v5とCoreSight用に特化されており、デバッグ用レジスタへのアクセスに使用されます。
JTAGよりも少ないピン数でデバッグできるため、小型のデバイスに適しています。
ホットプラグインには対応していません。
| 標準SWD端子名 | WCH-LinkE端子名 | 備考 |
|---|---|---|
| TCK | SWCLK | |
| TMS | SWDIO | |
| 3.3V | 3.3V | ターゲットMCUに合わせ接続 |
| 5V | 5V | |
| GND | GND |
JTAG (Joint Test Action Group)
IEEE 1149.1として標準化された規格で、主にプリント基板やICのテストに使用されていました。
TMS, TCK, TDI, TDO の4本の信号線を使用します。
ICの内部回路にアクセスし、端子や内部状態をプローブすることができます。
もともとは基板検査用でしたが、CPUのデバッグにも利用されるようになりました。
JTAGエミュレータは、実装された状態のCPUをデバッグできます。
TMS, TCK, TDI, TDO の4本の信号線を使用します。
ICの内部回路にアクセスし、端子や内部状態をプローブすることができます。
もともとは基板検査用でしたが、CPUのデバッグにも利用されるようになりました。
JTAGエミュレータは、実装された状態のCPUをデバッグできます。
| JTAG端子名 | WCH-LinkE端子名 | 備考 |
|---|---|---|
| TDO | TDO | |
| TDI | TDI | |
| TCK | SWCLK | |
| TMS | SWDIO | |
| 3.3V | 3.3V | ターゲットMCUに合わせ接続 |
| 5V | 5V | |
| GND | GND |
1.2 WCH‐Linkモジュール
WCH‐Linkモジュールには5種類のモジュールがあり購入時は注意が必要
WCH-Link
HID device:Human Interface Deviceと言いキーボードやマウスなどの入力装置と同じUSBデバイスクラス(通信方式の規格)を指し通信速度は低速。
WINUSB deviceは、Windows標準のUSBドライバである Winusb.sys を使用してUSB 2.0フルスピードで接続動作する
| 比較項目 | -- | mini | E | DAP | W | ||
|---|---|---|---|---|---|---|---|
| RISC-V mode | CH643/CH32X035_X034_X033/CH32L103/ CH32V003/CH32V002_004_005_006_007/ CH32V317/CH32M007 | × | 不明 | ○ | × | ○ | |
| CH32V10x/CH32V20x/CH32V30x | ○ | 不明 | ○ | × | ○ | ||
| CH569/CH573/CH583 | ○ | 不明 | ○ | × | × | ||
| CH59x/CH641/CH645/CH564/CH584_585/ CH32M030/CH570_CH572 | × | 不明 | ○ | × | × | ||
| CH32F10x/CH32F20x/CH579/ FriendlyChipsThatSupport SWD Interface | ○ | 不明 | ○ | ○ | ○ | ||
| ARM | SWD mode | HID device | × | 不明 | × | ○ | × |
| WINUSB device | ○ | 不明 | ○ | ○ | ○ | ||
| JTAG mode | HID device | × | 不明 | × | ○ | × | |
| WINUSB device | × | 不明 | ○ | ○ | ○ | ||
| USB2.0からの使用 | × | 不明 | ○ | × | × | ||
| ModeS key to switch mode | × | 不明 | ○ | ○ | ○ | ||
| upgrade firmware offline | 2-wire way | × | 不明 | ○ | × | × | |
| Serial port | ○ | 不明 | × | × | × | ||
| USB | ○ | 不明 | × | ○ | ○ | ||
| Controllable 3.3V/5V power output | × | 不明 | ○ | ○ | ○ | ||
| ワイヤレスモード | × | 不明 | × | × | ○ | ||
| Download tools | MounRiver Studio | ○ | 不明 | ○ | × | ○ | |
| WCH-LinkUtility | ○ | 不明 | ○ | ○ | ○ | ||
| Keil uVision | V5.25 | 不明 | V5.25 | All | V5.25 | ||
| シリアル通信速度(bps) (Rx,Tx pin) | 1200 | ○ | 不明 | ○ | ○ | ○ | |
| 2400 | ○ | 不明 | ○ | ○ | ○ | ||
| 4800 | ○ | 不明 | ○ | ○ | ○ | ||
| 9600 | ○ | 不明 | ○ | ○ | ○ | ||
| 14400 | ○ | 不明 | ○ | ○ | ○ | ||
| 19200 | ○ | 不明 | ○ | ○ | ○ | ||
| 38400 | ○ | 不明 | ○ | ○ | ○ | ||
| 57600 | ○ | 不明 | ○ | ○ | ○ | ||
| 115200 | ○ | 不明 | ○ | ○ | ○ | ||
| 230400 | ○ | 不明 | ○ | ○ | ○ | ||
| 460800 | × | 不明 | ○ | ○ | ○ | ||
| 921600 | × | 不明 | ○ | ○ | ○ | ||
| 使用チップ CH32V | 103or549 | 203or305 | 208 | ||||
WINUSB deviceは、Windows標準のUSBドライバである Winusb.sys を使用してUSB 2.0フルスピードで接続動作する
2.開発前の設定
CH32V203の場合を書き留めます。(1)モード状態と表示他
|
MCUの命令セットアーキテクチャ(ISA)の一種にARMとRISC-Vとがある。 ※ISAとは Instruction Set Architecture の略でCPUが直接解釈して実行できる機械語の仕様(利用できるレジスタの種類や命令を実行した際の動作)を定めたものです。 比較表
CH32V203 は RISC-Vモード にする必要があります。 最初の状態は ARMモード になっていました。 これを変更する場合に必要なプログラムが WCH-LinkUtility ですが2025年7月20日現在では Windows 用しか無い。 |
(2)モード変更方法
|
a.アプリのダウンロードと起動 起動に必要なOSは Windows なので注意下さい。 プログラムのダウンロード先はWCH-LinkUtility.ZIP でダウンロードできます。 ダウンロードしたファイルを解凍して『WCH-LinkUtility.exe』を起動させると下図の画面が表示されます。 ![]() |
b.ファームウェアのアップデート メニュー「Target」の [ Connect WCH-Link ] を選択。 ![]()
c.RISC-Vモードへ変更 Active WCH-Link Mode:を [ WCH-LinkRV ] に選択して「Set」をクリック
画面左上の core を [ RISC-V ] に選択する。
続いて画面下 Connected WCH-Link Lisst の Refresh ボタンをクリックすると [ RISC-V Link ] を選ぶ事ができようになったと思います。 RISC-V Link で WCH-LinkE のLEDは赤だけが点灯しているはずです。 これで Linux でも接続できるはず。 |
3.接続方法
説明はMounRiver Studio Ⅱ との関係などを記載します。
*1 PD5,USART Txと同じPinのためプログラムでは注意
*2 CH32V003のPDDは 5.5VまでOKなので接続可能
*3 モジュールなどで5(V)端子があれば、接続可能
*4 GTKTermなどのシリアル通信アプリを使用することににより RS232C⬅➡USB として使用可能。 ( )はPin番号
***必要に応じて接続
| WCH- LinkE | CH32V003 | CH32V203 | 説 明 | ||
|---|---|---|---|---|---|
| J4M6 | F4P6 | K8T6 | K8T6 | ||
| SWCLK | --- | --- | PA14(24) | PA14(37) | デバッグ通信用のクロック信号を供給している。 |
| SWDIO | PD1(8) *1 | PD1(15) | PA13(23) | PA13(34) | プログラムのダウンロード、デバッグデータの入出力を行う双方向信号線 |
| GND | VSS(2) | VSS(4) | VSS(32) | VSS(23) | |
| 3V3 | VDD(1) *2 | VDD(6) *2 | VDD(1) | VDD(24) | 3.3Vの電源を供給、MCUのVDDに接続する |
| 5V | *2 | *2 | 5V*3 | 5V*3 | 5Vの電源を供給、MCUのPDDなどに接続する |
| RX | *4 | *4 | *4 | *4 | TerminalのRx端子です。MCUのTxに接続する。 |
| TX | *4 | *4 | *4 | *4 | TerminalのTx端子です。MCUのRxに接続する。 |
| TDO | *** | *** | *** | *** | より高度なデバッグや、特定のRISC-V/ARMマイコンのJTAGインターフェース用、テストデータ入力信号 |
| TDI | *** | *** | *** | *** | より高度なデバッグや、特定のRISC-V/ARMマイコンのJTAGインターフェース用、テストデータ出力信号 |
| RST | *** | *** | *** | *** | RST (Reset): ターゲットマイコンを強制的にリセットするためのピンです。書き込みが不安定な際や、完全に消去(Clear All Code Flash)を行う際に接続が必要になることがあります。 |
*2 CH32V003のPDDは 5.5VまでOKなので接続可能
*3 モジュールなどで5(V)端子があれば、接続可能
*4 GTKTermなどのシリアル通信アプリを使用することににより RS232C⬅➡USB として使用可能。 ( )はPin番号
***必要に応じて接続






画面左上の core を [ RISC-V ] に選択する。
続いて画面下 Connected WCH-Link Lisst の Refresh ボタンをクリックすると [ RISC-V Link ] を選ぶ事ができようになったと思います。