USB HID / implementation

CH32V208: mouse firmware test

CH32V208をUSB Device HID mouseとしてPCへ接続し、固定移動、button、wheel、rotary encoder入力を確認する実装ガイドです。CH32V208の公式資料ではUSB 2.0 full-speed DeviceとHost/Device interfaceが案内されていますが、使用する完全型番、package、開発ボードでUSB pinとconnectorが実際に配線されているかを最初に確認します。

対象CH32V208
用途mouse firmware test
Review2026-08-03

追加調査で押さえる実務ポイント

CH32V208をUSB Device HID mouseとしてPCへ接続し、固定移動、button、wheel、rotary encoder入力を確認する実装ガイドです。CH32V208の公式資料ではUSB 2.0 full-speed DeviceとHost/Device interfaceが案内されていますが、使用する完全型番、package、開発ボードでUSB pinとconnectorが実際に配線されているかを最初に確認します。

先に結論

CH32V208でUSB HID mouseを構成することは可能です。ただし、同じCH32V20x系列のsampleをそのまま流用せず、CH32V208向けSDK、board schematic、USB clock、D+/D-配線を一致させます。最初の成功条件は、PCがHID mouseとしてenumerationし、固定reportで短い移動を再現できることです。

必要なもの

  • CH32V208のexact partを搭載した開発ボード
  • data対応USB cable
  • WCH-Linkまたは対応programmer
  • WCH公式SDKとHID sample
  • USB descriptor確認ツール
  • 任意でbutton、rotary encoder、logic analyzer

USB connectorを確認する

開発ボードのUSB connectorが、次のどれかを確認します。

connectorの用途意味
target USB DeviceHID mouseに利用可能
debugger USB書き込み専用でtarget HIDには使えない
USB HostVBUS供給を伴う別role
USB-UART bridgetarget MCUのUSBではない

最小実装

  1. 外付け入力を外す。
  2. WCH公式のUSB Device sampleをbuildする。
  3. descriptorをHID mouseの最小構成にする。
  4. PCでVID、PID、class、endpointを確認する。
  5. X方向へ小さく移動する固定reportを送る。
  6. button pressとreleaseを追加する。
  7. wheelを追加する。
  8. unplug、replug、suspend、resumeを試す。

HID reportの設計

一般的なmouse reportではbutton bit、X、Y、wheelを持ちます。値のsigned範囲、report interval、relative/absoluteをdescriptorとfirmwareで一致させます。

buttons
x_delta
y_delta
wheel_delta

buttonは押下だけでなくreleaseを必ず送ります。releaseを送らないと、PC側で押しっぱなしになります。

rotary encoderを追加する場合

encoder入力はmechanical bounceと高速回転時の取りこぼしを確認します。GPIO interruptだけで不足する場合はtimerやstate machineを使います。mouse wheelへ割り当てる場合は、一回のdetentと一つのwheel eventが一致するように調整します。

認識しないときの切り分け

症状確認
USB deviceが出ないcable、VBUS、D+/D-、clock
Unknown DeviceEP0、descriptor、clock
HIDだが動かないreport descriptor、endpoint
一度だけ動くreport送信状態、busy flag
再接続できないUSB state初期化
bootloaderだけ見えるapplication USBの初期化

切り戻し

USB descriptorを変更する前のknown-good binaryを保存します。applicationがUSB初期化で停止してもWCH-Linkからerase、再書き込みできる状態を保ちます。USBだけを変更した試験では、encoderやLEDなど他のdriverを同時に追加しません。

実装前に固定する情報

同じCH32V208でも、完全型番、package、開発ボード、基板revision、bootloader、SDK、回路図が違えば、利用できるpinやUSB connectorの接続先は変わります。作業前に次を記録します。

項目記録内容
MCU完全型番、package、chip marking
board製品名、revision、回路図
power給電点、入力電圧、logic voltage
softwareMounRiver Studio、WCH SDK、commit
programmingWCH-Link、boot mode
observationUART、USB descriptor、logic analyzer
recoveryerase、known-good firmware
result合格条件、再現回数

販売ページの写真や別型番のpinoutだけで配線を決めません。CH32V203、CH32V208、CH32V307は近い系列でも、搭載機能とpackageが同一とは限りません。

電源と安全

配線変更は無通電で行います。GPIOへRS-485のA/B線やUSB VBUSを直接接続しません。絶対最大定格は通常動作条件ではありません。USB給電と外部給電を併用する場合は逆流経路を確認します。

次の場合は作業を中止します。

  • exact partとboard revisionを確認できない
  • logic voltageや電源railが不明
  • 公式sampleが無改変で動かない
  • recovery方法がない
  • 異常発熱、変色、接触不良がある

受入基準

  • clean buildが成功する
  • 別個体へ書き込める
  • 完全電源断後も起動する
  • 3回以上同じ結果になる
  • error counterを取得できる
  • 書き込み失敗後に復旧できる
  • 使用pinと外付け回路を説明できる

次に確認するページ

参考リンク

  • https://www.wch-ic.com/products/CH32V208.html - WCH公式CH32V208製品ページ。
  • https://github.com/openwch/ch32v20x - WCH公式GitHub。USB sampleとseries資料の確認先。
  • https://www.wch-ic.com/downloads/CH32V20x_30xDS0_PDF.html - WCH公式datasheet配布ページ。

確認日: 2026-08-02

Amazonの検索結果

購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。

次に読むとよい記事