Справочник

Распиновка ESP32 DevKit на 30 выводов, характеристики, выводы обвязки и частые проблемы.

Характеристики

МодульESP-WROOM-32: ESP32, 4 МБ флеш, кварц, антенна
Процессор2 ядра Xtensa LX6, до 240 МГц
Память520 КБ SRAM, 4 МБ флеш
Wi-Fi802.11 b/g/n, только 2,4 ГГц
Bluetooth4.2: классический (SPP, A2DP) и BLE
GPIO на гребёнке25, из них 4 — только вход
АЦП12 бит, 15 каналов на гребёнке
ЦАП2 канала, 8 бит (GPIO25, GPIO26)
Сенсорные входы9 (Touch0, Touch2–9)
Интерфейсы3 × UART, 2 × I2C, 2 × SPI, 2 × I2S, ШИМ на любом выходе
USBType-C, преобразователь CH340C
Питание5 В через USB или вывод VIN; логика 3,3 В
Где купитьESP32 DevKit Type-C CH340 — в магазине duino.ru
ESP-WROOM-32 2 ядра · 240 МГц Wi-Fi + Bluetooth CH340C PWR D2 EN BOOT USB-C EN GPIO36 VP GPIO39 VN GPIO34 GPIO35 GPIO32 GPIO33 GPIO25 GPIO26 GPIO27 GPIO14 GPIO12 GPIO13 GND VIN GPIO23 GPIO22 GPIO1 TX0 GPIO3 RX0 GPIO21 GPIO19 GPIO18 GPIO5 GPIO17 GPIO16 GPIO4 GPIO2 GPIO15 GND 3V3
вход/выходтолько входобвязкапитание

Подписи на плате (D23, D22…) совпадают с номером GPIO, и в Arduino IDE пишется тот же номер: pinMode(23, OUTPUT) — это GPIO23.

Распиновка

ВыводТипФункцииПримечание
Ряд с EN — от антенны к USB
ENВход сбросаКнопка ENLOW — сброс, HIGH — работа
GPIO36 (VP)Только входАЦП ADC1_CH0Нет внутренней подтяжки
GPIO39 (VN)Только входАЦП ADC1_CH3Нет внутренней подтяжки
GPIO34Только входАЦП ADC1_CH6Нет внутренней подтяжки
GPIO35Только входАЦП ADC1_CH7Нет внутренней подтяжки
GPIO32Вход/выходАЦП ADC1_CH4, Touch9
GPIO33Вход/выходАЦП ADC1_CH5, Touch8
GPIO25Вход/выходЦАП DAC1, АЦП ADC2_CH8
GPIO26Вход/выходЦАП DAC2, АЦП ADC2_CH9
GPIO27Вход/выходАЦП ADC2_CH7, Touch7
GPIO14Вход/выходАЦП ADC2_CH6, Touch6, HSPI SCKПри загрузке кратковременно выдаёт ШИМ
GPIO12Вход/выходАЦП ADC2_CH5, Touch5, HSPI MISOОбвязка: при включении должен быть LOW
GPIO13Вход/выходАЦП ADC2_CH4, Touch4, HSPI MOSI
GNDЗемля
VINПитание, вход 5 ВВместо USB можно подать 5 В
Ряд с D23 — от антенны к USB
GPIO23Вход/выходVSPI MOSI
GPIO22Вход/выходI2C SCL по умолчанию
GPIO1 (TX0)Вход/выходUART0 TX (Serial)Подключён к CH340, лучше не занимать
GPIO3 (RX0)Вход/выходUART0 RX (Serial)Подключён к CH340, лучше не занимать
GPIO21Вход/выходI2C SDA по умолчанию
GPIO19Вход/выходVSPI MISO
GPIO18Вход/выходVSPI SCK
GPIO5Вход/выходVSPI SSОбвязка: при включении HIGH; при загрузке выдаёт ШИМ
GPIO17Вход/выходUART2 TX
GPIO16Вход/выходUART2 RX
GPIO4Вход/выходАЦП ADC2_CH0, Touch0
GPIO2Вход/выходАЦП ADC2_CH2, Touch2Обвязка: при прошивке LOW или не подключён. Светодиод D2
GPIO15Вход/выходАЦП ADC2_CH3, Touch3, HSPI SSОбвязка: LOW отключает загрузочный лог
GNDЗемля
3V3Питание, выход 3,3 ВВнешним устройствам — не больше 100 мА

ШИМ можно вывести на любой вывод, работающий на выход. Выводы GPIO6–11 заняты флеш-памятью и на плату на 30 выводов не выведены.

Выводы обвязки (strapping pins)

В момент включения ESP32 читает уровни на пяти выводах и по ним выбирает режим работы. Если подключённая схема задаст неправильный уровень, плата не запустит программу или не прошьётся. После запуска это обычные GPIO.

ВыводЧто задаётКакой уровень нужен при включении
GPIO0Режим запускаHIGH — запуск программы (есть подтяжка), LOW — режим прошивки. Подключён к кнопке BOOT
GPIO2Режим прошивкиLOW или не подключён — иначе плата не войдёт в режим прошивки. На нём светодиод D2
GPIO12Напряжение флеш-памятиLOW. При HIGH флеш получит 1,8 В вместо 3,3 В, и плата не запустится. Не вешайте на него подтяжку к питанию
GPIO15Загрузочные сообщенияПри LOW плата не печатает служебный лог при включении. На работу не влияет
GPIO5Тайминг интерфейса SDIOHIGH (есть подтяжка). На обычную работу не влияет

Интерфейсы по умолчанию

ИнтерфейсВыводы
I2CSDA — GPIO21, SCL — GPIO22
SPI (VSPI)MOSI — GPIO23, MISO — GPIO19, SCK — GPIO18, SS — GPIO5
SPI (HSPI)MOSI — GPIO13, MISO — GPIO12, SCK — GPIO14, SS — GPIO15
UART0 (Serial)TX — GPIO1, RX — GPIO3 (занят USB)
UART2 (Serial2)TX — GPIO17, RX — GPIO16
ЦАПGPIO25, GPIO26
АЦП1 (работает с Wi-Fi)GPIO32–39

Почти любой интерфейс можно назначить на другие выводы, например Wire.begin(32, 33) — I2C на GPIO32 (SDA) и GPIO33 (SCL).

Питание

Плату питают от USB или подают 5 В на VIN. Вывод 3V3 — выход стабилизатора платы, который питает и саму ESP32: внешним устройствам с него — не больше 100 мА. Сервоприводы, светодиодные ленты, реле и датчики газа MQ питайте от отдельного источника 5 В. Все GPIO работают с логикой 3,3 В: подавать на них 5 В нельзя.

Частые проблемы

ПроблемаРешение
Компьютер не видит платуДругой кабель (нужен с передачей данных), драйвер CH340 в Windows, sudo apt remove brltty в Ubuntu
Висит Connecting....Зажать BOOT до начала загрузки. Отключить схему от GPIO0, 2, 12
Плата не запускается со схемой, а без неё работаетПроверьте выводы обвязки, особенно GPIO12 — при включении на нём должен быть LOW
analogRead() перестал работать после добавления Wi-FiПеренесите датчик на GPIO32–39 (АЦП1)
Кнопка на GPIO34–39 срабатывает самаУ этих выводов нет внутренней подтяжки — нужен внешний резистор 10 кОм
Ошибка ledcSetup was not declaredВ ядре 3.x используйте ledcAttach(pin, freq, bits) и ledcWrite(pin, duty)
Плата перезагружается при включении Wi-FiНе хватает тока: другой кабель или порт USB, конденсатор 100–470 мкФ между 3V3 и GND (100, 220 и 470 мкФ есть в наборе конденсаторов)
«Sketch too big»Инструменты → Partition Scheme → Huge APP (3MB No OTA)