ESP32 の開発効率を上げる デバッグが出来る ハイパワーUSB シリアル デバッガー を作りました。
従来のハイパワーシリアル同様 3.3Vの電流がたくさん取り出せ, ESP8266 や Arduino UNO の書き込みもこれ一つで可能です。 Type-C と Micro B の2種類を用意しました。
説明!
ESP32 は豊富なペリフェラルとメモリ容量で かなり複雑なプログラムをすることも出来るのですが, 意図せぬ不具合が発生した時に 切り分けを行うのが難しく, printf を随所に仕掛けるなどして地道にデバッグを行う必要がありました。
この ハイパワーUSBシリアル デバッガー を使えば, 動作中のマイコンのメモリを見たり, プログラム上にブレークポイントを仕掛けて, プログラムを止めたり, 1行ごと実行することができます!
VS Code でESP32 をデバッグしている様子。 loop() の if文の上 11行目でブレークポイントを仕掛け, 1行づつステップ実行をしている。
これにより, 今まで コンパイルして実行, printf デバッグを確認, プログラム修正, コンパイルして実行 と 非常に時間と手間がかかっていた作業が, 一気に効率化することが出来ます !
また, Ghz2000 の Universal ESP32duino を使用すると このデバッガを差し込むだけですぐにデバッグを始めることができます!
また, 従来の Ghz2000製 ハイパワーUSB シリアル変換 同様, 3.3Vの電源ソースには 大容量の三端子レギュレーター 1117 を搭載しており, 最大800mAもの大電流を流すことが出来ます。
これにより, ESP8266 や 更に消費電力の増えた ESP32 でも問題なくUSBケーブル 1本で書き込み,デバッグすることが出来ます!
※USB接続のためホスト側の供給能力が上限となります。
また, 基板端側の1列目だけを使用することで, ESP32 だけでなく, ESP8266 や そのArduino型互換機 である Universal ESPduino , Arduino UNO 互換機の Universalno の書き込み機としても使用することが出来ます。
※FT2232HL には シリアルポートが2つ用意されていますが, 2つ目の方が書き込み/UART 接続に使われています。
基板裏も同様, CTS と RTS を切り替えるショートジャンパーがあります。
こちらは ESP8266 や ESP32 のリセットに合わせて RTS がデフォルトになっています。
Arduino pro mini 等では CTS に切り替える必要がある場合があります。
これ一つで マルチな活躍が期待できます!
ドライバのインストール
シリアル変換IC は FT2232HL です. 何もしなくても使えることが多いですが, もしドライバが当たらない場合は, Windows, MAC, Linux のドライバは以下からダウンロードしてインストールしてください。
使い方
通常のシリアル変換アダプタとして使用する場合
は, 基板側の1列目 (6ピン) を使用してシリアル通信することが出来ます。 RST / CTS の切り替えは 基板裏側のショートパターンを変更してください。 ESP系で使用する場合は デフォルト設定の RTSです。 電圧は 3.3V で使用します。 Arduino UNOなどで使用する場合は 5V に切り替えて使用できます。
パソコンからは シリアルポートが2つ見えますが, 数字の多い方 (1番と2番 だったら 2番の方) が基板側のポートになります。 基板から遠い方のポートをシリアルポートとして使うことも出来ます。 その場合のピン配置は 下のピンアサインの章を確認してください。
ESP32 等のデバッグアダプタとして使用する場合
VS Code 等を使用して デバッグを行うことが出来ます。 詳しくはこちらの記事を御覧ください
※現在執筆中
ピンアサイン
ESP32 をデバッグする際には, 沢山の信号線をESP32に結線する必要があります。 ここで, ESP32を使用した Arduino互換基板の UniversalESP32duino を使うと以下のように接続するだけで 簡単にデバッグをすることが出来ます。
コネクタに出ているピンアサインはこの様になっています。
コネクタ番号 | コネクタ信号名 | FT2232HL | 通常モード | 対ESP32 |
1 | GND | GND | ||
3 | RTS (or CTS) | 40:BDBUS2 41:BDBUS3 |
chB RTS# chB CTS# |
nodemcu |
5 | VCC (3.3/5) | VCC | ||
7 | TXD | 38:BDBUS0 | chB TXD | RXD 0 |
9 | RXD | 39:BDBUS1 | chB RXD | TXD 0 |
11 | DTR | 43:BDBUS4 | chB DTR# | noemcu |
2 | EN | 28:ACBUS2 | chA ** | EN |
4 | TMS | 19:ADBUS3 | chA CTS# | GPIO 14 |
6 | TDI | 17:ADBUS1 | chA RXD | GPIO 12 |
8 | TDO | 18:ADBUS2 | chA RTS# | GPIO 15 |
10 | TCK | 16:ADBUS0 | chA TXD | GPIO 13 |
12 | NC |
レイアウトと部品表
レイアウトと部品表はこちらです。
USB Type-C バージョンと USB Micro B バージョンがあります。
R8, R9 は Type-C バージョンだけに存在します。
部品番号 | 名前 | コメント | 注文番号 |
BOARD | 本基板 | ハイパワーUSBシリアル基板 | |
IC1 | FT2232HL | FTDI USB Serial IC | |
IC2 | 3.3V 1117 | レギュレーター | |
C1 | 100uF | セラミックコンデンサ | |
C2, C4, C5, C6, C7, C10, C11, C13 |
0.1uF | セラミックコンデンサ | |
C3 | 10uF | セラミックコンデンサ | |
C8, C9, C12 | 4.7uF | セラミックコンデンサ | |
C14, C15 | 27pF | セラミックコンデンサ | |
R1, R5, R6, R7, | 10KΩ | チップ抵抗 | |
R2 | 12KΩ 1% | チップ抵抗 | |
R3, R4 | 330Ω | チップ抵抗 | |
R8, R9 | 5.1KΩ | チップ抵抗 ※microB は無し | |
L1, L2 | 1KΩ | チップインダクタ | |
LED1, LED2 | 赤・緑 LED | チップLED | |
Q1 | 12.000MHz | 水晶発振子 | |
USB | USB Micro Type B | レセプタクル | |
JP1 | 2列 x 6 ピンソケット | L字 | |
JP2 | 1列 x 3 ピンヘッダ | 細くないほうが良い | |
USB-C | 16Pin USB-C | USB-Cコネクタ ※どちらか | |
USB-MicroB | USB MicroB | USB MicroB コネクタ ※どちらか | |
ジャンパーピン | 電圧切り替えに |
回路図
回路図はこちら