ESP32: распиновка DevKit V1, характеристики и особенности выводов
ESP32 — это не Arduino, а другая платформа, но программируют её в той же среде и почти теми же командами. Берут её ради Wi-Fi и Bluetooth: они встроены в чип, а не добавляются модулем.
По мощности разница огромная: два ядра на 240 мегагерц против одного на 16, и полмегабайта оперативной памяти против двух килобайт. Плата при этом стоит дешевле, чем Arduino UNO.
Расплата — напряжение логики. У ESP32 оно 3,3 вольта, и пятивольтовые модули напрямую подключать нельзя: вывод выгорит. Это главное, на чём спотыкаются переходящие с Arduino.
Распиновка
Все выводы списком
| Вывод | Назначение |
|---|---|
| GPIO23SPI MOSI | Линия данных «от платы» на шине SPI. |
| GPIO22I2C SCL | Тактовая линия шины I2C — по умолчанию именно она. |
| GPIO1UART TX | Передача по последовательному порту. Занята при прошивке — вешать на неё ничего нельзя. |
| GPIO3UART RX | Приём по последовательному порту, тоже занят при прошивке. |
| GPIO21I2C SDA | Линия данных шины I2C по умолчанию. |
| GPIO19SPI MISO | Линия данных «к плате» на шине SPI. |
| GPIO18SPI SCK | Тактовый сигнал SPI. |
| GPIO5SPI SS | Выбор устройства на шине SPI. При загрузке коротко выдаёт импульс — реле на него вешать не стоит. |
| GPIO17UART2 TX | Второй последовательный порт, свободен для ваших модулей. |
| GPIO16UART2 RX | Второй последовательный порт. |
| GPIO4ADC2 · touch | Обычный вывод, умеет и АЦП, и ёмкостное касание. |
| GPIO2светодиод · загрузка | К нему припаян встроенный светодиод. Участвует в выборе режима загрузки. |
| GPIO15загрузка | Участвует в выборе режима загрузки: если притянут к земле, плата стартует молча. |
| GND | Земля. |
| 3V3 | Выход стабилизатора. Отсюда питают датчики, но ток ограничен примерно 500 мА. |
| EN | Сброс. Замыкание на землю перезапускает плату. |
| GPIO36только вход · ADC1 | Только вход. Цифровым выводом быть не умеет и подтяжки не имеет. |
| GPIO39только вход · ADC1 | Только вход, как и GPIO36. |
| GPIO34только вход · ADC1 | Только вход. Хороший выбор для аналогового датчика: этот АЦП работает даже при включённом Wi-Fi. |
| GPIO35только вход · ADC1 | Только вход, АЦП первого блока. |
| GPIO32ADC1 · touch | Полноценный вывод с АЦП первого блока и сенсором касания. |
| GPIO33ADC1 · touch | Полноценный вывод с АЦП первого блока. |
| GPIO25ЦАП · ADC2 | Умеет выдавать настоящее аналоговое напряжение — на плате всего два таких вывода. |
| GPIO26ЦАП · ADC2 | Второй вывод с настоящим цифро-аналоговым преобразователем. |
| GPIO27ADC2 · touch | Обычный вывод с АЦП второго блока и сенсором касания. |
| GPIO14ADC2 · touch | Обычный вывод. При загрузке коротко выдаёт импульс. |
| GPIO12загрузка | Участвует в выборе напряжения флеш-памяти: если при старте притянут к питанию, плата не загрузится. |
| GPIO13ADC2 · touch | Обычный вывод. |
| GND | Земля. |
| VIN | Вход внешнего питания, 5 В. Отсюда же питается плата, когда воткнут USB. |
Характеристики
- Микроконтроллер
- ESP32-WROOM-32
- Ядра
- 2Xtensa LX6
- Тактовая частота
- до 240 МГц
- Напряжение логики
- 3,3 Впятивольтовые модули напрямую нельзя
- Оперативная память
- 520 КБ
- Флеш-память
- 4 МБу большинства плат
- Беспроводная связь
- Wi-Fi 802.11 b/g/n, Bluetooth 4.2
- Выводов на плате
- 30у версии DevKit V1
- АЦП
- 12 разрядов0–4095, но шкала нелинейная
- ЦАП
- 2 канала8 разрядов, GPIO25 и GPIO26
- ШИМ
- на любом выводеделается программно, до 16 каналов
- Ток с одного вывода
- 12 мАпредельный 40 мА
- Питание
- 5 В на VIN или USB
Чем отличается от соседей
Arduino UNO
Медленнее в пятнадцать раз и без всякой сети, зато пятивольтовая: любой модуль подключается напрямую, без согласования уровней. Для первых шагов проще.
ESP8266
Предшественник ESP32: одно ядро, только Wi-Fi, один аналоговый вход. Дешевле, и для «включить лампочку по вайфаю» этого хватает.
ESP32-S3
Более новая версия: те же два ядра, но добавлены ускорители для нейросетей и нормальный USB прямо в чипе. Берут под камеры и распознавание.
На чём попадаются
Аналоговый вход перестаёт работать при включении Wi-Fi
У ESP32 два блока АЦП, и второй физически используется радиомодулем. Выводы, помеченные ADC2, при активном Wi-Fi просто возвращают мусор. Лечится переносом датчика на любой вывод из первого блока: GPIO32–GPIO39.
Выводы 6–11 не работают
Их нет на большинстве плат не случайно: к ним подключена флеш-память самого чипа. Если добраться до них и что-то подключить, плата перестанет загружаться.
Плата не прошивается без нажатия кнопки
На дешёвых платах не хватает конденсатора в цепи автосброса. Приходится держать кнопку BOOT в момент, когда среда пишет «Connecting…». Это не брак, а экономия производителя.
Пятивольтовый датчик сжёг вывод
Логика ESP32 рассчитана на 3,3 вольта, и вход пятивольтовой не терпит. Датчик, работавший с Arduino, здесь требует делителя напряжения или преобразователя уровней.
GPIO34–39 не тянутся вверх
У этих выводов физически нет подтягивающих резисторов, и они умеют только читать. Кнопку на них повесить можно, но резистор придётся ставить свой.
Что к ней подключают
Схемы подключения, библиотеки и рабочие скетчи для датчиков, дисплеев и драйверов — в разделе компонентов. Каждый скетч проверен компиляцией именно под эту плату.