こんにちは、あろっちです。
RP2040ボード(例: Raspberry Pi Pico)をデバッグするのにRaspberry Pi Debug Probeは便利ですが、価格はちょっと高めです。
Raspberry Pi Picoを使えば、デバッグプローブを低コストで実現できます。しかも、特別な設定は必要なく、debugprobe_on_pico.uf2をインストールするだけで、すぐにデバッグ作業を始めることができます。
本記事は、Raspberry Pi Picoをデバッグプローブとして使うためのポイントを解説します。
参考URL (公式) :
Getting started with Raspberry Pi Pico-series (pdf)
デバッグプローブ(Debug Probe)とは?
デバッグプローブとは、マイコンのプログラムを外部から観察し、不具合を特定するためのツールです。
特に、プログラムのデバッグにおいて以下のような機能を提供します。
debugprobe_on_pico.uf2のインストール手順
Raspberry Pi Picoをデバッグプローブとして使用するために、debugprobe_on_pico.uf2をインストールします。次の手順で簡単にインストールできます。
- 1debugprobe_on_pico.uf2のダウンロード
以下からdebugprobe_on_pico.uf2をダウンロードします。
https://github.com/raspberrypi/debugprobe/releases - 2PicoをBOOTSELモードで接続
BOOTSELボタンを押しながらPicoを接続し、PicoがBOOTSELモードでストレージ「RPI-RP2」として認識されるのを確認します。
- 3debugprobe_on_pico.uf2をコピー
パソコンに表示されるPicoのストレージに、debugprobe_on_pico.uf2ファイルをドラッグ&ドロップでコピーします。
ファイルがコピーされるとPicoは自動的にマウント解除されます。
これでPicoはデバッグプローブ(以降、Picoデバッグプローブ)になります。
Picoデバッグプローブのインターフェースについて
2つのインターフェースがあります。
デバッグポート (CMSIS-DAP)
GPIO | SWD |
---|---|
2 | SWCLK |
3 | SWDIO |
シリアルポート (CDC UART)
GPIO | UART |
---|---|
4 | TX |
5 | RX |
CMSIS-DAP(Cortex Microcontroller Software Interface Standard – Debug Access Port)は、ARM Cortexマイコン向けに標準化されたデバッグインターフェースです。特に、SWD(Serial Wire Debug)やJTAGを利用した効率的なデバッグを可能にします。
PicoデバッグプローブはCMSIS-DAP v2対応
Raspberry Pi Picoをデバッグプローブとして使用する場合、その実装はCMSIS-DAP v2に対応しています。
CMSIS-DAP v2の特長
CMSIS-DAP v2は、CMSIS-DAPの最新バージョンです。v1から次のような改善がされています。
- HID(Human Interface Device)からWinUSBプロトコルに変更され、データ転送速度が大幅に向上。
配線について
配線の例を実物の画像を使って紹介します。
Raspberry Pi Picoの例
デバッグ対象のRaspberry Pi PicoにSWDピンが取り付けてある場合
デバッグ対象のRaspberry Pi PicoのSWDにジャンパーワイヤー(オス – メス)で配線します。
SWDの左からSWCLK(青)、GND(黒)、SWDIO(白)
Raspberry Pi Pico 2の例
デバッグ対象のRaspberry Pi Pico 2
SWDにピンの取り付けなし
デバッグ対象のRaspberry Pi Pico 2のSWDにスルーホール用テストワイヤ(オス – スルーホール)で配線します。
SWDの左からSWCLK(青)、GND(黒)、SWDIO(白)
Seeed Studio XIAO RP2040/RP2350の例
XIAO拡張ボードを使うとSWDでデバッグできます。ジャンパーワイヤー(オス – メス)で配線します。
SWDの左からGND(黒)、1ピン空け、SWDIO(白)、SWCLK(青)
Arduino IDEでスケッチを書き込んでみよう
Arduino IDE 2系を使った方法を簡単に解説します。
デバッグ対象のRP2040/RP2350ボード(例: Raspberry Pi Pico)にはPicoデバッグプローブを通じてスケッチを書き込みます。
Macの場合、Raspberry Pi Pico/RP2040ボード(Arduino-Pico) バージョン3.7.0以降をご使用ください。
これより前のバージョンではデバッガーが使えないのでご注意ください。
ボードはデバッグ対象のボードを選択します。例えばRaspberry Pi Pico 2がデバッグ対象のボードならRaspberry Pi Pico 2を選択します。
ポートはPicoデバッグプローブの接続ポートを選択します。
Windows: COM*
Mac: /dev/cu.usbmodem*
*(アスタリスク)は任意の文字列
書き込み先のRP2040/RP2350ボードも給電のためUSBに接続しておきます。
※USBでの通信はしません。
Upload Methodは「Picoprobe/Debugprobe (CMSIS-DAP)」を選択します。
Arduino IDEで書き込みを行います。(書き込みボタンをクリックするか、ショートカットキーCtrl + U、MacはCmd + Uを押下)
書き込みに成功すると「出力」タブに赤字のように表示されます。
ここまでできれば、この状態でデバッグできますよ!
Arduino IDEのデバッガーの操作方法はRaspberry Pi Debug Probeを使った場合と同様です。以下の記事を参照してください。
PlatformIOでもデバッグが使えます。
Raspberry Pi Pico以外のRP2040ボードでもPicoデバッグプローブが作れます
例えばRP2040-Zeroを使うと小型でRaspberry Pi Picoより安価(※)に作れるのでデバッグプローブ専用ボードとして運用しやすいかと思います。
※AliExpressだと割とお手頃な価格で販売しています。
debugprobe_on_pico.uf2のインストール手順やデバッグポートのGPIOピン(2=SWCLK、3=SWDIO)はRaspberry Pi Picoと同じです。
最後に
Raspberry Pi Picoをデバッグプローブにする方法に加えて、最低限の配線で素早くデバッグまで漕ぎ着けることを目標に書いてみたつもりですが、いかがでしたでしょうか。
関連記事
当ブログのマイコン記事です。ぜひご覧ください。
コメント