WCH-LinkE を初期設定する

「50円マイコン ch32v003 を使った簡単キット(AKBONE2024)を組み立てる」
https://qiita.com/nanbuwks/items/22680849ee7674d66a89

のように、WCH 社の RISC-V マイコンを最近使っているのですが、ファームウェアを書き込む公式ハードウェアとして WCH-LinkE が用意されています。
![IMG_20241114_183636.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/78520df6-d9a8-b29e-a61e-49c2d3b2c08f.jpeg)


CH32V003 を Ubuntu で書き込みするには、WCH-LinkE が必要です。

なお WCH 社の公式ツールはいくつかあり、E なしの WCH-Link というのもあります。WCH-Link は AKBONE2024 に使用している CH32V003 には書き込めないので注意。

さて、購入してきた WCH-LinkE を PC に繋げると赤と青のLEDが点灯します。

![IMG_20241114_183702.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b7de8170-12d9-399a-b48d-73565462ea3e.jpeg)

WCH-LinkE は内部でモードを持っていて、書き込むマイコンのアーキテクチャによって ARM モード、 RISC-V モードを使い分ける必要があります。

LEDが青と赤が光っているのが初期モードである ARM モード。

今回の目的の RISC-V マイコンに書き込むためには RISC-V モードに設定変更する必要があります。方法はいくつかるようですが、PCから設定変更するのが良さそうです。

# Ubuntu Linux で?

公式には Linux 系はサポートされていませんが、Hack すればできそうです。しかしながら WCH-LinkE は使用前に内部ファームウェアの更新などをしないと調子が悪そう。

ファームの書き換えを考えると公式ツールを使うのが無難と判断し、初期設定は WindowsPC で行うことにしました。


# WCH-LinkUtility を Windows で使う

公式ツールである WCH-LinkUtility を使っていきます。
https://www.wch.cn/downloads/wch-linkutility_zip.html
こちらから、WCH-LinkUtility.ZIP　をダウンロードして展開、実行します。

実行すると以下の画面が表示されます。USBのデバイスドライバかな? 「INSTALL」を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/220facc1-2fe5-e0f5-fdd8-59e5af26757f.png)

アプリの起動直後の画面。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/cc535fc9-2789-0701-0455-3f099407fb10.png)

WCH-LinkE を刺してから、Core: を ARM に操作すると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/743e33a8-ca15-dc14-9890-49bfef7ab796.png)

Connected WCH-Link List に DAP Link が現れて認識できていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5caa0217-8292-810f-1df5-0963dc87e132.png)

# ファームウェアのアップデート

「Target」-「Connect WCH-Link」を選ぶと、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b614a472-81b2-4dea-4e2f-6a45ef8c5f50.png)

ファームウェアの update が促されるのでYで進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2b53ded0-dc46-9475-a275-b7acb442757e.png)

しばらくすると update が成功。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/8e102869-b07f-2e8f-fd17-a9345e0e9b51.png)

Windows の通知にメッセージが出てきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a7cad158-606c-4662-4f4c-40e5b1f65d44.png)

# RISC-V モードに変更

ここから、Active WCH-Link Mode:を WCH-LinkRV にして「Set」を押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/35b00da6-0ad4-84b2-e8a7-bc1bd27a6b47.png)

その後、 Core: を RISC-V にして、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/9e8469b3-21e2-2794-b5b7-9f22dc094089.png)

Connected WCH-Link List: をRefresh すると RISC-V Link が出現しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b6714523-0cf0-55b6-61bf-fb192cf69319.png)

# 設定完了

LED も 青が消灯し、RISC-V モードになったことがわかります。

![IMG_20241114_222333.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/abcfb05e-e302-05b3-8f7f-f04e3d37ed5b.jpeg)


この状態は内部で保持しているので、取り外して Linux マシンに接続しても RISC-V モードとして使うことができます。

これでようやく無事設定できました。