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

Понимание распиновки ESP32
ESP32 — это мощный и гибкий микроконтроллер, широко используемый в IoT, автоматизации и умных устройствах. Её продвинутые возможности обеспечиваются высокомультиплексированной системой размещения, в которой многие функции используют одни и те же физические контакты. К ним относятся цифровые I/O, каналы АЦП, ёмкостные сенсорные датчики, шины связи, контакты RTC-домена и внутренние соединения для настройки SPI flash и загрузки. Поскольку многие функции имеют общие контакты, неправильная проводка может привести к неудачным загрузкам, шумным показаниям АЦП или отключению периферийных устройств.
Расположение контактов ESP32 DevKit

Платы ESP32 обычно выпускаются в версиях с 30 и 38 контактами, обе предоставляют одинаковые функции ядра, но с незначительными отличиями в доступных GPIO.
Группы пинов на платах разработчиков ESP32
| Группа | Описание |
|---|---|
| Пины питания | VIN (5 В), выход 3,3 В, GND |
| Контакты управления | EN (сброс), IO0 (загрузочный режим) |
| Контакты GPIO | Цифровой ввод/вывод с мультиплексированием |
| Аналоговые контакты | Каналы ADC1 и ADC2 |
| Контакты связи | SPI, I2C, UART, I2S |
| Контакты только для входа | GPIO34–GPIO39 |
| Зарезервированные для флэш-пинов | GPIO6–GPIO11 |
Общее расположение заголовков
Левый заголовок
• EN, GPIO36–39, GPIO34–35
• GPIO32–33, 25–27
• VIN, GND, 3.3V
Правый заголовок
• GPIO0–23
• Штифты для крепления (0, 2, 5, 12, 15)
Понимание физической планировки облегчает избегание ошибок и эффективное планирование проводки.
Обзор GPIO ESP32

GPIO ESP32 гибки благодаря внутренней матрице ввода-вывода, которая позволяет отображать периферийные устройства, такие как UART, SPI, I2C и PWM, практически в любом месте. GPIO поддерживают цифровой ввод/вывод с встроенными резисторами подтягивания вверх/вниз, прерываниями, триггерируемыми по краям, и надёжным переключением на высоких скоростях. Типичный непрерывный ток привода составляет 12–16 мА (пики до ~20–40 мА), поэтому для моторов или реле требуются внешние драйверы.
Выводы только для входа
Эти выводы не могут управлять выходом и идеально подходят для датчиков и аналоговых входов:
| Пин | Тип | Рекомендуемое использование |
|---|---|---|
| GPIO34 | Только ввод | ADC1 / датчики |
| GPIO35 | Только ввод | ADC1 |
| GPIO36 (вице-президент) | Только ввод | ADC1 / датчик Холла |
| GPIO39 (VN) | Только ввод | ADC1 |
Безопасные выводы ESP32 для использования и контакты для избегания

Не все выводы ESP32 ведут себя одинаково. Некоторые из них безопасны, другие влияют на режим загрузки или связаны с внутренней флеш-памятью.
Безопасные контакты (рекомендуется всем пользователям)
| GPIO | Примечания |
|---|---|
| 4, 13–19, 21–27, 32, 33 | Без удара при загрузке, идеально для большинства периферийных устройств |
Предупреждающие контакты (влияют на режим загрузки)
| GPIO | Функция загрузки | Избегайте во время загрузки |
|---|---|---|
| GPIO0 | Режим флэша/загрузки | Держите ВЫСОКИЙ (вход) во время обычной загрузки |
| GPIO2 | Загрузочное напряжение | Должно быть ВЫСОКО |
| GPIO5 | Опциональный режим загрузки | Избегайте вытягивания низко |
| GPIO12 | Режим напряжения вспышки | Нужно держаться НИЗКО |
| GPIO15 | Режим SPI | Нужно держаться НИЗКО |
Эти контакты безопасны для нормальной работы, но внешние компоненты не должны поднимать их до недопустимых логических уровней при сбросе. Их подробные роли в ботинках описаны в разделе 9.
Ограниченные контакты (не используйте)
| GPIO | Причина |
|---|---|
| GPIO6–11 | Подключён к флэш-памяти SPI |
Использование таких систем может зависнуть или вывести из жизни ESP32.
Контакты АЦП ESP32

ESP32 интегрирует два SAR-блока АЦП с разным боевым поведением:
• ADC1 — всегда доступен и рекомендуется для всех входов датчиков
• ADC2 — Общая с Wi-Fi подсистемой и становится недоступной при активном Wi-Fi
Это одно из ключевых ограничений ESP32, делающее ADC1 надёжным выбором для измерений в беспроводных приложениях.
| Подразделение ADC | Каналы | GPIO | Примечания |
|---|---|---|---|
| ADC1 | CH0–CH7 | GPIO32–39 | Лучший выбор для датчиков |
| ADC2 | CH0–CH9 | 0, 2, 4, 12–15, 25–27 | Недоступно во время Wi-Fi |
Диапазон напряжения и точность
АЦП поддерживают стандартный входной диапазон 0–1,1 В, который можно увеличить примерно до 3,3 В при ослаблении. Оба блока АЦП нелинейны и имеют преимущество от калибровки. Аналоговая производительность может зависеть от внутренней радиочастотной активности, поэтому прокладка сенсорных линий от антенны и добавление простых RC-фильтров значительно повышает стабильность. Для проектов с поддержкой Wi-Fi всегда размещайте аналоговые датчики на ADC1 для обеспечения непрерывной и безшумной работы.
ESP32 ЦАП, ШИМ и сенсорные контакты
ESP32 оснащён встроенными аналоговыми выходами и сенсорными датчиками, которые упрощают генерацию волн, затемнение, управление мотором и пользовательские интерфейсы.
Обзор ЦАП

Два 8-битных канала ЦАП выдают истинные аналоговые напряжения:
| DAC | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
Распространённые применения включают простое аудио, аналоговые сигналы, затухание светодиодов и смещённые напряжения. Выходной диапазон обычно составляет 0–3,3 В.
ШИМ (LEDC)

Модуль LEDC обеспечивает высокоразрешённый, гибкий ШИМ:
• 16 каналов
• База таймера до 40 МГц
• Разрешение до 20 бит
• Полностью ремаппируемые GPIO
Используется для затемнения светодиодов, управления мотором, сервоприводов, аудиотонов и общей модуляции. Любой GPIO может размещать PWM-выход через матрицу GPIO.
Контакты сенсорного датчика

10 ёмкостных сенсорных панелей ESP32 определяют близость пальцев и полезны для сенсорных кнопок, ползунков и триггеров пробуждения.
| Сенсорная панель | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
Эти датчики оснащены фильтрацией шума и хорошо работают при событиях с низким энергопотреблением.
Коммуникационные контакты ESP32
ESP32 включает богатый набор периферийных устройств связи, каждое из которых может быть передано на несколько выводов через гибкую матрицу GPIO. Это позволяет назначать интерфейсы, такие как I2C, SPI и UART, практически в любом месте, что даёт возможность настраивать компоновку плат и комбинации периферийных устройств.
I2C (стандартные и пользовательские контакты)

ESP32 оснащён двумя контроллерами I2C с полной гибкостью выбора контактов. Хотя большинство плат для разработки используют стандартные контакты, и SDA, и SCL можно переназначить практически на любой GPIO.
| Сигнал | Стандартный GPIO | Примечания |
|---|---|---|
| SDA | GPIO21 | Полностью восстанавливаемо |
| SCL | GPIO22 | Полностью восстанавливаемо |
Любые два цифровых GPIO могут выступать в роли SDA и SCL. Поддерживает как стандартный режим (100 кГц), так и быстрый (400 кГц) и быстрый режим плюс (1 МГц в зависимости от платы). Поддерживает внутренние подтягивания на некоторых платах, но для стабильной связи рекомендуются внешние резисторы 4,7 кОм. Эта гибкость делает ESP32 идеальным для систем, требующих нескольких датчиков или нестандартной прокладки контактов.
ESP32 включает несколько шин SPI, при этом HSPI и VSPI доступны для пользовательских устройств. Оба поддерживают переназначение через матрицу GPIO, но большинство плат и библиотек используют следующую стандартную конфигурацию VSPI, которая избегает конфликтов с внутренними флэш-соединениями:
Стандартное отображение VSPI
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• CS → GPIO5
VSPI обычно предпочитают для дисплеев, SD-карт и высокоскоростных периферийных устройств. Хотя контакты можно перенастроить, использование стандартных параметров обеспечивает максимальную совместимость и снижает проблемы с таймингом без повторения ограничений, уже рассмотренных в предыдущих разделах.
UART (Сериал)

ESP32 включает три контроллера UART с гибкой маршрутизацией, позволяющей любым выводам UART перемещаться практически на любой GPIO.
| UART | TX PIN | RX Pin | Основная цель |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | Прошивка, сообщения загрузки, последовательная логировка |
| UART1 | GPIO10 | GPIO9 | Доступно для пользовательских приложений |
| UART2 | GPIO17 | GPIO16 | Доступно для пользовательских приложений |
ESP32 Deep-Sleep и RTC контакты
ESP32 включает подсистему Ultra-Low-Power (ULP) и отдельный домен Real-Time Clock (RTC), которые остаются питаемыми даже при выключении основного процессора и периферийных устройств. Эта архитектура обеспечивает крайне низкое энергопотребление, часто в диапазоне микроамперов, что делает ESP32 подходящим для долгосрочных приложений на батарейках.
Глубокий сон позволяет чипу отключать основные ядра, большинство внутренних тактовых частот и Wi-Fi/Bluetooth-радиостанции, при этом отслеживая выбранные контакты и датчики через периферию RTC.

ESP32 может просыпаться из глубокого сна благодаря нескольким независимым триггерам. Каждый источник следы работает внутри RTC-домена, который предназначен для работы с минимальным энергопотреблением.
| Тип пробуждения | GPIO / Примечания |
|---|---|
| Внешний RTC GPIO | GPIO32, GPIO33, GPIO25, GPIO26, GPIO27 — поддержка edge или level wakeup |
| Ёмкостные сенсорные панели | T0–T9 — обнаруживает близость или прикосновение пальцев во время глубокого сна |
| Таймер Пробуждение | Таймер RTC может пробудить устройство после запрограммированного интервала |
| Сопроцессор ULP | (По желанию) Кастомный код низкого энергопотребления может запускаться для проверки датчиков перед пробуждением основного процессора |
Эти выводы принадлежат домену RTC и остаются активными даже при отключении CPU и обычных GPIO. Они поддерживают пробуждение с помощью подъёма/падения краёв или простого обнаружения уровней. Обычно используется для пробуждения при движении, магнитных переключателей и маломощных триггеров.
Функции загрузки, крепления и EN пинов ESP32

ESP32 использует несколько крепящих контактов, которые определяют ключевые конфигурации системы при сбросе или включении питания. Эти контакты снимаются только при загрузке и затем возвращаются к нормальной функции GPIO. Обеспечение того, чтобы они не достигли недопустимых уровней при сбросе, полезно для стабильного поведения при запуске.
Стол для крепления булавок
| Пин | Boot Role | Обязательное состояние при загрузке |
|---|---|---|
| GPIO0 | Выбирает загрузчик / режим флэша | LOW = переход в режим вспышки; HIGH = нормальный запуск |
| GPIO2 | Определяет внутренний уровень загрузочного напряжения | Нужно оставаться ВЫСОКИМ |
| GPIO5 | Конфигурация загрузки SPI | Нужно оставаться ВЫСОКИМ |
| GPIO12 | Выбирает напряжение вспышки (3,3 В / 1,8 В) | Для вспышки 3,3 В должна оставаться НИЗКОЙ |
| GPIO15 | Настройка режима связи SPI при загрузке | Нужно оставаться НИЗКИМ |
Этот раздел предоставляет авторитетный справочник по поведению при закреплении. Ранние разделы кратко описывают только практические эффекты; Используйте эту таблицу при назначении контактов на кастомных платах или интеграции кнопок и датчиков.
EN Pin (Включить / Сбросить)
Вывод EN (Enable) служит главным входом для сброса ESP32.
Поведение EN PIN:
• При вытягивании EN LOW чип сразу сбрасывается.
• Выпуск обратно в HIGH включает внутренние цепи и перезапускает загрузочную последовательность.
• На платах разработки (например, ESP32-DevKitC, NodeMCU-ESP32) EN привязан к интерфейсу USB-to-serial для автосброса во время прошивки.
Пины питания ESP32

ESP32 чувствителен к качеству питания, так как его Wi-Fi и Bluetooth-радиостанции поглощают короткие импульсы тока с большой амплитудой. Стабильная подача питания гарантирует надёжную загрузку, снижение сброса brownout и стабильную беспроводную работу.
Краткое описание значка силы
| Пин | Напряжение | Использование |
|---|---|---|
| VIN | Вход 5 В | Питает бортовый регулятор (обычно AMS1117 или ME6211) для генерации 3,3 В |
| 3V3 | Выход 3,3 В | Регулируемый выход от бортового LDO; используется для питания внешней низкотоковой логики и датчиков |
| GND | — | Электрический опорный и обратный путь для всех подсистем |
Рекомендуемые примеры выводов и проводки ESP32
Выбор правильных контактов на ESP32 необходим для стабильной работы, чистой маршрутизации сигнала и предотвращения конфликтов с загрузочным соединением или внутренними флэш-соединениями. Следующие рекомендации выделяют наиболее надёжные, безконфликтные контакты для общих функций.
Выбор значков
| Функция | Лучшие значки | Примечания |
|---|---|---|
| I2C | 21 (SDA), 22 (SCL) | Стандартная аппаратно-протестированная пара; Работает на большинстве плат. |
| SPI | 18 (SCK), 19 (MISO), 23 (MOSI), 5 (CS) | Эти контакты чётко соответствуют VSPI и избегают подключения к флэш-соединению. |
| UART | 16 (RX), 17 (Техас) | Выделенные выводы UART2, безопасные для загрузки и отладки. |
| PWM (LEDC) | 4, 16–19, 21–27, 32–33 | Диапазон с высокой гибкостью; ШИМ можно направить практически к любому GPIO. |
| ADC | 32–39 (ADC1) | Каналы ADC1 остаются доступны даже при активном Wi-Fi. |
Заключение
Освоение распиновки ESP32 устраняет догадки и предотвращает многие проблемы, которые возникают в реальных сборках — от шумных показаний АЦП до бесконечных загрузочных циклов. Понимая безопасные контакты, поведение крепления, целостность питания и маршрутизацию в глубоком сне, вы сможете проектировать цепи, которые останутся стабильными, предсказуемыми и готовыми к беспроводной связи. Используйте карты и инструкции выше как основу для беспроблемных проектов ESP32.
Часто задаваемые вопросы [FAQ]
Как настроить PlatformIO для Breakout Board Freenove ESP32-S3?
Используйте стандартные настройки модуля ESP32-S3. В вашем platformio.ini добавьте:
[env:esp32s3]
Платформа = Espressif32
Плата = esp32-s3-devkitc-1
Фреймворк = Arduino
Это совпадает с распинками Freenove, позволяя обычную компилировать и загружать через USB.
Сколько периферийных устройств ESP32 может запускать одновременно?
Благодаря матрице GPIO ESP32 может одновременно выполнять несколько функций I²C, SPI, UART, PWM и ADC, при условии, что вы избегаете ограниченных контактов и соблюдаете ограничения CPU и тайминга. Основные узкие места — это ADC2 при Wi-Fi и качестве источника питания, а не количество контактов.
Почему мой ESP32 перезагружается при подключении датчиков или модулей?
Неожиданные сбросы обычно происходят из-за падений напряжения, вызванных всплесками Wi-Fi, моторами или плохо регулируемыми источниками питания. Использование источника напряжения 1 А или выше 5 В, добавление конденсаторов 10–100 мкФ и изоляция шумных нагрузок предотвращает отключение напряжения.
Могу ли я использовать контакт ESP32 на 3.3 В для питания внешних модулей?
Да, но только для устройств с низким током (обычно менее 300–500 мА, в зависимости от встроенного LDO). Периферийные устройства с высокой потреблённостью, такие как моторы, сервоприводы и крупные светодиодные ленты, должны использовать отдельный блок питания, чтобы избежать сброса и перегрева.
Как выбрать лучшие выводы ESP32 при использовании нескольких периферийных устройств?
Отдавайте приоритет контактам без ременя, избегайте GPIO6–11, устанавливайте аналоговые датчики на ADC1 и используйте стандартные контакты VSPI/I²C/UART, когда это возможно. Это снижает конфликты и обеспечивает совместную работу всех периферийных устройств без проблем с переназначением.