0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UIAPduino Pro Micro CH32V003 V1.4をrv003usbで使おう

0
Posted at

今回はch32v003でUSBを実現するrv003usbをUIAPduino Pro Micro CH32V003 V1.4で使ってみましょう。

rv003usbとは

rv003usbはch32funにソフトウェアUSB機能を追加したソフトウェアライブラリになります。

ch32fun環境の構築

今回、Winodws上のWSL2で実行しています。
最初にch32funのインストレーションを参考に環境構築を行います。
そのままではインストールできないのでsudoを追加して実行します。

sudo apt-get install build-essential libnewlib-dev gcc-riscv64-unknown-elf libusb-1.0-0-dev libudev-dev gdb-multiarch

image.png

rv003usbのインストール

rv003usb環境のフルコピーします。
git cloneだけではサブモジュールがコピーされない為、オプションを追加します。

git clone --recursive https://github.com/cnlohr/rv003usb/

コメント 2026-03-08 145826.png

実行する

デモプログラムをそのままmakeしただけではエラーが出てしまいます。
コメント 2026-03-08 145911.png

WSLから直接接続する

今回、WSLからUIAPduino Pro Micro CH32V003 V1.4に接続できるようにします。
Windows上のPowerShellにおいて

usbipd list:接続されたUSBデバイスの状態の表示
usbipd attach --wsl --busid 1-3:busid 1-3をWSLで使用可能にする

今回は、busid 1-3をWSLで使用出来るようにします。
AttachedとなることでUSBがWSLから使用可能になったことになります。
なお、再接続されない為、毎回この作業を行う必要があります。

image.png

udevルールの追加

WSLのLinuxに udevルール を追加します。

# Do this command after UIAPduino board was installed.
sudo wget -O /etc/udev/rules.d/99-minichlink-uiap.rules https://raw.githubusercontent.com/YuukiUmeta-UIAP/ch32fun/3bfa603f11d493710f2a811b5a2dfad905d9425c/minichlink/99-minichlink-uiap.rules
# Reboot or do this command if needed.
sudo udevadm control --reload-rules && sudo udevadm trigger

Make

make を実行すること コンパイル&書込み が行われます。
問題なく書込みまで行われるとマウスが動き、bとキー入力されます。
スクリーンショット 2026-03-09 103504.png

シームレススイッチ化

続いて、シームレススイッチ化しましょう。
プログラムに以下を追加します。

  if (FLASH->STATR & (1<<14)) NVIC_SystemReset();
  FLASH->KEYR = FLASH_KEY1;
  FLASH->KEYR = FLASH_KEY2;
  FLASH->BOOT_MODEKEYR = FLASH_KEY1;
  FLASH->BOOT_MODEKEYR = FLASH_KEY2;
  FLASH->STATR |= (1<<14);
  FLASH->CTLR = CR_LOCK_Set;
  funPinMode( PD4, GPIO_CFGLR_OUT_10Mhz_PP );

image.png
以上でシームレススイッチにすることができました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?