【簡単!】Raspberry Pi Picoでデバッグプローブを作る方法【Arduino】

Raspberry Pi/電子工作
スポンサーリンク

こんにちは、あろっちです。

RP2040ボード(例: Raspberry Pi Pico)をデバッグするのにRaspberry Pi Debug Probeは便利ですが、価格はちょっと高めです。

Raspberry Pi Picoを使えば、デバッグプローブを低コストで実現できます。しかも、特別な設定は必要なく、debugprobe_on_pico.uf2をインストールするだけで、すぐにデバッグ作業を始めることができます。

本記事は、Raspberry Pi Picoをデバッグプローブとして使うためのポイントを解説します。

参考URL (公式) :

Pico-series Microcontrollers

Getting started with Raspberry Pi Pico-series (pdf)

スポンサーリンク

デバッグプローブ(Debug Probe)とは?

デバッグプローブとは、マイコンのプログラムを外部から観察し、不具合を特定するためのツールです。
特に、プログラムのデバッグにおいて以下のような機能を提供します。

  • ブレークポイントの設定

    プログラムを実行中に特定の箇所で一時停止させ、その時点の変数の値や処理の流れを確認できる。

    : LEDが点灯するはずの処理で、正しく信号が出力されているかをチェック。

  • ステップ実行

    プログラムを一行ずつ実行し、処理の順序や条件分岐の挙動を確認できる。

    : 条件分岐で意図した動作をしているかを確認する。

  • リアルタイムデータの観察

    実行中のプログラムから、変数の値やシステムの状態をリアルタイムで取得できる。

    : センサーのデータが正しく読み取られ、計算結果が正しいかをモニタリング。

  • エラーログの確認

    異常終了したプログラムの状況を特定し、エラーの原因を解析できる。

    : 特定のタイミングで発生するメモリエラーの原因を調査。

debugprobe_on_pico.uf2のインストール手順

Raspberry Pi Picoをデバッグプローブとして使用するために、debugprobe_on_pico.uf2をインストールします。次の手順で簡単にインストールできます。

  • 1
    debugprobe_on_pico.uf2のダウンロード

    以下からdebugprobe_on_pico.uf2をダウンロードします。
    https://github.com/raspberrypi/debugprobe/releases

    画像はバージョン2.2.0ですが、最新版をダウンロードすればよいでしょう
  • 2
    PicoをBOOTSELモードで接続

    BOOTSELボタンを押しながらPicoを接続し、PicoがBOOTSELモードでストレージ「RPI-RP2」として認識されるのを確認します。

  • 3
    debugprobe_on_pico.uf2をコピー

    パソコンに表示されるPicoのストレージに、debugprobe_on_pico.uf2ファイルをドラッグ&ドロップでコピーします。

    ファイルがコピーされるとPicoは自動的にマウント解除されます。

これでPicoはデバッグプローブ(以降、Picoデバッグプローブ)になります。

Picoデバッグプローブのインターフェースについて

2つのインターフェースがあります。

デバッグポート (CMSIS-DAP)

GPIOSWD
2SWCLK
3SWDIO

シリアルポート (CDC UART)

GPIOUART
4TX
5RX
CMSIS-DAPって?

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プロトコルに変更され、データ転送速度が大幅に向上。

配線について

最低限の接続でOK!

2本のSWDワイヤ(SWDIO、SWCLK)とGNDを接続するだけで十分です。

GNDはどのGNDピンでも可

デバッグ対象ボードの電源供給について

デバッグ対象のボードには電源が必要です。本記事では、シンプルにUSB接続で電源を供給する方法を採用します。

配線の例を実物の画像を使って紹介します。

USBケーブルやワイヤーの色

USBケーブル

Picoデバッグプローブ …
デバッグ対象ボード …

ワイヤー

SWCLK …
SWDIO …
GND …

Picoデバッグプローブ

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の場合

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での通信はしません。

Picoデバッグプローブのポートが判断できない場合、先にPicoデバッグプローブだけをUSBに接続するとポート名が分かります。

PicoデバッグプローブのポートをArduino IDEのポートとして選択し、その後にデバッグ対象のボードをUSBに接続するとポート選択の混乱が避けられます。

Upload Methodは「Picoprobe/Debugprobe (CMSIS-DAP)」を選択します。

Upload Method

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をデバッグプローブにする方法に加えて、最低限の配線で素早くデバッグまで漕ぎ着けることを目標に書いてみたつもりですが、いかがでしたでしょうか。

関連記事

当ブログのマイコン記事です。ぜひご覧ください。

この記事を書いた人
あろっち

元ITエンジニアです。

当ブログでは、興味があること、役に立ちそうなこと、気になったことを発信していきます。

記事についてのコメントや質問があれば、ぜひお寄せください。
また、ご依頼等は「お問い合わせ」よりお気軽にご連絡ください。

あろっちをフォローする
Raspberry Pi/電子工作ITWindowsMac
あろっちをフォローする

コメント

タイトルとURLをコピーしました