ESP32 シリアル通信のテスト
JH7UBC 2019.12.24
ESP32は、シリアル通信ポートを3個持っています。UART0,UART1,UART2です。
各ポートのピン割り当ては、次のとおりです。
UART0 | RXD0 | GPIO3 | |
TXD0 | GPIO1 | ||
UART1 | RXD1 | GPIO9 | デフォルトでは使用不可 |
TXD1 | GPIO10 | ||
UART2 | RXD2 | GPIO16 | |
TXD2 | GPIO17 |
UART1の使用法は、Qiitaのサイトをご覧ください。
Arduino IDEは、シリアルモニタを持っていますので、まずそれからテストします。
シリアルモニタで使用されるポートは、UART0です。
次のようなスケッチで、エコーバックテストをしました。
シリアルモニタから送信した文字が表示されます。
通信速度を上げてテストをしてみると、500000bpsまで通信できました。
UART0のRXD0(GPIO3)をPicoScopeで見てみると(500000bpsの時)
という感じです。アイドリング時は、HIGHレベルで、スタートでLOWに下がります。
次に、UART2を使ってパソコンと通信してみます。
接続回路図です。GPIO16(U2RXD)とGPIO17(U2TXD)とUSBシリアル変換モジュールFT234を回路図のように接続します。
パソコン側の通信ソフトは、定番のTeraTermで通信速度は115200bpsとします。
ブレッドボードです。
スケッチです。
TeraTermの画面です。キーボードから入力した文字がESP32に送られて、同じ文字が送り返されます。