Parts:DevBoard:ESP32-DevKitC-32D
メーカー Espressif Systems (Shanghai) Pte. Ltd. 商社 秋月電子通商 ボード名 ESP32-DevKitC-32D (ArduinoIDE設定有) CPU Espressif ESP32-WROOM-32D 240MHz FLASH 4MB 80MHz ※DevKitCは40MHz&DIOで使うのがオススメ SRAM 512kB Schematic Diagram esp32_devkitc_v4-sch.pdf (Espressif) Dimensional drawing 列間ピッチ25.4mm Document Specification:---
ESP32-DevKitC V4 Getting Started Guide (Espressif HP)AMS1117-3.3 (Reg drop1V)
技適Certificate ESP32-WROOM-32D MIC Certification Datasheet Module CPU ESP32-WROOM-32 販売店 日本 秋月電子通商 \1480 送料\600 Amazon ¥1280 送料\0
USA Digikey \1236 合計6000円以上で送料\0。合計10000円未満は消費税なし。 中国 Espressif 2022/3/11時点で、秋月では新規採用OK、Digikeyでは新規採用NG。
Pin Function
※NodeMCU-32Cとピンコンパチ ※「初期電圧」欄は全ピン未接続の時の開放電圧実測値。
※GPIOポート番号の表記は資料により GPIO**/P**/D** 等のように記載が統一されていないため、ここではP**とした。
割込 専用 機能
GPIO /ADC
I/O 使用
初期 電圧
Name PU /PD
pin ![]()
pin PU /PD
Name 初期 電圧
I/O 使用
GPIO /ADC
専用 機能
SPI I2C 割込 +3.3V out 3.33 3V3 1 38 GND 0.00 GND EN 3.33 EN 2 37 IO23 open P23 VSPID MOSI (入力) P36/A1-0 open VP 3 36 IO22 open P22 VSPIWP/U0RTS SCL (入力) P39/A1-3 open VN 4 35 *** TX 3.32 ×/× P1 U0TXD (入力) P34/A1-6 open IO34 5 34 *** RX 3.33 ×/× P3 U0RXD (入力) P35/A1-7 open IO35 6 33 IO21 open P21 VSPIHD SDA T9 XTAL_P P32/A1-4 -/〇 open IO32 7 32 GND 0.00 GND T8 XTAL_N P33/A1-5 -/〇 open IO33 8 31 IO19 open P19 VSPI Q/U0CTS MISO P25/A2-8/ DA1
-/〇 open IO25 9 30 IO18 open P18 VSPI CLK SCK P26/A2-9/ DA2
-/〇 open IO26 10 29 IO5 3.31 -/〇 P5 VSPI CS0 T7 P27/A2-7 open IO27 11 28 IO17 open -/〇 P17 U2TXD T6 HSPI CLK P14/A2-6 3.32 IO14 12 27 IO16 open -/× P16 U2RXD T5 HSPI Q /MTDI
/DATA2
P12/A2-5 -/〇 0.00 (PD)
IO12 PD 13 26 IO4 0.00 -/〇 P4/A2-0 HSPI HD/DATA1 T0 GND 0.00 GND GND 14 25 PU IO0 3.31 (PU)
-/〇 P0/A2-1 Boot T1 T4 HSPI D/DATA3 P13/A2-4 -/〇 0.00 IO13 15 24 NC IO2 0.00 (PD)
× (boot)
P2/A2-2 HSPI WP/DATA0 T2 SPI HD /U1RXD
P9 × (Flash)
3.31 D2 NC 16 23 PD*** IO15 3.31 (PU)
P15/A2-3 HSPI CS0/ CMD/MTDO
T3 SPI WP /U1TXD
P10 × (Flash)
3.31 D3 NC 17 22 NC D1 0.00 × (Flash)
GPIO8/D1 SPI D/U2CTS SPI CS0 /U1RTS
P11 × (Flash)
3.31 CMD NC 18 21 NC D0 3.30 × (Flash)
GPIO7/D0 SPI Q/U2RTS 5~?V in /4.7V out
4.84 5V 19 20 NC CLK 0.00 × (Flash)
P6 SPI CLK/U1CTS
注意事項
下記端子は使用方法が決まっているため特に考慮する。
起動に関する機能が決まっている端子 Pin No. 名称 特殊機能 やるべきこと 13 IO12/MTDI 起動時にLow (SPI-Flashの制約) Pull Down 23 IO15/MTDO 起動時にHighでboot中にError Log出力 Pull Down 24 IO2 起動時にLowでDownload ※PullUpするとDownload不可になる Open 25 IO0 起動時にLowでDownload、Highで通常boot Pull Up 29 IO5 DebugLogモード選択(通信のUp/Down Edge切り替え) 考慮しない
各機能で端子が決まっている端子 機能 Pin No. GPIO 名称 特殊機能 やるべきこと Reset 2 -- EN /Reset 基本的にはOpen。 ResetするとUART0にメッセージが出力される。
UART0 34 P3 RXD0 USB通信用 N.C. 35 P1 TXD0 USB通信用 内部Flash 20 P6 SPI-SCK/CLK SPI-Flash 使用禁止
manual p.9よりNote: * Pins SCK/CLK, SDO/SD0, SDI/SD1, SHD/SD2, SWP/SD3 and SCS/CMD,
namely, GPIO6 to GPIO11 are connected to the integrated SPI flash integrated
on ESP32-WROOM-32D and are not recommended for other uses.
21 P7 SPI-SD0/SDO 22 P8 SPI-SD1/SDI 16 P9 SPI-SD2/HD 17 P10 SPI-SD3/UP 18 P11 SPI-CMD I2C 33 P21 SDA (IO21) Data I/O I2Cを使う時はPull-Up ※最高速で通信するなら10kΩ×2p程度、ゆっくり通信で良ければCPU内蔵PullUpを使う
36 P22 SCL (IO22) CLK Out SPI 37 P23 SPI_MOSI (IO23) Data Master→Slave SPIを使う時には専用にする SPI 31 P19 SPI_MISO (IO19) Data Master←Slave SPI 30 P18 SPI_SCK (IO18) CLK Out HSPI 12 P14 HSPI CLK CLK SDカードとの高速通信用のため、高速通信を使わない場合には考慮しない。 ※高速通信するにはSD Associationへの入会が必要
23 P15 HSPI CS0 CMD 24 P2 HSPI WP DATA0 26 P4 HSPI HD DATA1 13 P12 HSPI Q DATA2 15 P13 HSPI D DATA3
構造の概要
ボードに載っているESP32自体が小さい開発ボードのようになっています。
ESP32にはFreeRTOSがプリインストールされており、その上でUser Programが動きます。
Hardware
Software
- freeRTOS with LwIP; TLS 1.2 with hardware acceleration
- Booter
- User Program
基本的な使い方
VSCodeでプログラムを作る場合でも、ArduinoIDEの機能を使うため、両方をインストールします。
Arduino IDEしか使わない場合にはVSCodeをインストールする必要はありません。
Arduino IDE
Visual Studio Code (VSCode)
Flashの全消去
パーテーションを変更する時はFlashを全消去します。
ubuntu
ESP-IDFをインストールして、esptool.pyが使えるようにします。
ArduinoIDE等のシリアルポートを使っているプログラムを全て終了させます。</ BR> USBポートが"/dev/ttyUSB0"の場合です。
> cd ~/git/arduino-esp32/tools/ > ./esptool.py --chip esp32 --p /dev/ttyUSB0 --baud 921600 erase_flash
起動モード
Table4: Strapping Pins
IO 0/2/5/12/13/15
内部電圧 : Voltage of Internal LDO (VDD_SDIO) Pin Default 3.3V 1.8V MTDI(GPIO12) Pull-down 0 1 起動モード : Booting Mode Pin Default 実行 : SPI Boot 書込 : Download Boot GPIO0 Pull-up 1 0 GPIO2 Pull-down Don’t-care 0 Enabling/Disabling Debugging Log Print over U0TXD During Booting Pin Default U0TXD Toggling U0TXD Silent MTDO(GPIO15) Pull-up 1 0 Enabling/Disabling Debugging Log Print over U0TXD During Booting Pin Default Falling-edge Input Falling-edge Output
Falling-edge Input Rising-edge Output
Rising-edge Input Falling-edge Output
Rising-edge Input Rising-edge Output
MTDO(GPIO15) Pull-up 0 0 1 1 GPIO5 Pull-up 0 1 0 1
使ってみた結果
- Flashとの通信部分がギリギリの設計になっているようで、80MHzだと電源の立ち上がり時間次第でRebootするので、40MHzが無難。
- 240MHzでも80MHzでも発熱量は大差ない。安定性も大差ない。消費電流はちょっとだけ違う。だったら240MHzを選ぶ。
- FreeRTOSのxTaskCreateを使うとRebootしやすい。何か工夫が必要なのだろう。
- xTaskCreateの代わりにLVGL8.3.3のlv_timerが使える。ただし timer ch1〜3辺りを使われてしまうので対応する必要がある。16chあるから大丈夫。