追加調査で押さえる実務ポイント
CH32V208でZephyr RTOSの最初のbuild、書き込み、console、LED、復旧までを再現するページです。MCU系列がZephyrに対応していても、手元のboardと公式board targetが一致するとは限りません。最初はZephyr公式に登録されたWCH LinkWを使い、独自board対応はその後に分離します。
先に結論
Zephyr公式にはWCH LinkW boardが登録され、CH32V208 SoC supportを確認できます。一般販売のCH32V208 boardがLinkWと同じ回路とは限らないため、最初はLinkWを基準にします。
対象を固定する
| 項目 | 内容 |
|---|---|
| MCU | CH32V208の完全型番 |
| 公式board | WCH LinkW |
| Zephyr target | linkw |
| architecture | board資料で確認 |
| console | UART等 |
| flash runner | board資料で確認 |
| debugger | target voltageとpin確認 |
| Zephyr | releaseまたはcommitを固定 |
環境確認
west --version
cmake --version
python --version
west boards | grep -i "linkw"
最初のbuild
west build -b linkw samples/hello_world
成功時はbuild/zephyr/へELF、map、binary、configurationが生成されます。
pristine build
west build -p always -b linkw samples/hello_world
古いbuild cacheで成功している状態を避けるため、最終記録はpristine buildで取ります。
書き込みと観測
- 外付け回路を外す。
- target voltageとGNDを確認する。
- official runnerでflashする。
- console pinとbaudを確認する。
Hello Worldを観測する。blinkyを試す。- resetと完全電源断を試す。
- known-good imageへ戻す。
期待結果
- target名が認識される
- configureとcompileが成功する
- flashが完了する
- consoleへboard名が表示される
- LED sampleが一定周期で動く
- power cycle後も起動する
失敗時
| 症状 | 確認 |
|---|---|
| unknown board | Zephyr版、target名 |
| compile error | SDK、module、Kconfig |
| flash失敗 | runner、probe、boot mode |
| consoleなし | UART pin、baud、clock |
| LED不一致 | board revision、active low |
| timing異常 | oscillator、clock config |
独自boardへ移る条件
公式sampleが成立した後にDevicetree、Kconfig、pin control、clock、flash runnerを独自board用に追加します。別boardのoverlayをpinだけ変更して完成扱いにしません。
検証記録として残すもの
最初の一度だけ動いた状態では、再現可能な検証とはいえません。少なくとも次の項目を同じ記録へ残します。
| 項目 | 記録内容 |
|---|---|
| hardware | MCU完全型番、board名、revision、chip marking |
| power | 給電点、入力電圧、idle・active・peak current |
| software | SDK、toolchain、commit、board target、設定 |
| programming | probe、boot mode、書き込み方法 |
| observation | UART、USB、LED、logic analyzer、電流波形 |
| result | 合格条件、失敗条件、再現回数 |
| recovery | known-good firmwareと復旧手順 |
sourceだけでなく、ELF、map、binary、configuration、console logも保存します。生成物だけを残すと、後から同じbinaryを作れない可能性があります。
共通の安全条件
配線変更は無通電で行います。GPIO電圧、USB VBUS、battery電圧、外部電源を混同しません。絶対最大定格は通常動作条件ではありません。外部電源とUSB給電を同時に使う場合は、board schematicで逆流経路を確認します。
次の状態では作業を中止します。
- 正確なboard revisionやMCU markingを確認できない
- 電源railやlogic voltageが不明
- recovery方法がない
- debuggerとtargetの給電関係が不明
- 異常発熱、変色、接触不良がある
- 公式sampleが無改変で動かない
受入基準
- clean workspaceからbuildできる
- 別個体へ書き込める
- 完全電源断後も起動する
- 観測結果が3回以上一致する
- errorを検出し安全状態へ戻れる
- 書き込み失敗後に復旧できる
- 使用pin、電圧、周辺機能を説明できる
実装を始める前のレビュー
作業開始前に、次の項目を一度書き出します。ここが曖昧なままでは、同じMCU名でも別board、別package、別SDKを混ぜてしまい、再現できない記事になります。
| 確認項目 | 記録内容 |
|---|---|
| 対象 | MCU完全型番、module名、board名、revision |
| 目的 | 何を入力し、何を出力するか |
| 電源 | 給電点、入力範囲、logic voltage |
| 書き込み | probe、bootloader、connector |
| 観測 | UART、USB、LED、logic analyzer |
| software | SDK、IDE、compiler、commit |
| 外付け部品 | sensor、module、transceiver、storage |
| 切り戻し | known-good image、factory reset |
| 合格条件 | 何ができたら次へ進むか |
「同じ系列だから動く」「同じconnectorだから配線も同じ」という判断は避けます。販売ページの写真やcommunity pinoutは、official schematicと現物revisionを照合した後の補助資料として使います。
配線を追加する順序
- board単体で起動する。
- LEDまたはUARTで最小firmwareを確認する。
- GNDと電源だけを接続する。
- signalを1本だけ追加する。
- 外付けdeviceを1個追加する。
- interruptまたはDMAを追加する。
- sleep、network、USBなど複雑な機能へ進む。
- 最後に複数機能を同時実行する。
複数部品を一度に接続すると、電源不足、pin mux、driver、配線、softwareのどれが原因か分からなくなります。各段階で写真、配線図、console log、測定値を保存します。
電源測定の基本
電流計は電源へ直列に接続します。電流測定rangeのまま電源へ並列接続すると短絡する危険があります。USB給電と外部給電を併用するときは、逆流防止、jumper、power selectorを回路図で確認します。
測定は次の状態を分けます。
- reset保持中
- boot直後
- idle
- active処理
- peripheral動作
- communication peak
- sleep
- wake-up
- error recovery
average currentだけでなくpeak currentと継続時間を記録します。短いpeakでregulator出力が低下すると、平均電流が小さくてもresetする場合があります。
firmwareの再現性
buildを再現するため、次をversion管理します。
source repository and commit
SDK and toolchain version
board target
configuration files
partition or memory map
linker script
generated code settings
build command
binary hash
IDEのworkspaceだけに依存せず、可能ならcommand lineからclean buildできる状態を作ります。自動生成fileを使う場合は、生成元設定と生成toolのversionも保存します。
異常系の受入試験
| 試験 | 操作 | 合格条件 |
|---|---|---|
| cold boot | 完全電源断後に起動 | 毎回同じ状態で開始 |
| reset | reset pinまたはsoftware reset | outputが安全に初期化 |
| cable reconnect | USB/UART等を抜き差し | hangせず復帰 |
| low voltage | 許容範囲内で低下 | brownoutを検出 |
| communication loss | AP、server、相手機器を停止 | timeoutし再試行 |
| storage error | media抜去・満杯 | data破損を限定 |
| watchdog | 意図的にtask停止 | reset reasonを記録 |
| update failure | 書き込みを中断 | recovery可能 |
| long run | 想定時間連続運転 | leak、overflowなし |
異常系の試験では、重要なdata、業務network、本番credentialを使いません。test用account、test media、隔離networkを用意します。
評価ボードから独自基板へ移すとき
評価ボードには、on-board debugger、USB-UART、電源LED、sensor、level shifter、複数regulatorなどが搭載されている場合があります。独自基板へ移す前に、それぞれが最小firmwareのどの機能を支えていたかを確認します。
| 評価ボードの機能 | 独自基板での判断 |
|---|---|
| on-board debugger | SWD/JTAG/test padへ置換 |
| USB-UART | 保守connectorとして残すか |
| power LED | standby currentと診断性を比較 |
| sensor | 製品用型番へ置換 |
| regulator | input、noise、thermalを再設計 |
| boot button | factory fixtureで操作可能にする |
| external flash | 容量とupdate方式を固定 |
| antenna | module認証とlayout条件を確認 |
量産・常設運用へ進む判断
次の条件を満たすまでは、PoC成功を量産可能と判断しません。
- 独自基板first articleへ書き込める
- factory testで主要I/Oを確認できる
- firmware versionとboard revisionを取得できる
- updateとrollbackを実演できる
- serial numberと製造logを紐付けられる
- current、thermal、EMCの予備評価を行った
- component lifecycleと供給経路を確認した
- debug interfaceの出荷時方針を決めた
- failure時の交換・復旧手順がある
記事の確認日と未確認事項
本記事の仕様・対応状況は2026-08-02時点で確認しています。価格、在庫、SDK version、board revision、製品statusは変動します。購入・実装時には本文末尾の公式リンクを開き、最新のdatasheet、user guide、release note、board schematicを再確認してください。
公式資料で確認できない事項は、販売ページや別製品の説明から補完せず「要確認」として扱います。
次に確認するページ
参考リンク
- https://www.wch-ic.com/products/CH32V208.html - 公式製品情報、仕様、SDKまたは開発ボード資料。
- https://docs.zephyrproject.org/latest/boards/wch/linkw/doc/index.html - 公式製品情報、仕様、SDKまたは開発ボード資料。
- https://docs.zephyrproject.org/latest/boards/index.html - 公式製品情報、仕様、SDKまたは開発ボード資料。
Amazonの検索結果
購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。
「CH32V208 development board」で検索した結果です。個別商品の推薦ではありません。型番・仕様・販売元を販売ページで確認してください。
Amazonで検索