「ESP-Prog ボードで ESP32 のデバッグ」の続編です。先回の記事では、ESP-Prog の JTAG インタフェースを使って、プログラムをデバッグできるようにしました。ESP-Prog には、もう一つプログラムインタフェースがついていて、USB ケーブル1本でプログラムをアップロードしたり、シリアルポートをモニターすることもできます。
白い輪ゴムがついている方がプログラムインタフェースです。ESP-Prog から出ているピンとブレッドボードを接続するのには、「HiLetgo 5個セット 40P デュポン ワイヤー ジャンパー ブレッドボード 接続ワイヤー (オス-メス)1P-1Pピッチ 2.54mm 長さ 20CM [並行輸入品]」を使ってみました。ワイヤーがくっついているので散らばりません。
#前提
- Platform IO で ESP32 のプログラムをコンパイル、アップロード、モニターできていること
- ESP32 開発ボードに電源が供給できていること
「ESP-Prog ボードで ESP32 のデバッグ」では、JTAG インタフェースから 5V をESP32 開発ボードに入力できるようにしました。
#ESP32 開発ボードとESP-Prog の接続
##ESP32 開発ボードの電源
ESP32 開発ボードにつながっている USB ケーブルは外してあります。JTAG インタフェースから 5V をとりましたので、プログラムインタフェースの VDD は接続しません。
##ESP-Prog の接続
下図のように ESP-Prog と ESP32 開発ボードを接続しました(Introduction to the ESP-Prog Board の [3.2.2. Communication Interface]
(https://docs.espressif.com/projects/espressif-esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html#communication-interface) にある プログラムインタフェースの図に、接続する ESP32 開発ボードのピンを書き込んだものです)。
#母艦との接続
ESP-Prog と Mac を USB ケーブルで接続します。
#PlatformIO でプロジェクトの設定
Platform IO でプロジェクトを開いたら、platform.ini を開いて、アップロード用のプロトコル(ESP-Prog - PlatformIO latest documentation)、モニター用ポート([Introduction to the ESP-Prog Board - ESP-IoT-Solution documentation]
(https://docs.espressif.com/projects/espressif-esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html#the-working-mode-of-usb-bridge)の !Note)、モニター用ポートのスピードを追加して、保存します。
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = espidf
; デバッグに ESP-Prog を使う
debug_tool = esp-prog
; ESP-Prog を使ってアップロード
upload_protocol = esp-prog
; モニター用ポート(ESP-Progを接続した時に現れるポートのうち番号の大きい方)
monitor_port = /dev/cu.usbserial-142101
; モニター用ポートのスピード
monitor_speed = 115200
#アップロードとモニター
アップロードとモニターの開始は、ESP32 開発ボードに USB ケーブルをつないでいた時と同じです。違いは、アップロード時に ESP32 開発ボード上の小さなボタン(IO0, EN)の操作が必要がなくなったことです。これは便利です。
##アップロード
PROJECT TASKS から General > Upload を選択します。ターミナルに次のように出てアップロードできました。
##モニター
同様に PROJECT TASKS から General > Monitor を選択します。printf() などで出力したログを見ることができます。
##デバッグ中のモニター
そして、Run > Start Debugging でデバッグ中にもモニターできます。111行目にブレークポイントを張っていますが、直前のprintf() の出力が TERMINAL に出力されています。
#まとめ
ESP-Prog を使ってUSBケーブル1本で、ESP32 のプログラムをデバッグしたり、アップロードやモニターすることもできるようになりました。