Learning / implementation

CH32V208: Zephyr RTOS first build

CH32V208でZephyr RTOSの最初のbuild、書き込み、console、LED、復旧までを再現するページです。MCU系列がZephyrに対応していても、手元のboardと公式board targetが一致するとは限りません。最初はZephyr公式に登録されたWCH LinkWを使い、独自board対応はその後に分離します。

対象CH32V208
用途Zephyr RTOS first build
Review2026-08-03

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

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を基準にします。

対象を固定する

項目内容
MCUCH32V208の完全型番
公式boardWCH LinkW
Zephyr targetlinkw
architectureboard資料で確認
consoleUART等
flash runnerboard資料で確認
debuggertarget voltageとpin確認
Zephyrreleaseまたは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で取ります。

書き込みと観測

  1. 外付け回路を外す。
  2. target voltageとGNDを確認する。
  3. official runnerでflashする。
  4. console pinとbaudを確認する。
  5. Hello Worldを観測する。
  6. blinkyを試す。
  7. resetと完全電源断を試す。
  8. known-good imageへ戻す。

期待結果

  • target名が認識される
  • configureとcompileが成功する
  • flashが完了する
  • consoleへboard名が表示される
  • LED sampleが一定周期で動く
  • power cycle後も起動する

失敗時

症状確認
unknown boardZephyr版、target名
compile errorSDK、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だけ変更して完成扱いにしません。

検証記録として残すもの

最初の一度だけ動いた状態では、再現可能な検証とはいえません。少なくとも次の項目を同じ記録へ残します。

項目記録内容
hardwareMCU完全型番、board名、revision、chip marking
power給電点、入力電圧、idle・active・peak current
softwareSDK、toolchain、commit、board target、設定
programmingprobe、boot mode、書き込み方法
observationUART、USB、LED、logic analyzer、電流波形
result合格条件、失敗条件、再現回数
recoveryknown-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
softwareSDK、IDE、compiler、commit
外付け部品sensor、module、transceiver、storage
切り戻しknown-good image、factory reset
合格条件何ができたら次へ進むか

「同じ系列だから動く」「同じconnectorだから配線も同じ」という判断は避けます。販売ページの写真やcommunity pinoutは、official schematicと現物revisionを照合した後の補助資料として使います。

配線を追加する順序

  1. board単体で起動する。
  2. LEDまたはUARTで最小firmwareを確認する。
  3. GNDと電源だけを接続する。
  4. signalを1本だけ追加する。
  5. 外付けdeviceを1個追加する。
  6. interruptまたはDMAを追加する。
  7. sleep、network、USBなど複雑な機能へ進む。
  8. 最後に複数機能を同時実行する。

複数部品を一度に接続すると、電源不足、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完全電源断後に起動毎回同じ状態で開始
resetreset pinまたはsoftware resetoutputが安全に初期化
cable reconnectUSB/UART等を抜き差しhangせず復帰
low voltage許容範囲内で低下brownoutを検出
communication lossAP、server、相手機器を停止timeoutし再試行
storage errormedia抜去・満杯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 debuggerSWD/JTAG/test padへ置換
USB-UART保守connectorとして残すか
power LEDstandby currentと診断性を比較
sensor製品用型番へ置換
regulatorinput、noise、thermalを再設計
boot buttonfactory fixtureで操作可能にする
external flash容量とupdate方式を固定
antennamodule認証と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の検索結果

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

次に読むとよい記事

PR