追加調査で押さえる実務ポイント
RP2350 / Raspberry Pi Pico 2で最初のファームウェアを安全にビルドし、書き込み、起動、観測、復旧まで再現するための実装ガイドです。最初に確認するのは、MCU名ではなく実際のボード型番、搭載品種、回路図、給電方法、書き込み・デバッグ経路です。評価ボードで動くことと、独自基板や量産候補で同じ条件が成立することを分けて判断します。
先に結論
Zephyr公式BoardページにPico 2が掲載されています。Arm Cortex-M33またはHazard3 RISC-Vの単一coreを選べますが、現行資料ではsecond core実行は未対応です。
ZephyrではMCU系列が対応していても、手元の基板に一致するboard target、Devicetree、pin control、flash runnerが用意されているとは限りません。最初はZephyr公式に登録されたボード、または回路図が公開された評価キットを使い、独自ボード対応はその後に分離します。
MCU、ボード、Zephyr targetを分ける
| 項目 | 確認内容 |
|---|---|
| MCU | RP2350 / Raspberry Pi Pico 2の正確な型番・package |
| 評価ボード | Raspberry Pi Pico 2 / Pico 2 W |
| Zephyr board target | west boardsと公式Boardページで確認 |
| architecture | Arm / RISC-V、core qualifierを確認 |
| debugger | on-board debugger、SWD、WCH-Link等 |
| console | UART、USB CDC、RTTのいずれか |
| flash | runnerと接続方法 |
| revision | 基板revisionとsilicon errata |
最初はCortex-M33 targetとhello_worldを使い、RISC-Vやcustom overlayは後から追加します。
開発環境を固定する
west --version
cmake --version
python --version
west boards | grep -i -E "pico|samd|ch32"
実行前にZephyr workspaceを作成し、使用するZephyr releaseまたはcommit、Zephyr SDK版、host OSを記録します。期待結果は、対象board targetが一覧に現れ、toolchainを認識できることです。
最初のビルド
west build -b <board-target> samples/hello_world
<board-target>は推測で置かず、公式Boardページに記載された完全なtargetを使います。Pico 2ではarchitecture qualifierが必要な場合があります。成功時はbuild/zephyr/にELF、map、bin、hex、UF2など対象board用の成果物が生成されます。
書き込み
| 方法 | 向く条件 | 確認 |
|---|---|---|
| USB bootloader / UF2 | Pico系など | boot mode、生成UF2 |
| on-board debugger | Xplained、DK等 | runner、driver |
| 外付けprobe | 独自基板 | voltage reference、pinout |
| vendor probe | WCH-Link等 | tool版、interface |
書き込み前に外付け回路を外し、target voltageとGNDを確認します。デバッガからの給電とUSB給電を同時に行う場合は回路図を確認してください。
起動と観測
期待する最小結果は次のいずれかです。
Hello Worldがconsoleへ一度出る。- 公式
blinkyで指定LEDが一定周期で変化する。 - debuggerで
main()へ到達できる。
複数の観測方法を同時に追加せず、最初は一つだけにします。
失敗時の切り分け
| 症状 | 優先確認 |
|---|---|
| unknown board | Zephyr版、target名 |
| compile error | SDK、module、board qualifier |
| flash失敗 | runner、probe、boot mode |
| consoleなし | UART/USB設定、baud、pin |
| 起動直後reset | 電源、watchdog、clock |
| LED不一致 | board revision、active low、Devicetree |
切り戻し
- 外付け回路を外す。
- bootloaderまたはdebuggerで既知のfirmwareへ戻す。
- pristine buildを行う。
- 公式sampleを無改変で再実行する。
- board target、overlay、Kconfigを一つずつ戻す。
安全上の注意
GPIO電圧、USB VBUS、debugger target voltageを混同しません。絶対最大定格は通常動作条件ではありません。配線変更は無通電で行い、静電気対策を取ります。
検証記録として残す項目
最初の成功だけでは、別PC、別個体、別担当者で再現できません。少なくとも次の項目を同じ記録へ残します。
| 項目 | 記録内容 |
|---|---|
| hardware | ボード名、revision、MCU marking、serial |
| firmware | repository、commit、release tag |
| build | compiler、SDK、option、board target |
| programming | probe、boot mode、runner、接続pin |
| power | 給電点、入力電圧、無負荷・動作時電流 |
| observation | UART、USB、LED、logic analyzer |
| result | 成功条件、失敗条件、再現回数 |
| recovery | 戻したfirmwareと手順 |
成果物はsourceだけでなく、ELF、map、binary、configuration、console logを保存します。生成物だけを残すと、後から同じbinaryを作れません。
配線を追加する順序
- 電源とGNDだけを確認する。
- debuggerまたはbootloader経由で書き込む。
- consoleまたはLEDを確認する。
- GPIOを1本だけ追加する。
- I2C/SPI/UART deviceを1個追加する。
- interruptやDMAを追加する。
- sleep、USB、networkなど複雑な機能へ進む。
複数の外付け部品を同時に接続すると、電源、pin mux、software、配線のどれが原因か分からなくなります。
電源と測定
USB給電、外部5V、3.3V rail、debugger給電を同時に接続する前に回路図を確認します。電流計は電源へ直列に接続し、電流rangeのまま並列接続しません。logic analyzerやoscilloscopeのGND clipも回路GNDへ接続し、商用電源や非絶縁回路へ安易に接続しないでください。
受入基準
次のすべてを満たした時点で「first build成立」とします。
- clean workspaceからbuildできる
- 新しい個体へ書き込める
- 電源再投入後も起動する
- 観測結果が3回以上一致する
- debuggerなしでも必要な動作をする
- 書き込み失敗後に復旧できる
- 使用したpinと電圧を説明できる
- error logと回避策を保存した
次に進む判断
最小sampleが成立した後は、peripheralを増やす前に、最終製品で必要なmemory、電流、connector、update方法を一覧化します。評価ボード上の便利な回路へ依存している場合は、独自基板へ移す前にその依存を明示してください。
参考リンク
- https://docs.zephyrproject.org/latest/boards/raspberrypi/rpi_pico2/doc/index.html - 公式仕様または公式対応資料。
- https://www.raspberrypi.com/products/rp2350/ - 公式仕様または公式対応資料。
- https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf - 公式仕様または公式対応資料。
Amazonの検索結果
購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。
「Raspberry Pi Pico 2」で検索した結果です。個別商品の推薦ではありません。型番・仕様・販売元を販売ページで確認してください。
Amazonで検索