Перейти к содержимому

Доброго здравия, уважаемые читатели!

В данной статье мы поговорим про микроконтроллер ESP32-S3, а также модули и некоторые платы на его основе. Разберемся, чем он отличается от классической линейки ESP32. В статье также приведено описание выводов модуля ESP32-S3-WROOM-1: какие контакты можно использовать, а какие осторожно, и для чего.

Долгое время я работал исключительно с ESP32 классической серии, по простой причине, что она мне очень хорошо знакома и более-менее понятна. Но время не стоит на месте, китайские производители на различных платах используют более современные модули, например ESP32-S3. Поэтому волей-неволей придется и мне осваивать более современные чипы. Прежде чем разбираться с этими платами, неплохо бы получше узнать, что представляет собой ESP32-S3 и чем отличается от “классики”.

 


Обзор

ESP32-S – относительно новая (2020 год) линейка ESP32 базе процессора следующего поколения Xtensa® 32-bit LX7 с максимальной тактовой частотой 240 МГц. В качестве основных преимуществ по сравнению с предыдущей линейкой производитель отмечает улучшенную криптографию (шифрование FLASH памяти, безопасную загрузку прошивки, защиту от атак) и поддержку современных беспроводных протоколов связи. Имеет большее количество GPIO, чем классическая ESP32Но немного меньшее количество встроенной памяти SRAMЗато у новых чипов имеется высокоскоростной интерфейс Quad SPI и Octal SPI,через которые можно подключать много внешней памяти.

Чип ESP32-S3 — это современный MCU система-на-кристалле (SoC) от компании Espressif, предназначенная для IoT и AIoT-приложений, сочетающая высокую производительность, расширенные возможности периферийных устройств и встроенные аппаратные средства безопасности. По заявлению Espressif ESP32-S3 подходит для умного дома, промышленной автоматизации, носимых устройств, распознавания речи и изображений, IoT-шлюзов, USB-устройств и других задач, требующих сочетания беспроводной связи, вычислительной мощности и безопасности.

  • Процессор: Два ядра Xtensa® LX7, 32-бит, до 240 МГц, поддержка векторных инструкций для ускорения задач ИИ и цифровой обработки сигналов.
  • Память: 512 КБ SRAM, 384 КБ ROM, 16 КБ SRAM в RTC, поддержка внешней SPI/PSRAM (до 16 МБ).
  • Беспроводные интерфейсы:
    • Wi-Fi 2.4 ГГц (802.11 b/g/n, до 150 Мбит/с, 20/40 МГц)
    • Bluetooth 5 (LE), поддержка Bluetooth mesh, расширенные возможности передачи (до 2 Мбит/с), Coded PHY для увеличения дальности связи
  • Периферия:
    • До 45 программируемых GPIO
    • SPI, I2S, I2C, UART, PWM, RMT, ADC, SD/MMC host, TWAI® (CAN), LCD, камера, USB OTG, сенсоры касания, температурный датчик и др.
    • ULP-сопроцессор (RISC-V или FSM) для сверхнизкого энергопотребления в режиме сна
  • Безопасность:
    • Аппаратное ускорение AES, SHA, RSA, HMAC, цифровая подпись
    • Secure Boot, шифрование флеш-памяти (AES-XTS)
    • “World Controller” для изоляции сред выполнения
  • Энергопотребление:
    • Поддержка четырёх режимов энергосбережения, включая Deep-sleep (потребление от 7 мкА)
  • Программная поддержка:
    • Полная поддержка в ESP-IDF, а также библиотеки для ускорения ИИ (ESP-DSP, ESP-NN, ESP-WHO, ESP-Skainet)

 

Отличия ESP32-S3 от классического ESP32

Кратенько рассмотрим основные отличия SoC ESP32-S3 от классического SoC ESP32:

  • Процессор и производительность
    1. ESP32-S3: Два ядра Xtensa® LX7 (до 240 МГц), поддержка векторных инструкций для ускорения нейросетей и обработки сигналов (AI acceleration)
    2. ESP32: Два ядра Xtensa® LX6 (до 240 МГц), без поддержки векторных инструкций

🔹 S3 быстрее и эффективнее для задач ИИ и цифровой обработки сигналов

  • Память
    1. ESP32-S3: 512 КБ SRAM, поддержка Octal SPI для Flash и PSRAM (более высокая скорость и больший доступный объём)
    2. ESP32: 520 КБ SRAM, поддержка Quad SPI для Flash и PSRAM

🔹 S3 поддерживает более быстрые и большие по объему внешние чипы памяти

  • Беспроводные интерфейсы
    1. ESP32-S3: Wi-Fi 2.4 ГГц (802.11 b/g/n), Bluetooth 5 (LE)
    2. ESP32: Wi-Fi 2.4 ГГц (802.11 b/g/n), Bluetooth 4.2 (Classic + LE)

🔹 S3 поддерживает только BLE 5.0 (без Classic Bluetooth), но с расширенными BLE возможностями

  • Периферия и GPIO
    1. ESP32-S3: 45 программируемых GPIO, до 14 каналов сенсоров касания
    2. ESP32: 34 программируемых GPIO, до 10 каналов сенсоров касания

🔹 S3 предоставляет больше выводов (на 10 больше, чем у ESP32) и расширенные возможности HMI

  • Безопасность
    1. ESP32-S3: AES-XTS flash encryption, RSA secure boot, цифровая подпись, HMAC, “World Controller” для изоляции сред выполнения
    2. ESP32: AES flash encryption, RSA secure boot

🔹 S3 имеет расширенные аппаратные средства безопасности

  • AI и мультимедийные возможности
    1. ESP32-S3: Аппаратное ускорение для нейросетей, поддержка ESP-NN, ESP-WHO, ESP-Skainet
    2. ESP32: Нет аппаратного ускорения для ИИ

🔹 S3 лучше подходит для распознавания речи, лиц, мультимедийных интерфейсов

Таким образом, ESP32-S3 — это эволюция классического чипа ESP32, ориентированная на задачи искусственного интеллекта, мультимедийные интерфейсы и современные IoT-приложения, с улучшенной поддержкой периферийных устройств, безопасностью и поддержкой BLE 5.0.

Но ESP32-S3, например, не имеет встроенного EMAC (Ethernet MAC) интерфейса, поэтому подключения к Ethernet возможно только с помощью интерфейса SPI.

 


Модули на базе чипа ESP32-S3

На базе ESP32-S3 компания Espressif выпускает несколько вариантов модулей, отличающихся по объёму памяти, типу антенны и размерам. 

  • ESP32-S3-WROOM-1 — с PCB-антенной, доступен с флеш-памятью 4, 8 или 16 МБ и опциональной PSRAM (0, 2 или 8 МБ). Этот модуль имеет 41 вывод, его размер составляет 18×25.5×3.1 мм.
  • ESP32-S3-WROOM-1U — этот модуль функционально полностью аналогичен WROOM-1, но с разъёмом IPEX для внешней антенны. Модуль имеет размеры 18×19.2×3.2 мм.
  • ESP32-S3-WROOM-2 — модуль с увеличенным объёмом памяти: он может иметь до 32 МБ флеш и 16 МБ PSRAM, PCB-антенна. Имеет то же количество контактов и размеры (размер 18×25.5×3.1 мм, 41 вывод).
  • ESP32-S3-MINI-1 — компактный модуль с PCB-антенной, имеет на борту флеш-память 8 МБ (из которых 4 МБ встроено в непосредственно в чип). Этот вариант имеет аж  65 пинов и размеры 15.4×20.5×2.4 мм.
  • ESP32-S3-MINI-1U — компактный модуль, аналогичный MINI-1, но с разъёмом IPEX для внешней антенны, имеет меньшие размеры 15.4×15.4×2.4 мм.
  • ESP32-S3-PICO-1 — модуль в корпусе LGA 7×7 мм, имеет на борту 8 МБ флеш, 2 или 8 МБ PSRAM. Модуль имеет 56 пинов и не имеет собственной антенны, так как предназначен для интеграции в компактные устройства.

Наиболее часто в дикой природе на AliExpress можно найти модули, устройства и платы на базе ESP32-S3-WROOM-1 / 1U / 2, их и будем рассматривать ниже (выводы у них одинаковые).

Модули доступны с разным объёмом flash и PSRAM, а также с разными температурными диапазонами. Например:

  • ESP32-S3-WROOM-1-N4/N8/N16 — имеет 4/8/16 МБ флеш-памяти соответственно, без PSRAM
  • ESP32-S3-WROOM-1-N8R8 — имеет 8 МБ флеш-памяти и 8 МБ PSRAM (Octal SPI)
  • ESP32-S3-WROOM-1U-N8R8 — аналогично, но с внешней антенной

Примечания:

  1. В этой таблице используются те же примечания, что и в таблице 2.
  2. Для кастомизации ESP32-S3-WROOM-1-H4, ESP32-S3-WROOM-1U-H4 и ESP32-S3-WROOM-1UN16R16VA свяжитесь с нами.
  3. По умолчанию флэш-память SPI на модуле работает на максимальной тактовой частоте 80 МГц и не поддерживает функцию автоматического отключения. Если вам требуется более высокая тактовая частота флэш-памяти 120 МГц или вам нужна функция автоматического отключения флэш-памяти, свяжитесь с нами.
  4. Интегрированная флэш-память поддерживает:
    – Более 100 000 циклов программирования/стирания
    – Более 20 лет хранения данных
  5. Модули используют PSRAM, интегрированную в корпус чипа.
  6. Температура окружающей среды определяет рекомендуемый диапазон температур окружающей среды непосредственно за пределами модуля Espressif.
  7. Подробную информацию см. в разделе 10.1 Размеры модуля.
  8. Обратите внимание, что напряжение VDD_SPI составляет 1,8 В только для ESP32-S3-WROOM-1-N16R16VA и ESP32-S3-WROOM-1U-N16R16VA.

Конечно же, подобные модули выпускает не только Espressif, но и другие китайские компании, например Wireless Tag или AI Thinker. Если хотите получить “оригинал” – будьте внимательны при заказе.

 


Таблица выводов ESP32-S3-WROOM-1 / 1U / 2 

SoC ESP32-S3 объединяет множество периферийных устройств, которым для работы необходима связь с внешним миром. Единственный способ направить все входящие и исходящие сигналы через ограниченное количество выводов чипа – это их мультиплексирование. Для этого в ESP32 и ESP32-S3 существует две аппаратных подсистемы: IO MUX и GPIO Matrix.

IO MUX (Input/Output Multiplexer) — это аппаратный модуль, который позволяет каждому GPIO-пину выбирать одну из нескольких заранее определенных производителем функций с помощью специальных регистров. Через IO MUX можно напрямую подключить некоторые высокоскоростные сигналы (например, SPI, JTAG, UART) к периферии, минуя GPIO Matrix, что обеспечивает высокую производительность для этих интерфейсов. Однако количество функций, которые можно выбрать через IO MUX для каждого пина, ограничено ESP32-S3 Technical Reference Manual, 6.6.

GPIO Matrix — это программируемая матрица, которая обеспечивает гибкую маршрутизацию сигналов между периферийными устройствами и GPIO-выводами чипа. С помощью GPIO Matrix практически любой цифровой сигнал от периферии может быть направлен на любой GPIO-пин, и наоборот. Это даёт большую гибкость при проектировании схем и написании прошивки, но может немного увеличивать задержку передачи сигнала по сравнению с прямым подключением через IO MUX, что может снижать скорость передачи данных. Подробнее см. ESP32-S3 Technical Reference Manual, 6.1, 6.4.

ESP32-S3 имеет выводы нескольких типов:

  • Цифровые GPIO (General Purpose Input Output). Каждый вывод цифрового GPIO имеет одну или несколько предопределенных функций, подключаемых через IO MUX. Некоторые выводы имеют предопределенные аналоговые или RTC функции. Предопределенные функции означают, что каждый вывод IO имеет набор прямых соединений с определенными встроенными компонентами. Во время выполнения программы пользователь может сам настроить, какой компонент из предварительно определенного набора будет использоваться для подключения к определенному выводу через специальные регистры (см. ESP32-S3 Техническое справочное руководство> Глава IO MUX и PINS GPIO).
  • Аналоговые выводы, которые имеют исключительно аналоговые функции – см. Таблицу 2-9 Аналоговые контакты, но они не выведены за пределы модуля (кроме антенны).
  • Power Pins, которые обеспечивают питание для компонентов модуля: чипа, памяти и т.д.

Для модулей ESP32-S3-WROOM-1 или ESP32-S3-WROOM-1U перечень контактов будет выглядеть следующим образом:

Нажмите на таблицу для увеличения

Примечания:

  • в столбцах “Поведение при сбросе” указан режим работы “по умолчанию”: I – Input , O – Output, WU – Weak pull-Up, WD – Weak pull-Down, прочерк – вывод не настроен
  • в столбцах “Поведение при сбросе” и “Спец.выводы” цветом указана подтяжка по умолчанию – красный к питанию; синий к земле; остальные цвета – просто обратите внимание
  • в принципе, для I2C можно использовать все I/O выводы; но некоторые их них нельзя подтягивать к питанию, что требуется для ее работы – поэтому считаем их недоступными для I2C

Скачать данную таблицу в формате Excel вы можете по кнопке ниже:

Если вы обнаружили в таблице какие-либо ошибки, пожалуйста сообщите мне по адресу kotyara12@yandex.ru или в чат телеграм.

 

А теперь рассмотрим эту таблицу немного более подробно…

 


Цифровые порты ввода-вывода

Микроконтроллер ESP32-S3 оснащён 45 физическими портами GPIO (GPIO0 ~ GPIO21 и GPIO26 ~ GPIO48). Каждый из этих портов может быть использован как универсальный цифровой вход/выход или быть подключён к внутренним периферийным сигналам через GPIO Matrix, IO MUX и RTC IO MUX. Это обеспечивает высокую конфигурируемость и позволяет маршрутизировать сигналы периферии на любые доступные пины. Но не все выводы чипа могут быть выведены на контакты модуля или отладочной платы.

Каждый цифровой GPIO может работать как вход (IE – Input Enabled) или как выход (OE – Output Enabled), и каждый из них имеет схему управляемой внутренней слабой подтяжки (примерно 50 кОм) WPU / WPD:

 

В режиме входа для цифровых GPIO ESP32-S3 входной ток (leakage current) не превышает 50 нА:

  • High-level input current (IH): макс. 50 нА
  • Low-level input current (IL): макс. 50 нА

Входная ёмкость вывода в режиме входа составляет около 2 пФ.

Входное сопротивление вывода в режиме входа напрямую не указано, но внутренние подтягивающие и подтягивающие вниз резисторы имеют сопротивление около 45 кОм (pull-up/pull-down), если они активированы. Без активации подтяжек входное сопротивление очень высокое (мегаомы и выше), что соответствует очень малому входному току.

 

Ограничение тока через цифровые GPIO в режиме выхода зависит от настроек драйвера (PAD_DRIVER) и составляет:

  • Максимальный ток источника (source, IOH): до 40 мА на вывод при VDD = 3.3 В, напряжении на выходе VOH ≥ 2.64 В, ограничении тока PAD_DRIVER = 3.
  • Максимальный ток стока (sink, IOL): до 28 мА на вывод при VDD = 3.3 В, напряжении на выходе VOL = 0.495 В, ограничении тока PAD_DRIVER = 3.

Рекомендуется не превышать эти значения для предотвращения повреждения микроконтроллера. Также обратите внимание, что суммарный ток через все GPIO не должен превышать 1500 мА (абсолютный максимум для всего чипа) — это важно при одновременной высокой нагрузке на несколько выводов.

 

Некоторые выводы ESP32-S3 имеют специальные функции или ограничения:

  • GPIO0, GPIO3, GPIO45, GPIO46 — это strapping pins, их состояние считывается при загрузке чипа и влияет на режим работы.
  • GPIO19 и GPIO20 по умолчанию используются для USB-JTAG. Если их перенастроить как обычные GPIO, функциональность USB-JTAG будет отключена.
  • GPIO26 ~ GPIO32 обычно используются для SPI flash и PSRAM, их не рекомендуется использовать для других целей, особенно если используется Octal flash/PSRAM.

Но об этом ниже…

 


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

Strapping pins (страппинг-пины) ESP32-S3 — это специальные выводы, значения которых считываются при включении питания или аппаратном сбросе чипа. Они определяют режим загрузки, напряжение питания внешней памяти, источник JTAG и другие параметры. После сброса эти пины работают как обычные GPIO. Это:

  • GPIO0 — выбор режима загрузки (boot mode). Для перевода ESP в режим программирования подтяните этот вывод к GND, а затем нажмите кнопку сброса MCU.
  • GPIO3 — выбор источника JTAG
  • GPIO45 — выбор напряжения VDD_SPI, которое используется для питания внешней flash/PSRAM
  • GPIO46 — совместно с GPIO0 определяет режим загрузки, а также влияет на вывод сообщений ROM и другие функции
Strapping Pin Назначение Подтяжка по умолчанию
GPIO0 Boot mode Pull-up (1)
GPIO3 JTAG source Floating
GPIO45 VDD_SPI voltage Pull-down (0)
GPIO46 Boot mode, ROM print Pull-down (0)

Цветом выделены наиболее важные выводы. Подробнее: ESP32-S3 Series Datasheet, Boot Configurations

Как используются strapping pins

  • Режим загрузки (Boot mode):
    • Если GPIO0 = 1 (pull-up), загрузчик загружает прошивку из SPI flash (обычный режим).
    • Если GPIO0 = 0 и GPIO46 = 0, чип входит в режим загрузки (Joint Download Boot), позволяя прошивать его через UART или USB.
    • После сброса эти пины становятся обычными GPIO и могут использоваться в проекте для других задач, если не мешают загрузке.ежим загрузки (Boot Mode):
  • Напряжение VDD_SPI:
    • GPIO45 определяет, будет ли питание внешней памяти 1.8 В или 3.3 В (в зависимости от eFuse и состояния пина). Поскольку большинство чипов внешней памяти используют напряжение питания 3.3 В, то данный вывод должен быть подтянуть к “земле”.
  • Источник JTAG:
    • GPIO3 управляет выбором источника JTAG-сигналов (например, для отладки).
  • ROM сообщения:
    • GPIO46 может влиять на вывод сообщений ROM при загрузке. А также на перевод чипа в режим загрузки. Не сильно “важный” strapping pin.

Рекомендации по использованию этих выводах в проектах

  • Если вы используете эти выводы в проекте, убедитесь, что их состояние на момент сброса не мешает нормальной загрузке устройства. Например, не стоит подключать к выводам GPIO0 и GPIO45 подтягивающие резисторы для шины I2C или OneWire.
  • Для надёжной работы рекомендуется использовать внешние подтягивающие/подтягивающие резисторы, если к этим пинам подключены другие схемы.
  • После загрузки чипа strapping pins можно использовать как обычные GPIO, но избегайте конфликтов с их функциями при старте.

 


Интерфейсы программирования и отладки

ESP32-S3 поддерживает современные и удобные интерфейсы для программирования и отладки, включая встроенный USB-JTAG, что позволяет отказаться от внешних программаторов и отладчиков в большинстве случаев. Это значительно упрощает процесс разработки и диагностики приложений.

Программирование

  • USB (USB Serial/JTAG): ESP32-S3 оснащён встроенным USB-контроллером, который позволяет программировать чип напрямую через USB-кабель, подключённый к выводам D+ (GPIO20) и D- (GPIO19). Для большинства официальных и не официальных плат достаточно просто подключить USB-кабель — и дополнительный внешний программатор не потребуется. На Windows рекомендуется установить драйвер “Espressif – WinUSB support for JTAG (ESP32-C3/S3)” для корректной работы с USB-программированием, см. Configure ESP32-S3 Built-in JTAG Interface.
  • UART0: Традиционный способ прошивки через последовательный порт (UART) также поддерживается. Хотя для ESP32-S3 разработчики рекомендуют предпочтительнее использовать USB, но можно использовать и этот способ – например чтобы использовать GPIO19-GPIO20 в других целях.

Отладка

  • JTAG (через USB): ESP32-S3 имеет встроенную поддержку JTAG через USB, что позволяет использовать стандартный USB-кабель для отладки без внешнего JTAG-адаптера. Для этого используются те же линии D+/D- (GPIO20/GPIO19). Поддерживается работа с OpenOCD и GDB. Это позволяет выполнять пошаговую отладку, ставить точки останова, просматривать память и переменные, как из командной строки, так и из IDE (Eclipse, VS Code и др.). Подробнее см. JTAG Debugging.
  • Внешний JTAG-адаптер: Если требуется, можно использовать внешний JTAG-адаптер (например, ESP-Prog), подключив его к соответствующим пинам ESP32-S3. Важно, чтобы адаптер поддерживал напряжение 3.3 В и был совместим с OpenOCD. См. Selecting JTAG Adapter.
  • GDB Stub: Для базовой отладки можно использовать встроенный GDB Stub, который позволяет подключаться к чипу через последовательный порт и выполнять простую отладку без JTAG Debugging (посредством вывода отладочных сообщений в COM-порт).

Интеграция с IDE

  • Eclipse, VS Code: Официально поддерживаются плагины для Eclipse и расширение для Visual Studio Code, которые позволяют интегрировать процесс программирования и отладки в привычную среду разработки. Но есть и сторонние разработки, подробности здесь.

 


Аналоговые входы ADC SAR

ESP32-S3 оснащён двумя 12-битными SAR ADC (Successive Approximation Register Analog-to-Digital Converter), которые поддерживают измерения на 20 аналоговых каналах. Эти входы реализованы на выводах GPIO1 ~ GPIO20, которые также могут использоваться для других функций (RTC_GPIO, Touch Sensor, SPI, UART, USB и др.) через IO MUX.

Основные характеристики SAR ADC ESP32-S3:

  • Два независимых контроллера SAR ADC (ADC1 и ADC2).
  • Каждый ADC поддерживает до 10 каналов, что в сумме дает до 20 аналоговых входов.
  • Разрешение преобразования — 12 бит.
  • Поддержка работы в высокопроизводительном (обычном) и низкопотребляющем режимах (например, с помощью ULP-копроцессора для измерений в спящем режиме).
  • Возможность сканирования нескольких каналов, цифровая фильтрация, мониторинг пороговых значений и поддержка DMA для ADC1.
  • Некоторые функции ADC2 недоступны при одновременной работе с Wi-Fi.

Назначение выводов для аналоговых входов:

GPIO Канал ADC1 Канал ADC2
GPIO1 0  
GPIO2 1  
GPIO3 2  
GPIO4 3  
GPIO5 4  
GPIO6 5  
GPIO7 6  
GPIO8 7  
GPIO9 8  
GPIO10 9  
GPIO11   0
GPIO12   1
GPIO13   2
GPIO14   3
GPIO15   4
GPIO16   5
GPIO17   6
GPIO18   7
GPIO19   8
GPIO20   9

Примечания:

  • Канал ADC2 на ESP32 и ESP32-S3 не работает при активном Wi-Fi-соединении, потому что Wi-Fi модуль использует этот ADC2 для собственных нужд (например, для калибровки и измерения мощности сигнала). Приоритет у Wi-Fi-соединения выше, и когда Wi-Fi активен, доступ к ADC2 для пользовательских задач блокируется. Поэтому попытки чтения с ADC2 во время работы Wi-Fi приводят к ошибкам или невозможности получить данные. Рекомендуется использовать каналы ADC1 для аналоговых измерений, если Wi-Fi включён.
  • Аналоговые входы могут быть использованы также для Touch Sensor и других функций.
  • Для получения более подробной информации о назначении аналоговых выводов и их возможностях рекомендуется обращаться к разделу IO MUX и GPIO Matrix в технической документации.

Минимальное и максимальное напряжение, которое может измерять ADC SAR на ESP32-S3, зависит от выбранного уровня ослабления (attenuation):

  • Минимальное измеряемое напряжение: 0 мВ (для всех уровней ослабления)
  • Максимальное измеряемое напряжение:
    • при 0 dB — до 850–950 мВ
    • при 2.5 dB — до 1100–1250 мВ
    • при 6 dB — до 1600–1750 мВ
    • при 11/12 dB — до 2900–3100 мВ

Реальные значения могут немного отличаться в зависимости от конкретного чипа и условий эксплуатации. При превышении 2900–3100 мВ поведение ADC становится неопределённым, и результаты измерения будут некорректны.

Ссылки на документацию, где вы можете почерпнуть более глубокую информацию по данной теме:

 


Входы сенсоров касания

ESP32-S3 оснащён встроенной системой ёмкостных сенсоров касания, которая включает 14 физических каналов (T1–T14), каждый из которых подключён к отдельному GPIO (GPIO1–GPIO14). Сенсоры касания позволяют детектировать прикосновение или приближение пальца за счёт изменения ёмкости на электроде, подключённой к соответствующему выводу. Также имеется внутренний канал TO для измерения внутреннего шума, не связанный с внешними GPIO. Все это позволяет создать клавиатуру управления без необходимости подключения внешних кнопок и устройств.

Основные возможности сенсоров касания ESP32-S3:

  • 14 независимых каналов (T1–T14), каждый подключён к своему GPIO (GPIO1–GPIO14).
  • Поддержка работы в исполнении waterproof и moisture tolerance.
  • Возможность работы в режиме proximity (датчик приближения) — до трёх каналов одновременно.
  • Аппаратная цифровая фильтрация и подавление шума.
  • Сенсоры могут использоваться как источник пробуждения из глубокого сна (Deep-sleep).
  • Возможность работы с ULP-копроцессором для низкопотребляющих сценариев.
  • Сенсоры управляются аппаратным конечным автоматом (FSM), который может запускаться по таймеру или программно.
  • Поддержка сканирования (polling) всех каналов для одновременного мониторинга нескольких сенсоров.
  • Только GPIO14 (TOUCH14) может использоваться для управления экранирующим электродом (shield electrode).

Назначение каналов:

Канал GPIO
T1 GPIO1
T2 GPIO2
T3 GPIO3
T4 GPIO4
T5 GPIO5
T6 GPIO6
T7 GPIO7
T8 GPIO8
T9 GPIO9
T10 GPIO10
T11 GPIO11
T12 GPIO12
T13 GPIO13
T14 GPIO14

Особенности проектирования сенсорной клавиатуры:

  • Рекомендуется использовать электрод диаметром 8–15 мм, форма — круглая или овальная, близкая к форме пальца.
  • Для снижения помех и повышения ESD-защиты в цепь сенсора рекомендуется ставить последовательный резистор 470–2000 Ом (оптимально 510 Ом) между выводом и электродом.
  • Следует избегать длинных трасс (>300 мм) до сенсоров, а также прокладывать их как можно дальше от антенн и других источников высокочастотных помех.

Ограничения:

  • Сенсоры касания ESP32-S3 не прошли тест на электромагнитную совместимость (Conducted Susceptibility, CS), поэтому их применение ограничено в некоторых сценариях.

Для более подробной информации по схемотехнике и настройке рекомендуется ознакомиться с ESP32-S3 Technical Reference Manual и Touch Sensor Application Note

 


SPI интерфейс

Для пользователя на ESP32-S3 доступны два универсальных SPI-контроллера: SPI2 и SPI3. Они предназначены для подключения внешних SPI-устройств (например, датчиков, дисплеев, памяти и т.д.) и могут работать как в режиме master, так и в режиме slave. Оба контроллера поддерживают работу с DMA для высокоскоростной передачи данных.

Основные возможности пользовательских SPI (SPI2 и SPI3):

  • Работа в режиме master/slave.
  • Поддержка Single, Dual, Quad, Octal SPI, QPI и OPI режимов (для SPI3 — только до Quad/QPI).
  • Настраиваемая частота тактирования – до 80 МГц в режиме master.
  • Поддержка передачи данных в 1, 2, 4, 8 линий для SPI2; и в 1, 2, 4 линии для SPI3.
  • Аппаратная поддержка CPOL/CPHA, выбор порядка бит MSB/LSB.
  • Несколько линий CS: до 6 для SPI2), и до 3 для SPI3, для подключения нескольких устройств.
  • Поддержка DMA для ускорения передачи данных.
  • Настраиваемое время установки и удержания сигнала CS.

Назначение выводов: контакты для интерфейсов SPI2 и SPI3 могут быть выбраны из любых доступных GPIO через IO MUX и GPIO Matrix, что даёт гибкость при разводке платы. Однако это обстоятельство может ограничивать скорость передачи по этим интерфейсам.

Пример использования: Для работы с SPI в ESP-IDF используется API, позволяющее инициализировать шину, настраивать параметры и выполнять обмен данными. Пример кода и подробное описание функций доступны в официальной документации ESP-IDF для ESP32-S3.

Подробности и ограничения:

 


Сигналы, маршрутизируемые через GPIO Matrix

В ESP32-S3 большинство цифровых периферийных сигналов могут быть маршрутизированы через GPIO Matrix. Это означает, что входные и выходные сигналы периферий (SPI, UART, I2C, I2S, PWM, RMT, сенсоры касания и др.) могут быть назначены на любой из 45 доступных GPIO (GPIO0–GPIO21, GPIO26–GPIO48), если не указано иное. GPIO Matrix обеспечивает гибкую коммутацию сигналов между периферией и физическими выводами микроконтроллера.

Примеры интерфейсов и сигналов, маршрутизируемых через GPIO Matrix:

  • UART (TX, RX, RTS, CTS и др.)
  • I2C (SCL, SDA)
  • I2S (BCK, WS, SD)
  • SPI (MOSI, MISO, SCLK, CS)
  • LED PWM, MOTOR PWM
  • RMT
  • Pulse Counter
  • TWAI

и другие.

Более подробно об этих и других интерфейсах вы можете узнать из ESP32-S3-WROOM-1/1U :: datasheet на русском.

 


DevKit и платы на основе ESP32-S3

Для ESP32-S3 существует несколько официальных отладочных плат (DevKit), которые поддерживаются Espressif. 

ESP32-S3-DevKitC-1

ESP32-S3-DevKitC-1— универсальная плата на базе модулей ESP32-S3-WROOM-1, ESP32-S3-WROOM-1U или ESP32-S3-WROOM-2. Все основные выводы микроконтроллера разведены на боковые контакты платы. Данная плата хорошо подходит для большинства задач и прототипирования. Подробности и схемы доступны в официальной документации.

Расположение выводов, теперь вам должно быть более понятны обозначения интерфейсов на схеме:

 


ESP32-S3-DevKitM-1

ESP32-S3-DevKitM-1 — чуть более компактная плата на базе модулей ESP32-S3-MINI-1 или ESP32-S3-MINI-1U. Также выводит все основные GPIO и подходит для breadboard и компактных решений.

Подробности и схемы доступны в официальной документации.

 


ESP32-S3-USB-OTG

ESP32-S3-USB-OTG — плата для разработки и тестирования USB-OTG приложений на базе ESP32-S3-MINI-1-N8, с поддержкой USB Host/Device, Wi-Fi и BLE.

Она основана на ESP32-S3 SoC, поддерживает беспроводные функции Wi-Fi и BLE 5.0, а также поддерживает функции USB-хоста и USB-устройства. Ее можно использовать для разработки таких приложений, как беспроводные устройства хранения данных, сетевые карты Wi-Fi, LTE MiFi, мультимедийные устройства, виртуальные клавиатуры и мыши. Плата разработки имеет следующие характеристики:

  • Модуль ESP32-S3-MINI-1-N8 со встроенной флэш-памятью объемом 8 МБ
  • Встроенный интерфейс USB Type-A хоста и устройства со встроенной схемой переключения интерфейса USB
  • Встроенный цветной ЖК-экран 1,3 дюйма, поддерживает графический интерфейс
  • Встроенный интерфейс SD-карты, совместимый с интерфейсами SDIO и SPI
  • Встроенная зарядная схема, которая может быть подключена к литиевой батарее

Подробнее — в руководстве пользователя.

 


ESP32-S3-LCD-EV-Board

ESP32-S3-LCD-EV-Board — довольно интересная плата для работы с RGB LCD, сенсорным экраном и голосовым управлением, на базе ESP32-S3.

Подробнее об ней вы можете узнать в официальной документации.

 

Кроме этого, существуют и другие платы ESP32-S3-EYEESP32-S3-BOXESP32-S3-Korvo-1/2 — специализированные платы для AI, обработки изображений, распознавания голоса и мультимедийных задач.

 


Платы сторонних производителей

Конечно же, платы на основе ESP32-S3 производятся многими другими китайскими производителями – AiThinker, Kincony, Waveshare и т.д. Небольшие обзоры на некоторые из них я планирую опубликовать в будущем, а данную статью немного дополнить ссылками на соответствующие статьи. Пока оставлю здесь лишь несколько фотографий….

Устройство в корпусе и с экраном

Плата на базе ESP32-S3 с Ethernet и камерой

ESP32S3 UNO в форм-факторе Arduino


 


Использованная литература и ссылки

Связанная документация


Пожалуйста, оцените статью:
[ 5 из 5, всего 4 оценок ]

-= Каталог статей (по разделам) =-   -= Архив статей (подряд) =-

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *