ESP-Prog は Espressif 社のデバッグツールです。写真の上の黒いやつです (ブレッドボードに乗っているのは、ESP32 開発ボード)。ESP32 のプログラムをブレークポイントを張ってデバッグすることができます。ボードを入手してから、ほぼ接続するだけで使えるようになりました。
手持ちのジャンパワイヤにちょうど良いのがなかったため、途中で繋いだりしていますが、気にしないでください。ESP32開発ボード下の 19-23, 18-20 に写っている短いジャンパワイヤは、今回の接続に関係ありません。
#前提
- Platform IO で ESP32 のプログラムをコンパイル、アップロード、モニターできていること
#環境
今回使ったのは、以下のような環境です。
- ESP32 開発ボード
Amazon で入手できる安価なボード HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード を使いました。 -
ESP-Prog
取り寄せになりましたが、注文してからちょうど1週間で届きました。 - ブレッドボード、ジャンパワイヤ、USBケーブル
- 母艦として MacBook Air macOS (Catalina 10.15.7)
#ドキュメント
- Espressif の Introduction to the ESP-Prog Board
まず、これは必読。 - Platform IO の Debugging > ESP-Prog にリンクがあるチュートリアル Use the PlatformIO Debugger on the ESP32 Using an ESP-prog
Platform IOでの使い方は、これが分かりやすかった。 -
ESP-Prog Reference Design に含まれる回路図
(DigiKeyのESP-Progの製品ページ にありました -
ESP32-WROOM-32D のデータシート
6. Schematics、7. Peripheral Schematics -
HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード
商品画像のうち、PIN DEFINITION と 回路図 (製品にはプリントアウトが添付されていたのですが、データがどこにも見つかりません)
#USBドライバのインストール
USBドライバのインストールはしませんでした。FTDIの Mac OS X Installation Guide には、MacOSに入っているデフォルトのUSBドライバを無効にしてから、FTDIのドライバをインストールするように書かれていますが、、、
ESP-Prog を接続すると、以下のように検出されます。2つありますが、番号の小さい方が JTAG インタフェースとつながっています。
#ESP32 開発ボードとESP-Prog の接続
ESP32 開発ボードとの接続ピンは、ESP32 JTAG pins にあります。
##ESP32 開発ボードの電源
ESP32 開発ボードにつながっている USB ケーブルは外しておきます。
HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード の回路図で POWER 辺りの回路を見る限り、3.3VではなくUSBと同じ側に5Vを入れるのがよさそうです。
ESP32 開発ボードへは、ESP-Prog から電源供給します。電源供給を選択するピンヘッダが JTAG インタフェース(JTAG COM n と書かれている下の差込口)の隣にあるので、USBからの電圧と同じ5V を選択します。
##ESP-Prog の接続
下図のように ESP-Prog と ESP32 開発ボードを接続しました(Introduction to the ESP-Prog Board の 3.2.2. Communication Interface にある JTAG インタフェースの図に、接続する ESP32 開発ボードのピンを書き込んだものです)。
#母艦との接続
ESP-Prog と MacBook Air を USB ケーブルで接続します。書き込み、アップロードの確認ができているUSBケーブルが安心です。
#PlatformIO でプロジェクトの設定
Platform IO でプロジェクトを開いたら、platform.ini を開いて、debug_tool = esp-prog
を追加して保存します。Platform IO を使っていれば、設定はこれだけです。ほんとに。
フレームワークは、espidf を使っていますが、arduino でも同じようにいけます。
#デバッグ開始
Run > Start Debugging (または、F5) でデバッグを開始します。app_main() の先頭で止まりますので、ステップ実行するなり、ブレークポイントで止めるなりして、デバッグします。
#まとめ
すんなりと動きました。ESP-Prog を注文してから1週間、届いてからは、ちょうどよいジャンパワイヤがないことに気付いて結線に手間取りましたが、USBポートにつないでからはすぐにデバッグ開始できました。