ESP32 WROOM-32E (16MB Flash) 搭載の Arduino互換ブレークアウトボード Universal ESP32duino を作りました。 JTAGデバッグ用のピンも出ています! Universalno 同様 これ一枚に部品も実装することが出来, 手軽にプロトタイプを作成することが出来ます!
説明!
設計思想は Universalno と同じで, 最小の部品構成で安く手軽に使えるブレークアウトボードです。
ESP32 は Wi-Fi や Bluetooth が使え, 2つのコアを搭載し 非常にパワフルに使うことが出来るため, メモリ容量が足りなくなりがちです。 そのため, この Universal ESP32duino では 16MB の Flash を搭載しました! FW OTA のために メモリを二重化したり, メモリをSDカードのようにファイルシステムとして使っても十分な余裕があります!
ESP32 モジュールは 電波改善番の WROOM-32E を搭載!
さらに モジュール全ピン 引き出し済みです!
また, ESP32 は豊富なペリフェラルとメモリ容量で かなり複雑なプログラムをすることも出来るのですが, 意図せぬ不具合が発生した時に 切り分けを行うのが難しく, printf を随所に仕掛けるなどして地道にデバッグを行う必要がありました。
この Universal ESP32duino では, Ghz2000製 ハイパワーUSBシリアル デバッガー を使えば, 動作中のマイコンのメモリを見たり, プログラム上にブレークポイントを仕掛けて, プログラムを止めたり, 1行ごと実行することができます!
VS Code でESP32 をデバッグしている様子。 loop() の if文の上 11行目でブレークポイントを仕掛け, 1行づつステップ実行をしている。
これにより, 今まで コンパイルして実行, printf デバッグを確認, プログラム修正, コンパイルして実行 と 非常に時間と手間がかかっていた作業が, 一気に効率化することが出来ます !
また, Ghz2000 のハイパワーUSBシリアルデバッガを使用すると 差し込むだけですぐにデバッグを始めることができます!
書き込み・デバッグ の仕方
通常のシリアル変換アダプタを使用する場合
基板側の1列目 (6ピン) を使用してシリアルで書き込みすることが出来ます。
ハイパワーUSBシリアルデバッガ を使用する場合
通常の書き込み機として使用する場合は, 2つ見えるシリアルポートの 数字の大きい方を指定して書き込みや, シリアルモニター を使います。
また VS Code 等を使用して デバッグを行うことが出来ます。 詳しくはこちらの記事を御覧ください
※現在執筆中
ピンアサイン
WROOM-32D のモジュールのピンは全ピン 引き出し済み! ピンアサインは以下の図のようになっています。 また, それぞれの主な機能は以下の表のとおりです。
GPIO | Pad Name | Function2 | Function 4 | Function 5 | Function 6 | Reset | RTC/ Analog |
|
0 | GPIO0 | CLK_OUT1 | – | – | EMAC_TX_CLK | Pullup | Y | |
1 | U0TXD | CLK_OUT3 | – | – | EMAC_RXD2 | Pullup | ||
2 | GPIO2 | HSPIWP | HS2_DATA0 | SD_DATA0 | – | Pulldown | Y | |
3 | U0RXD | CLK_OUT2 | – | – | – | Pullup | ||
4 | GPIO4 | HSPIHD | HS2_DATA1 | SD_DATA1 | EMAC_TX_ER | Pulldown | Y | |
5 | GPIO5 | VSPICS0 | HS1_DATA6 | – | EMAC_RX_CLK | Pullup | ||
6 | SD_CLK | SPICLK | HS1_CLK | U1CTS | – | Pullup | ||
7 | SD_DATA_0 | SPIQ | HS1_DATA0 | U2RTS | – | Pullup | ||
8 | SD_DATA_1 | SPID | HS1_DATA1 | U2CTS | – | Pullup | ||
9 | SD_DATA_2 | SPIHD | HS1_DATA2 | U1RXD | – | Pullup | ||
10 | SD_DATA_3 | SPIWP | HS1_DATA3 | U1TXD | – | Pullup | ||
11 | SD_CMD | SPICS0 | HS1_CMD | U1RTS | – | Pullup | ||
12 | MTDI | HSPIQ | HS2_DATA2 | SD_DATA2 | EMAC_TXD3 | Pulldown | Y | |
13 | MTCK | HSPID | HS2_DATA3 | SD_DATA3 | EMAC_RX_ER | Input | Y | |
14 | MTMS | HSPICLK | HS2_CLK | SD_CLK | EMAC_TXD2 | Input | Y | |
15 | MTDO | HSPICS0 | HS2_CMD | SD_CMD | EMAC_RXD3 | Pullup | Y | |
16 | GPIO16 | – | HS1_DATA4 | U2RXD | EMAC_CLK_OUT | Input | ||
17 | GPIO17 | – | HS1_DATA5 | U2TXD | EMAC_CLK_180 | Input | ||
18 | GPIO18 | VSPICLK | HS1_DATA7 | – | – | Input | ||
19 | GPIO19 | VSPIQ | U0CTS | – | EMAC_TXD0 | Input | ||
21 | GPIO21 | VSPIHD | – | – | EMAC_TX_EN | Input | ||
22 | GPIO22 | VSPIWP | U0RTS | – | EMAC_TXD1 | Input | ||
23 | GPIO23 | VSPID | HS1_STROBE | – | – | Input | ||
25 | GPIO25 | – | – | – | EMAC_RXD0 | Disable | Y | |
26 | GPIO26 | – | – | – | EMAC_RXD1 | Disable | Y | |
27 | GPIO27 | – | – | – | EMAC_RX_DV | Input | Y | |
32 | 32K_XP | – | – | – | – | Disable | Y | |
33 | 32K_XN | – | – | – | – | Disable | Y | |
34 | VDET_1 | – | – | – | – | Disable | Y | Input Only |
35 | VDET_2 | – | – | – | – | Disable | Y | Input Only |
36 | SENSOR_VP | – | – | – | – | Disable | Y | Input Only |
37 | SENSOR_CAPP | – | – | – | – | Disable | Y | Input Only |
38 | SENSOR_CAPN | – | – | – | – | Disable | Y | Input Only |
39 | SENSOR_VN | – | – | – | – | Disable | Y | Input Only |
レイアウトと部品表
レイアウトと部品表はこちらです。
USB Micro-B の端子は電源供給用です。 書き込み等はUSBシリアル変換を使用してください。
部品番号 | 名前 | コメント | 注文番号 |
BOARD | 本基板 | ハイパワーUSBシリアル基板 | |
ESP32 | WROOM-32E | 16MB 版 | |
IC1 | 3.3V 1117 | レギュレーター | |
C3, C4 | 100uF | セラミックコンデンサ | |
C1, C2 | 0.1uF | セラミックコンデンサ | |
C5, C6 | クリスタル用 コンデンサ ※必要に応じて | ||
Q1 | 32.768kHz | 時計用クリスタル ※必要に応じて | |
SW1, SW2 | OmronSW | スイッチ | |
R1, R2, R3, R4, | 10KΩ | チップ抵抗 | |
T1, T2 | 2N7000 | n-ch FET | |
Socket 1 | 1 x 8 | ピンソケット | |
Socket 2, 4 | 1 x 10 | ピンソケット | |
Socket 3 | 1 x 6 | ピンソケット | |
PinHeader | 2 x 6 | ピンヘッダ | |
USB | USB Micro Type B | レセプタクル | |
USB-MicroB | USB MicroB | USB MicroB コネクタ ※電源用 |
回路図
回路図はこちら