Parts:DevBoard:ESP32-DevKitC-32D

提供: robot-jp wiki
ナビゲーションに移動検索に移動
メーカー 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

Espressif

秋月電子

販売店 日本 秋月電子通商 \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 ESP32-DevKitC-32D.jpg 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

ESP32-DEVKITC-32D inside.jpg

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あるから大丈夫。

戻る