Распиновка ESP32-S3 DevKitC: Детальное руководство по GPIO.

Микроконтроллер ESP32-S3 от Espressif Systems представляет собой мощную двухъядерную систему-на-кристалле (SoC), оснащенную Wi-Fi 2.4 ГГц, Bluetooth 5 (LE) и расширенными возможностями для искусственного интеллекта (AI) и интернета вещей (IoT). Для упрощения прототипирования и разработки на базе этого чипа была создана отладочная плата ESP32-S3 DevKitC, которая быстро завоевала популярность среди инженеров и энтузиастов.

Микроконтроллер ESP32-S3 от Espressif Systems

Данная плата содержит 45 выводов, и их расположение (распиновка) существенно отличается от предыдущих поколений плат на базе чипа ESP-WROOM-32. Некорректное использование выводов может привести к сбоям в работе устройства или даже к его повреждению.

Цель данной статьи — предоставить исчерпывающее техническое руководство по распиновке платы ESP32-S3 DevKitC.

ESP32-S3 DevKitC

Периферийные устройства ESP32-S3

Чип ESP32-S3 интегрирует в себя богатый набор периферийных устройств, доступных через его GPIO:

  • 20 каналов аналого-цифрового преобразователя (АЦП) с разрешением 12 бит.
  • 4 интерфейса SPI (два из которых, как правило, зарезервированы для внутренних нужд).
  • 3 интерфейса UART.
  • 2 интерфейса I2C.
  • 8 каналов ШИМ-контроллера (LEDC).
  • 2 интерфейса I2S для работы с аудио.
  • 14 GPIO с функцией емкостных сенсоров.

Ключевой особенностью архитектуры ESP32 является мультиплексор IO MUX, который позволяет гибко переназначать большинство периферийных функций на различные GPIO. Однако существуют выводы с жестко закрепленными или рекомендованными по умолчанию функциями, которые мы подробно разберем далее.

Распиновка платы ESP32-S3 DevKitC-1.

На изображении ниже представлена схема расположения выводов для одной из самых распространенных версий платы — ESP32-S3-DevKitC-1.

Распиновка платы ESP32-S3 DevKitC-1.

Важное примечание: Существует несколько модификаций платы DevKitC (например, с разным объемом Flash-памяти и PSRAM). Их распиновка может незначительно отличаться. Перед подключением периферии всегда сверяйтесь со схемой и маркировкой конкретно вашей платы. Для получения наиболее точной информации рекомендуется обратиться к официальной документации Espressif.

Зарезервированные выводы: SPI Flash и PSRAM.

Выводы GPIO с 26 по 32 внутренне подключены к интегрированным микросхемам SPI Flash-памяти и (если имеется) псевдостатической оперативной памяти (PSRAM). Эти выводы критически важны для загрузки и выполнения программного кода. Их использование для других целей категорически не рекомендуется, так как это приведет к полному отказу системы.

На большинстве плат DevKitC эти выводы не выведены на контактные площадки, однако если на вашей модификации платы они доступны, избегайте их использования:

  • GPIO 26 (Flash/PSRAM SPICS1)
  • GPIO 27 (Flash/PSRAM SPIHD)
  • GPIO 28 (Flash/PSRAM SPIWP)
  • GPIO 29 (Flash/PSRAM SPICS0)
  • GPIO 30 (Flash/PSRAM SPICLK)
  • GPIO 31 (Flash/PSRAM SPIQ)
  • GPIO 32 (Flash/PSRAM SPID)

Емкостные сенсорные входы (Capacitive Touch).

ESP32-S3 оснащен 14 внутренними емкостными датчиками, которые могут обнаруживать изменения электрической емкости. Это позволяет регистрировать прикосновения пальца или приближение объектов, обладающих электрическим зарядом. Данная функция идеально подходит для создания сенсорных кнопок и слайдеров, заменяя механические аналоги. Кроме того, эти выводы могут быть использованы для пробуждения микроконтроллера из режима глубокого сна (Deep Sleep).

К сенсорным входам относятся следующие GPIO:

  • T1 (GPIO 1)
  • T2 (GPIO 2)
  • T3 (GPIO 3)
  • T4 (GPIO 4)
  • T5 (GPIO 5)
  • T6 (GPIO 6)
  • T7 (GPIO 7)
  • T8 (GPIO 8)
  • T9 (GPIO 9)
  • T10 (GPIO 10)
  • T11 (GPIO 11)
  • T12 (GPIO 12)
  • T13 (GPIO 13)
  • T14 (GPIO 14)

Аналого-цифровой преобразователь (АЦП)

ESP32-S3 содержит два модуля АЦП (ADC1 и ADC2) с общим числом каналов 20 и разрешением 12 бит. Это позволяет преобразовывать аналоговое напряжение в цифровое значение в диапазоне от 0 до 4095 (где 0 соответствует 0 В, а 4095 — напряжению питания, обычно 3.3 В). В коде можно программно настраивать разрешение и диапазон измерения (аттенюацию) для каждого канала.

Доступные каналы АЦП:

  • ADC1_CH0 (GPIO 1)
  • ADC1_CH1 (GPIO 2)
  • ADC1_CH2 (GPIO 3)
  • ADC1_CH3 (GPIO 4)
  • ADC1_CH4 (GPIO 5)
  • ADC1_CH5 (GPIO 6)
  • ADC1_CH6 (GPIO 7)
  • ADC1_CH7 (GPIO 8)
  • ADC1_CH8 (GPIO 9)
  • ADC1_CH9 (GPIO 10)
  • ADC2_CH0 (GPIO 11)
  • ADC2_CH1 (GPIO 12)
  • ... (и так далее до)
  • ADC2_CH9 (GPIO 20)

Техническое примечание: Модуль ADC2 используется совместно с Wi-Fi. При активном Wi-Fi использование выводов, относящихся к ADC2, может приводить к неточным или нестабильным измерениям. Для прецизионных аналоговых измерений рекомендуется использовать каналы ADC1.

RTC GPIO.

Это специальные выводы, подключенные к подсистеме реального времени (RTC). Они сохраняют свое состояние и могут функционировать даже когда основная часть процессора находится в режиме глубокого сна (Deep Sleep). RTC GPIO могут быть сконфигурированы для пробуждения системы по внешнему событию (например, нажатию кнопки), что является ключевым для создания устройств с ультранизким энергопотреблением.

Практически все GPIO от 0 до 21 могут быть использованы как RTC GPIO.

Широтно-импульсная модуляция (ШИМ / PWM).

Контроллер ESP32-S3, именуемый LEDC (LED Controller), имеет 8 независимых каналов для генерации ШИМ-сигнала. Любой вывод, который может быть настроен как выход, может использоваться для ШИМ. Эта функция широко применяется для управления яркостью светодиодов, скоростью вращения двигателей и формирования аналоговых сигналов.

Количество каналов: ESP32 имеет 16 независимых каналов (с номерами от 0 до 15).

Для настройки ШИМ в коде необходимо задать следующие параметры:

  • Частота сигнала
  • Коэффициент заполнения (Duty Cycle)
  • Канал ШИМ-контроллера
  • GPIO, на который будет выводиться сигнал


Интерфейс I2C.

Для связи с периферийными устройствами по протоколу I2C (например, с датчиками, дисплеями, микросхемами памяти) в среде Arduino IDE по умолчанию используются следующие выводы:

  • GPIO 8 (SDA) - Линия данных
  • GPIO 9 (SCL) - Линия тактирования

Благодаря мультиплексору, вы можете программно переназначить I2C на любые другие подходящие GPIO, что обеспечивает гибкость при проектировании печатных плат.

Интерфейс SPI.

ESP32-S3 интегрирует 4 SPI-периферии: SPI0, SPI1, SPI2 (HSPI) и SPI3 (VSPI).

  • SPI0 и SPI1 зарезервированы для внутренней связи с Flash-памятью и не должны использоваться.
  • SPI2 (HSPI) и SPI3 (VSPI) доступны для подключения внешних устройств, таких как дисплеи, SD-карты или другие микроконтроллеры.

Ниже приведены стандартные назначения выводов для HSPI и VSPI, однако их также можно переназначить:

Интерфейс MOSI MISO CLK CS
HSPI (SPI2) GPIO 11 GPIO 13 GPIO 12 GPIO 10
VSPI (SPI3) GPIO 35 GPIO 37 GPIO 36 GPIO 39

Прерывания (Interrupts).

Все GPIO могут быть сконфигурированы для генерации аппаратных прерываний по изменению уровня сигнала (фронт, спад или оба).


Последовательные порты (UART).

Последовательные порты (UART).

ESP32-S3 поддерживает до трех интерфейсов UART (Universal Asynchronous Receiver-Transmitter) для последовательной асинхронной связи.

  • UART0: Используется по умолчанию для загрузки прошивки и вывода отладочной информации через встроенный USB-to-Serial преобразователь. Его выводы не могут быть изменены.
  • UART1, UART2: Могут быть назначены на любые свободные GPIO.

Стандартная конфигурация:

Порт TX RX Примечания
UART0 GPIO 43 GPIO 44 Жестко привязан к USB-Serial, не изменяется.
UART1 GPIO 17 GPIO 18 Может быть переназначен.
UART2 Может быть назначен на любые свободные GPIO.

Конфигурационные выводы (Strapping Pins).

ESP32-S3 DevKitC Конфигурационные выводы (Strapping Pins).

Эти выводы считываются чипом во время сброса или включения питания для определения режима загрузки.

  • GPIO 0
  • GPIO 3
  • GPIO 45
  • GPIO 46

Комбинация уровней на этих выводах определяет, будет ли ESP32-S3 загружаться в режиме прошивки (flashing mode) или в режиме исполнения программы из Flash-памяти. На платах DevKitC с USB-портом управление этими выводами осуществляется автоматически при прошивке из среды разработки. Однако при проектировании собственных устройств следует избегать подключения к этим GPIO компонентов, которые могут повлиять на их состояние при старте (например, подтягивающих резисторов, кнопок).

Вывод EN (Enable / RST).

Вывод EN (Enable), также известный как RST (Reset), управляет внутренним регулятором напряжения 3.3 В. Он подтянут к высокому уровню. При замыкании этого вывода на землю (GND) регулятор отключается, что вызывает аппаратный сброс микроконтроллера. Этот вывод удобно подключить к кнопке для ручной перезагрузки устройства.

ESP32-S3 DevKitC — это чрезвычайно гибкая и мощная платформа для разработки.

Заключение.

ESP32-S3 DevKitC — это чрезвычайно гибкая и мощная платформа для разработки. Однако эта гибкость требует от инженера глубокого понимания архитектуры выводов микроконтроллера. Ключ к успешной разработке — это осознанное использование GPIO с учетом их специальных функций, таких как АЦП, сенсорные входы, и ограничений, связанных с зарезервированными (SPI Flash) и конфигурационными (strapping) выводами.

Данное руководство служит надежным справочным материалом для проектирования схем и написания кода. Для решения специфических задач и получения самой актуальной информации всегда обращайтесь к официальной технической документации от Espressif, так как она регулярно обновляется с выходом новых версий программного фреймворка ESP-IDF и аппаратных ревизий плат. Грамотное использование распиновки позволит вам в полной мере раскрыть потенциал ESP32-S3 в ваших проектах.

Понравился статья Распиновка ESP32-S3 DevKitC: Детальное руководство по GPIO для разработчиков? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на VK Видео, вступить в группу Вконтакте.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

ESP32-S3-WROOM datasheet ESP32-S3-WROOM datasheet.pdf1235 Kb 149 Скачать
ESP32-S3 datasheet ESP32-S3 datasheet.pdf1058 Kb 147 Скачать
Изображение модуль WROOM Изображение модуль WROOM.pdf259 Kb 123 Скачать

Комментарии

Ваше Имя*


Разработка проектов
EasyHMI
Умный Дом