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

Сравнение ESP различных серий: какую ESP выбрать – ESP32, ESP32-C2, ESP32-S3, или что-то ещё?

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

Приведенный ниже материал представляет собой лишь краткий обзор семейств микросхем ESP. Чтобы ознакомиться с подробными техническими характеристиками и особенностями каждой микросхемы или модуля, воспользуйтесь инструментом выбора микросхем и модулей ESP. Этот инструмент помогает определить чип или модуль ESP, наиболее подходящие для вашего проекта, исходя из его требований и технических характеристик. В конце статьи приведен примерный алгоритм выбора модуля для вашего проекта.

 

ESP32 - это давно уже не один чип, а целое семейство разных SoC: с разными характеристиками, процессорами и набором протоколов беспроводной связи. На текущий момент на сайте производителя доступны для заказа больше десятка различных серий ESP8266 и ESP32. Сравним чипы ESP различных серий и их основные характеристики, которые могут быть существенными для вашего проекта. Например плата ESP32-DevKit-V1 (с модулем ESP32-WROOM-32E на базе SoC ESP32-D0WD-V3), и другая плата с надписью ESP32-C3 Super Mini (с распаянным на ней чипом ESP32-C3) — это совершенно разные устройства, несмотря на общее название и общую среду разработки. И выбор между ними может повлиять на то, заработает ли ваш проект вообще.

В таблице приведены только чипы (SoC). Определившись с SoC, уже можно будет выбрать подходящий модуль или плату. Для каждого SoC указаны следующие характеристики:

  • CPU — количество ядер и максимальная тактовая частота для всех ядер процессора (включая Low Power), в том числе обозначены: HP - основные High Performance ядра, LP - экономичные Low Power ядра, ULP - сверхэкономичные Ultra Low Power ядра.
  • SRAM — объем основной быстрой оперативной памяти, встроенной в чип, и доступной процессору для стека, кучи и прочих надобностей в режиме обычного энергопотребления.
  • PSRAM — наличие теоретической возможности подключения дополнительной PSRAM-памяти, её максимальный объем и размер кеша. Это совсем не означает, что PSRAM будет вообще в вашем конкретном модуле.
  • WiFi — наличие встроенного радиоканала для подключения к сетям WiFi, дополнительно указан частотный диапазон. 
  • BT — наличие встроенного радиоканала для создания Bluetooth соединения, дополнительно указаны поддерживаемые стандарты соединения.
  • Thread, Zigbee — поддержка современных mesh-протоколов беспроводной связи с низким энергопотреблением на базе стандарта IEEE 802.15.4
  • Ethernet — наличие встроенного EMAC-контроллера, который позволяет подключаться к проводным Ethernet-сетям по RMII-протоколу (но потребуется дополнительный чип уровня PHY (приемопередатчик)). Отсутствие такого контроллера не означает, что выбранный SoC не имеет возможности подключения к сетям Ethernet вообще - это можно сделать с помощью SPI - чипов, например W5500.
  • GPIO — количество выводов, доступных для чипа (для некоторых модулей, особенно PICO, количество выводов может быть существенно меньше). Уточняйте эту информацию в техническом руководстве или на сайте производителя. Из них: strapping - специальные выводы обвязки (их использовать можно, но осторожно), flash - используются для SPI-интерфейсов FLASH-памяти (в модулях нельзя использовать совсем), доступно - количество GPIO, доступных для работы в проекте, включая strapping.
  • USB - наличие и тип встроенного в чип USB-контроллера (и это не USB-UART мост). Не все USB одинаково полезны — USB OTG может "притворятся" клавиатурой или флешкой, USB JTAG используется только для отладки и прошивки. Некоторые SoC имеют на борту сразу два контроллера - и OTG, и JTAG - позволяя переключаться между ними.
  • Ingterfaces — перечислены основные (SPI, I2C, UART, I2S) аппаратные контроллеры интерфейсов, встроенные в чип. Для SPI интерфейсов иногда указаны 2 цифры: ДОСТУПНО ПОЛЬЗОВАТЕЛЮ (ВСЕГО КОНТРОЛЛЕРОВ) - как правило 2 или 1 SPI используется для подключения FLASH памяти. Для SoC, где поле GPIO / flash не заполнено - это означает, что FLASH встроена в чип, GPIO не используются и в этом столбце указано одно "честное" количество SPI.
  • Типичное применение — назначение SoC по мнению производителя на основе официальной документации.

Попытка вместить сразу всю эту информацию в одну таблицу HTML провалилась (да и была заранее обречена на провал), поэтому я сделал её в виде "картинки", которую можно увеличить, кликнув по ней мышкой. Прошу понять и простить.

Сравнение основных характеристик для SoC различных серий. Нажмите для увеличения.

Примечания:

  • Количество GPIO указанно для SoC. Для модулей количество доступных GPIO может быть существенно меньше. Уточняйте эту информацию в техническом руководстве.
  • Модули ESP32 (классика) могут иметь и 8 МБ и даже 16 МБ PSRAM, однако "прозрачно" доступны только первые 4 МБ, так что не обольщайтесь.
  • ESP32-S2 не имеет Bluetooth — это не ошибка в таблице и не брак производителя.
  • ESP32-P4 не имеет встроенного радио — для подключения к сети Wi-Fi/BT ему нужен внешний чип (например, ESP32-C6).
  • ESP32-E22 напротив — предназначена для подключения к другим SoC, например тому же ESP32-P4, как средство связи.
  • AI/ML: ESP32-S3 и ESP32-P4 имеют AI-расширения и FPU; P4 дополнительно поддерживает H.264 кодирование и MIPI-интерфейсы.

Более подробную информацию вы можете получить на сайте производителя чипов.

Теперь давайте сравним эти опции несколько более подробно.


CPU

  • HP Core (High-Performance Core)
    Это основное рабочее ядро микроконтроллера — то, на котором выполняется ваша программа, стек Wi-Fi/Bluetooth, RTOS (FreeRTOS) и всё остальное. Работает на высокой частоте (от 96 МГц до 400 МГц в зависимости от чипа). Потребляет значительный ток — при активной работе с Wi-Fi это может быть 100–300 мА. Питается от основного домена питания, который полностью отключается при глубоком сне (Deep Sleep).

  • LP Core (Low-Power Core)
    Это вспомогательное ядро, которое продолжает работать, пока основное ядро HP Core спит. Работает на более низкой частоте (20–40 МГц). Питается от отдельного домена питания низкого потребления, который остаётся включённым даже в Deep Sleep. Может опрашивать датчики, управлять GPIO, работать с I2C/UART — и будить HP Core только тогда, когда это действительно нужно. Программируется на стандартном языке C

Практический пример:

Устройство мониторинга влажности почвы. HP Core спит, LP Core каждые 10 секунд снимает показания с датчика. Только когда влажность упала ниже порога — LP Core будит HP Core, тот подключается к Wi-Fi и отправляет уведомление в облако.

  • ULP (Ultra-Low-Power)
    Термин ULP — общее название для всех вспомогательных низкопотребляющих ядер Espressif. Они прошли три поколения.

    • ULP-FSM: ESP32, ESP32-S2, ESP32-S3 – Простой конечный автомат, имеет ограниченные возможности, для программирования используется ассемблер
    • ULP-RISC-V: ESP32-S2, ESP32-S3 – Полноценный RISC-V, удобнее в разработке, так как используется обычный С
    • LP-Core: ESP32-C6, ESP32-C5, ESP32-P4 – Доступ ко всей памяти и периферии, JTAG-отладка, прерывания

 

Xtensa LX6/LX7 vs RISC-V

  • Xtensa (LX6, LX7) — это проприетарная архитектура компании Cadence/Tensilica, используемая в классических чипах Espressif:
    • LX6 — в ESP32 (240 МГц)
    • LX7 — в ESP32-S2 и ESP32-S3 (240 МГц), более производительная версия. ESP32-S3 дополнительно имеет аппаратные расширения для AI/DSP (векторные инструкции)
  • RISC-V — это открытая стандартная архитектура с открытой спецификацией набора инструкций. Используется во всех современных чипах серий C, H, P и S31.

Что это значит для разработчика? На практике разницы почти нет — вы пишете код на C/C++ в ESP-IDF или Arduino, и фреймворк скрывает архитектурные детали. Однако есть некоторые нюансы, существенные больше для профессионалов.

 

Зачем два HP-ядра (Dual-Core)?

Некоторые чипы, например ESP32, ESP32-S3, ESP32-P4, ESP32-S31 и т.д. имеют два одинаковых HP-ядра. Зачем это нужно:

  • Разделение задач: Одно ядро занимается стеком Wi-Fi/Bluetooth (это делает сам ESP-IDF автоматически), второе — вашим кодом приложения. Это снижает задержки и «зависания» в работе приложения.
  • Параллельная обработка: Можно одновременно декодировать аудио на одном ядре и отправлять данные по сети на другом. Пример: ESP32-S3 с двумя ядрами LX7 @ 240 МГц отлично справляется с одновременным распознаванием речи и управлением дисплеем.

Для новичка наличие двух ядер не требует специальных знаний — FreeRTOS и ESP-IDF или Arduino core управляют распределением задач автоматически. Но вы всегда можете явно «прикрепить» задачу к конкретному ядру через xTaskCreatePinnedToCore().


Наличие дополнительной PSRAM

В микроконтроллерах Espressif встроенной оперативной памяти (SRAM) обычно насчитывается от нескольких сотен килобайт до 1 МБ. Для требовательных задач (интерфейсы с дисплеями, обработка аудио, работа с камерами) используется внешняя или встроенная в корпус микросхемы память PSRAM (Pseudo-Static RAM).

  • ESP8266, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-H21не поддерживают PSRAM согласно официальным спецификациям линеек. Эти чипы рассчитаны на простые сценарии умного дома, датчики и протоколы Thread/Zigbee/Matter, где достаточно встроенной памяти.

  • Классический ESP32 (ESP32-D0WD…) — возможность подключения PSRAM есть, но с ограничениями.

    • Ограничение маппинга: в адресное пространство данных напрямую через кэш может быть отображено максимум 4 МБ PSRAM (диапазон 0x3F80_0000–0x3FBF_FFFF).
      Если подключена микросхема на 8 МБ, оставшиеся 4 МБ нельзя адресовать напрямую как обычную память — доступ к ним осуществляется через специальный API (himem) с переключением окон (банков).
    • Не поддерживается DMI – все операции с PSRAM только через CPU.
  • ESP32-S2 и ESP32-S3 — поддерживают расширяемую внешнюю PSRAM до 32 МБ c DMI и прочими плюшками

  • ESP32-P4высокопроизводительный чип без встроенного радиомодуля (Wi-Fi/BT), поставляется сразу с интегрированной в чип PSRAM емкостью 16 МБ или 32 МБ с поддержкой сверхбыстрых интерфейсов OPI (8-битный) и HPI (16-битные данные).

  • ESP32-S31поддерживает расширяемую память 250 MHz 8-bit DDR PSRAM.

  • ESP32-C5, ESP32-C61, ESP32-H4аппаратно поддерживают расширяемую PSRAM.

Советы при выборе:

  • Проверяйте маркировку: Наличие встроенной PSRAM в готовых модулях обозначается буквой R в суффиксе (например, N8R8 — 8 МБ Flash, 8 МБ PSRAM; N4R2 — 4 МБ Flash, 2 МБ PSRAM). Если буквы R нет (например, ESP32-WROOM-32E-N4), на модуле установлена только Flash-память.
  • Для графики и камер: Лучшим и наиболее распространенным выбором на сегодняшний день является ESP32-S3 (с суффиксом R2 ~ R8), либо ESP32-P4, если радиосвязь не нужна на том же кристалле.
  • Включение в прошивке: Даже при наличии микросхемы памяти на плате, работу с внешней RAM необходимо активировать в конфигурации проекта (menuconfig -> Support for external или в настройках платы Arduino IDE.

Подробнее об этом читайте здесь.


Радиомодуль WiFi

Wi-Fi нет совсем

  • ESP32-P4: Чип ориентирован на высокопроизводительную обработку мультимедиа, видео и HMI-панелей. Встроенного радиомодуля (Wi-Fi/Bluetooth/802.15.4) у него нет.
  • Серия ESP32-H (ESP32-H2, ESP32-H21, ESP32-H4): Разработана исключительно для низкопотребляющих mesh-сетей и включает только радиомодули Bluetooth LE и IEEE 802.15.4 (Thread / Zigbee).

 

Классический Wi-Fi 4 (только 2.4 ГГц) IEEE 802.11b/g/n

Чипы: ESP8266, ESP32 (Classic), ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3. Скорость передачи данных:

  • До 72.2 Мбит/с на ESP32-C2, поддерживается только полоса HT20 (20 МГц)
  • До 150 Мбит/с на ESP32, ESP32-S2, ESP32-S3, ESP32-C3 при использовании полосы пропускания HT40 (40 МГц).

Особенности: Поддерживаются режимы SoftAP, Sniffer (сниффинг пакетов), Wi-Fi CSI и протоколы безопасности WPA3.

 

Wi-Fi 4 / 6 (в диапазоне только 2.4 ГГц) IEEE 802.11b/g/n/ax

Чипы: ESP32-C6, ESP32-C61, ESP32-S6, ESP32-S31: поддерживают диапазон только 2.4 ГГц

Особенности этого стандарта:

  • OFDMA и MU-MIMO: Поддержка OFDMA на передачу и приём, а также downlink MU-MIMO для снижения задержек и стабильной работы в сильно загруженных сетях
  • Target Wake Time (TWT): Механизм, позволяющий устройству «спать» длительными интервалами по расписанию точки доступа, что значительно экономит заряд батареи.
  • Полоса пропускания для режима 802.11ax оптимизирована под IoT и составляет 20 МГц (для обратной совместимости с 802.11b/g/n поддерживаются 20/40 МГц).

 

Двухдиапазонный Wi-Fi (Dual-Band 2.4 ГГц и 5 ГГц) IEEE 802.11a/b/g/n/ac/ax

Чипы: ESP32-C5.

Особенности:

  • Работа в диапазоне 5 ГГц обеспечивает меньшую зашумлённость радиоэфира и более низкие задержки.
  • Поддерживает функции Wi-Fi 6: OFDMA, downlink MU-MIMO и TWT.

 

Трехдиапазонный Wi-Fi 6E (2.4 / 5 / 6 ГГц) IEEE 802.11a/b/g/n/ac/ax

Чипы: ESP32-E22.

Особенности:

  • Работает как радио-сопроцессор (RCP) для разгрузки хост-процессоров через шины PCIe 2.1 или SDIO 3.0
  • Поддерживает полосу каналов до 160 МГц, модуляцию 1024-QAM, Beamforming и 2×2 MU-MIMO, достигая пропускной способности до 2.4 Гбит/с

Радиомодуль Bluetooth

Где Bluetooth нет совсем

  • ESP8266: Поддерживает только Wi-Fi 4, модуль Bluetooth полностью отсутствует
  • ESP32-S2: Чип ориентирован на безопасность и USB-периферию с Wi-Fi, Bluetooth в нём не реализован.
  • ESP32-P4: Чип предназначен для мультимедиа и HMI-панелей и не содержит радиомодулей (ни Wi-Fi, ни Bluetooth).

 

Classic Bluetooth (BR/EDR)

Поддержка классического Bluetooth присутствует только в:

  • ESP32 (Classic): Двухрежимный Bluetooth Classic BR/EDR + BLE.
  • ESP32-S31: Двухрежимный Classic BT + BLE 5.4.
  • ESP32-E22: Двухрежимный Bluetooth Classic BR/EDR + BLE.

Большинство остальных современных линеек Espressif являются BLE-only (только Bluetooth Low Energy).

 

Ограничения аппаратного уровня классического ESP32

Хотя контроллер классического ESP32 прошёл сертификацию SIG Bluetooth LE 5.0, из-за аппаратных ограничений он не поддерживает такие ключевые функции BLE 5.0, как 2M PHY, LE Long Range (Coded PHY) и Advertising Extensions.

 

Расширенные функции BLE (2M PHY, Coded PHY / Long Range, BLE Mesh)

Начиная с чипов ESP32-C2, ESP32-C3, ESP32-S3, ESP32-C6, ESP32-H2 и новее, функции 2M PHY и Coded PHY (Long Range) поддерживаются аппаратно. Поддержка BLE Mesh доступна почти во всех чипах, за исключением ультрабюджетного ESP32-C2.

 

LE Audio и Direction Finding (AoA/AoD)

  • LE Audio: Полноценная поддержка LE Audio (CIS/BIS, Auracast) заявлена для ESP32-H4 и ESP32-S31.
  • В чипах ESP32, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C5 и ESP32-H2 аппаратно LE Audio не предусмотрен.
  • Direction Finding (AoA/AoD): Поддерживается в ESP32-H4.

 

Сертификация контроллеров (Bluetooth SIG)

Контроллеры чипов сертифицируются по разным версиям спецификации SIG (например, ESP32-C3 и ESP32-S3 сертифицированы на версию 5.4, а ESP32-C5, ESP32-C6, ESP32-C61 и ESP32-H2 получили сертификацию контроллера по спецификации 6.0) [Bluetooth® SIG Qualification].


Протоколы Thread / Zigbee + Matter

Поддержка технологий Thread, Zigbee и Matter в экосистеме Espressif напрямую зависит от наличия встроенного радиомодуля IEEE 802.15.4 и поддержки Wi-Fi / Bluetooth LE.

Протокол Matter является прикладным IP-уровнем, поэтому он реализуется поверх двух основных беспроводных транспортов: Wi-Fi и Thread (с первичной настройкой/commissioning через Bluetooth LE). Чипы делятся по ролям:

  • Matter-over-Wi-Fi End Devices: Устройства конечных точек с питанием от сети или емких аккумуляторов. Строятся на любых Wi-Fi-чипах Espressif: ESP32, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-S3, ESP32-C5.
  • Matter-over-Thread End Devices: Низкопотребляющие и батарейные устройства, использующие стек OpenThread и радио IEEE 802.15.4. Для них используются чипы с IEEE 802.15.4: ESP32-H2, ESP32-C6, ESP32-C5, ESP32-H4, ESP32-S31.
  • Thread Border Router (граничный маршрутизатор) и Matter-Zigbee Bridge: Соединяют локальную сеть Thread/Zigbee с домашней IP-сетью Wi-Fi/Ethernet. Здесь рекомендуемый подход – двухчиповое решение: включает хост-контроллер с Wi-Fi (например, ESP32-S3, ESP32 или ESP32-C3) и радио-сопроцессор 802.15.4 (ESP32-H2), соединённые между собой. Использовать один чип ESP32-C6 как полноценный Thread Border Router не рекомендуется, так как у него только один радиочастотный тракт (RF path) — одновременный прием Wi-Fi и Thread невозможен, что неизбежно приводит к потерям пакетов.

 

  • Чипы без 802.15.4: ESP8266, ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3
    Thread и Zigbee на них аппаратно отсутствуют. Matter поддерживается, но исключительно как Matter-over-Wi-Fi. Также эти чипы могут служить хостом Wi-Fi в составе составного Border Router / Matter Bridge.

  • ESP32-H2,ESP32-H21: Содержат радио IEEE 802.15.4 и BLE 5, но не имеют Wi-Fi. Сертифицированы как Thread-Certified 1.3.0 Component и Zigbee-Compliant Platform (Zigbee 3.0). Идеальны для конечных узлов Matter-over-Thread, автономных Zigbee-устройств или в роли RCP (Radio Co-Processor).

  • ESP32-C5, ESP32-C6: Комбинированные чипы «всё-в-одном» Wi-Fi 6 + BLE + IEEE 802.15.4. Поддерживают Thread (версии 1.3 / 1.4), Zigbee 3.0, а также могут выступать как Matter-over-Wi-Fi, так и Matter-over-Thread устройства.

  • ESP32-H4 и ESP32-S31: Поддерживают стандарты Thread 1.4 и Zigbee 3.0.

  • ESP32-P4: Радиомодули отсутствуют, для работы с Matter/Thread/Zigbee чип может выступать только ведущим процессором приложений с внешним беспроводным сопроцессором.


Ethernet EMAC

EMAC (Ethernet Media Access Controller) — это аппаратный контроллер канального уровня (уровня MAC стандарта IEEE 802.3), встроенный в кристалл микроконтроллера. Он необходим для организации прямого проводного подключения к сети Ethernet на высоких скоростях и выполняет следующие задачи:

  • Связь с внешним трансивером (PHY): передаёт и принимает данные через стандартные цифровые интерфейсы (MII, RMII или RGMII), а также управляет настройками чипа PHY через интерфейс MDIO.
  • Формирование и разбор Ethernet-кадров: автоматически вставляет преамбулу и начальный разделитель кадра (SFD) при отправке и удаляет их при приёме, вычисляет и проверяет контрольную сумму (CRC), а также при необходимости добавляет padding.
  • Аппаратная разгрузка процессора (Offloading): поддерживает проверку и расчёт контрольных сумм заголовков IPv4 и протоколов TCP/UDP/ICMP на аппаратном уровне.
  • Фильтрация трафика: Выполняет аппаратную фильтрацию физических и мультикаст-адресов, распознаёт теги VLAN (IEEE 802.1Q) и поддерживает режим promiscuous mode (сниффинг сетевых пакетов).
  • Высокая скорость и прямой доступ к памяти: Использует выделенный DMA-контроллер и внутренние буферы FIFO (TX/RX), обеспечивая передачу данных между памятью и сетью без чрезмерной загрузки вычислительных ядер.
  • Сетевая синхронизация: Поддерживает аппаратные 64-битные временные метки пакетов по протоколу IEEE 1588-2008 (PTP).

В отличие от внешних SPI-Ethernet модулей вроде ENC28J60 или W5500, встроенный EMAC подключается через параллельные шины MII/RMII/RGMII, что обеспечивает в разы большую пропускную способность и меньшие задержки.

Аппаратный контроллер EMAC присутствует в следующих сериях:

  • ESP32 (Classic): поддерживает скорости 10 / 100 Мбит/с внешним PHY по интерфейсу MII и RMII. Поддерживаются аппаратный PTP (IEEE 1588-2008), буферы FIFO по 2 КБ на приём и передачу.

  • ESP32-P4: поддерживает скорости 10 / 100 Мбит/с внешним PHY по интерфейсу MII и RMII. Оснащён буферами FIFO 256 байт TX и 256 байт RX, поддерживает Jumbo-кадры до 16 КБ, Energy Efficient Ethernet (IEEE 802.3az-2010) и метки времени IEEE 1588-2008

  • ESP32-S31: поддерживает скорости 10 / 100 / 1000 Мбит/с (гигабитный Ethernet) через внешний PHY, поддерживаемые интерфейсы: MII, RMII или RGMII (одновременно может использоваться только один). Оснащён 1024-байтным TX FIFO и 256-байтным RX FIFO, поддерживает Jumbo-кадры до 16 КБ, IEEE 1588-2008 и IEEE 802.3az-2010.

В остальных чипах ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 и линейке ESP8266 встроенного контроллера EMAC нет. Но подключение Ethernet на них возможно только через внешние контроллеры по шине SPI.


Контроллер USB: OTG vs JTAG

Чипы ESP32 могут иметь встроенный USB-контроллер, который может работать в одном из двух режимах: USB OTG или USB-JTAG.

USB OTG (On-The-Go) – это полноценный USB-контроллер, поддерживающий несколько режимов:

  • Host mode — ESP выступает хостом, к которому подключаются другие USB-устройства (флешки, камеры, клавиатуры и т.д.)
  • Device mode — ESP выступает USB-устройством (HID, MSC, CDC, UAC, UVC и др.)
  • OTG — динамическое переключение между режимами

Чипы, которые поддерживают этот режим: ESP32-S2, ESP32-S3 (Full Speed, 12 Мбит/с), ESP32-P4 (Full Speed + High Speed, до 480 Мбит/с) 

USB-Serial-JTAG – специализированный USB-контроллер, который может работать только в режиме Device mode. У него несколько иные задачи:

  • Прошивка чипа через USB напрямую, без моста
  • JTAG-отладка, без дополнительного оборудования
  • Виртуальный COM-порт (CDC-ACM)

Чипы, которые поддерживают этот режим: ESP32-C3, ESP32-C6, ESP32-H2, ESP32-S3, ESP32-P4 

Особый случайESP32-S3 и ESP32-P4, эти два чипа имеют оба контроллера одновременно, но с нюансами:

  • ESP32-S3: оба контроллера делят один внутренний PHY. По умолчанию PHY подключён к USB-Serial-JTAG. При инициализации USB OTG стека PHY переключается на OTG, и JTAG перестаёт работать. Для одновременной работы нужен ещё один внешний PHY.
  • ESP32-P4: имеет два встроенных Full-Speed PHY — один для OTG, другой для Serial/JTAG, поэтому оба контроллера могут работать одновременно без внешних компонентов:

Подведем итоги:

Контроллер Host Device Свои классы Чипы
USB-Serial-JTAG ✅ (JTAG/CDC) C3, C6, H2, S3, P4
USB OTG FS S2, S3, P4
USB OTG HS P4

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

Ниже приведён детальный разбор основных периферийных интерфейсов микроконтроллеров Espressif (SPI, I2C, I2S, UART, ADC, PWM, SDIO/SDHOST и др.) на основе официальных технических описаний.

SPI (Serial Peripheral Interface)

В чипах Espressif контроллеры SPI делятся на две категории: интерфейсы для работы с внутренней/внешней памятью (Flash/PSRAM) и интерфейсы общего назначения (GP-SPI) для подключения датчиков, дисплеев и внешних устройств.

  • ESP32: 4 SPI-интерфейса – SPI0 и SPI1 выделены под память и HSPI/SPI2, VSPI/SPI3 — общего назначения.
  • ESP32-S2, ESP32-S3: 4 контроллера SPI – SPI0 и SPI1 выделены под память и SPI2 и SPI3 — общего назначения.
  • ESP32-H серия: 2 контроллера для памяти Flash (не выведены “наружу”) и 1 контроллер SPI общего назначения.
  • ESP32-P4: 4 высокоскоростных SPI (HP SPI) + 1 энергоэффективный контроллер в домене низкого потребления (LP SPI)
  • ESP32-S31: 6 основных интерфейсов SPI (2 под PSRAM, 2 под Flash, 2 общего назначения) + 1 LP SPI.

 

I2C (IIC) и I3C

  • ESP32, ESP32-S2, ESP32-S3, ESP32-H2 имеют 2 независимых контроллера I2C, способных работать как в режиме Master, так и в режиме Slave.
  • ESP32-C2, ESP32-C3, ESP32-H4 имеет только один контроллер I2C.
  • ESP32-P4 оснащён 2 портами HP I2C, 1 портом LP I2C, аналоговым интерфейсом I2C (Analog I2C), а также интерфейсом I3C следующего поколения.
  • ESP32-S31: 2 порта I2C + 1 LP I2C

 

UART

Интерфейсы UART поддерживают аппаратное управление потоком (CTS/RTS) и прямой доступ к памяти (DMA), сигналы TX/RX/CTS/RTS могут быть сопоставлены с любыми GPIO.

  • ESP32, ESP32-S3: 3 контроллера UART.
  • ESP32-S2, ESP32-H2: 2 контроллера UART.
  • ESP32-P4: 5 контроллеров UART + 1 контроллер LP UART.
  • ESP32-S31: 4 контроллера UART + 1 контроллер LP UART.

 

I2S (Inter-IC Sound)

Используется для передачи цифрового звука (стереовходы/выходы аудиокодеков), а в некоторых чипах — для параллельного вывода данных на дисплей или ввода с камеры.

  • ESP32 (Classic): 2 интерфейса I2S (I2S0, I2S1). Большинство сигналов (данные, BCK, WS) настраиваются на любые GPIO, однако опорные тактовые сигналы I2S0_CLK и I2S1_CLK могут быть выведены через IO MUX только на строго определённые пины: GPIO0, U0RXD (GPIO3) или U0TXD (GPIO1).
  • ESP32-S2: 1 интерфейс I2S, аппаратные ресурсы которого также используются для формирования 8/16/24-битного параллельного интерфейса LCD и 8/16-битного интерфейса камеры DVP
  • ESP32-S3: 2 интерфейса I2S, интерфейсы дисплея и 8~16-битной камеры DVP здесь уже выделены в отдельные аппаратные блоки.
  • ESP32-H2: 1 интерфейс I2S
  • ESP32-P4: 3 интерфейса HP I2S + 1 интерфейс LP I2S
  • ESP32-S31: 2 интерфейса I2S с аппаратным уровнем Bluetooth Audio

 

ADC (АЦП) и DAC (ЦАП)

  • ESP32 (Classic): 12-битный SAR ADC, до 18 каналов (два блока: ADC1 и ADC2). Два 8-битных ЦАП (DAC).
  • ESP32-S2: Два 12-битных SAR ADC, суммарно до 20 каналов. Два 8-битных ЦАП (DAC).
  • ESP32-S3: Два 12-битных SAR ADC, суммарно до 20 каналов. ЦАП (DAC) отсутствует.
  • ESP32-H2: 12-битный SAR ADC, до 5 каналов. ЦАП отсутствует.
  • ESP32-S31: Два 12-битных SAR ADC (до 16 каналов), 2 блока DAC, аналоговый компаратор напряжений.
  • ESP32-P4: Два контроллера ADC, аналоговый компаратор напряжений.

 

PWM (ШИМ): LEDC и MCPWM

В чипах Espressif реализовано два типа аппаратных генераторов ШИМ:

  • LEDC (LED PWM) – предназначен преимущественно для регулировки яркости светодиодов, генерации тактовых сигналов и зуммеров.
  • MCPWM (Motor Control PWM) – специализированный блок управления электродвигателями и силовыми преобразователями (поддерживает комплементарные выходы, «dead-time», входы аварийной остановки/fault и сигналы захвата/capture)

 

  • ESP32 (Classic): LED PWM: до 16 независимых каналов (8 High-Speed, 8 Low-Speed) + 2 модуля MCPWM (PWM0 и PWM1)
  • ESP32-S2: LED PWM до 8 каналов
  • ESP32-S3: LED PWM до 8 каналов + 2 блока MCPWM
  • ESP32-H2: LED PWM до 6 каналов + контроллер MCPWM
  • ESP32-P4: LED PWM (LEDC) + блок MCPWM
  • ESP32-S31: 2 контроллера LED PWM (до 8 каналов) + 4 блока MCPWM

 

SDIO / SD / MMC контроллеры

  • ESP32 (Classic): 1 хост-контроллер (SD/eMMC/SDIO Host): поддерживает стандарт SD memory card V3.01 + 1 слейв-контроллер (SDIO/SPI Slave)
  • ESP32-S3: Контроллер SD/MMC host с 2 слотами; слейв-контроллер отсутствует.
  • ESP32-P4: Встроенный хост-контроллер SD/MMC Host (SDHOST)
  • ESP32-S31: Хост-контроллер SDIO с 2 слотами

 

TWAI / CAN (Two-Wire Automotive Interface)

Аппаратный контроллер, совместимый с ISO 11898-1 (CAN 2.0), присутствует в ESP32, ESP32-S2, ESP32-S3, ESP32-H2 и ESP32-P4. В чипе ESP32-S31 интегрирован расширенный контроллер CAN FD (ISO 11898-1:2015).

 

RMT (Remote Control Peripheral)

Блок генерации и приёма инфракрасных и произвольных цифровых импульсных последовательностей (часто используется для управления адресными светодиодами WS2812/NeoPixel).

  • ESP32 имеет 8 каналов
  • ESP32-H2 — 2 канала TX и 2 RX
  • также присутствует в ESP32-S2, ESP32-S3, ESP32-P4 и ESP32-S31.

PARLIO (Parallel IO Controller)

Аппаратный параллельный контроллер ввода-вывода данных. Присутствует в чипах новых поколений: ESP32-H2, ESP32-P4, ESP32-S31.

 

PCNT (Pulse Count Controller)

Аппаратный счетчик внешних импульсов для энкодеров и расходомеров. Реализован в:

  • ESP32, ESP32-S2 – 4 счетчика
  • ESP32-S3, ESP32-H2, ESP32-P4 и ESP32-S31 – 2 счетчика

 

Сенсорные входы (Touch Sensors)

  • ESP32: 10 емкостных сенсорных выводов.
  • ESP32-S2 / ESP32-S3: 14 емкостных сенсорных выводов.

Выводы: какую ESP выбрать – ESP32, ESP32-C3, ESP32-C6, ESP32-S3, или что-то ещё?

Можно ориентироваться на следующий алгоритм:

  • Для первого знакомства и обучения и вы хотите использовать очень много готовых библиотек → берите оригинальный ESP32, он все ещё остается актуальным выбором для множества проектов. Для него написано великое множество примеров и обучающих материалов, так что он лучше всего подходит для освоения.
    Если нужна отладочная плата → возьмите ESP32-DevKitC-V4 от производителя чипов – не дорогой и надежный выбор.

  • Для работы с камерой можно взять классический ESP32-CAM, но она довольно сильно греется и legacy-объем PSRAM у нее ограничен 4MB. В настоящее время лучше посмотреть на аналогичные платы с ESP32-S3 – это будет лучший выбор для работы с камерой.

  • Нужно “дешево и сердито” – только Wi-Fi, без TLS / HTTPS и сложной логики (включить свет, несколько пакетов на сервер раз в минуту) → берите ESP8266. Это все еще рабочий вариант для самых простых проектов, хотя и устаревший. Но не пытайтесь использовать его в промышленных устройствах, которым нужна защита от взлома, или в проектах с большим количеством RAM, прерываний и таймеров — его архитектура для этого не предназначена. Например он не “тянет” несколько TLS-соединений одновременно. Но для прототипов и простейшей домашней автоматики — вполне подойдет.

  • Нужен Wi-Fi + Bluetooth или чуть больше памяти → выберите ESP32-C3, он почти такой же дешевый, как 8266, но современный и более безопасный.
    Например можно выбрать дешевую плату ESP32-C3 Super Mini, но у нее мало выводов и плохая антенна (дальность связи с точкой доступа будет небольшой)

  • Нужен Wi-Fi 5 ГГц → ваш выбор только ESP32-C5 или ESP32-S31, но последний пока только в опытных образцах.

  • Нужен Bluetooth Classic (для колонки) → ваш выбор оригинальный ESP32 или ESP32-S31, но последний пока только в опытных образцах.

  • Нужны Zigbee / Thread → выбирайте ESP32-H2илиESP32-H21. У него нет Wi-Fi, но у него есть другие беспроводные протоколы.

  • Нужна экономичность и работа от батареи → ваш выбор серия ESP32-H илиESP32-С6. В режиме LP они способны потреблять единицы мкА и работать на автономном источнике годами.

  • Нужна работа с большим графическим дисплеем, камерой, или голосовой ассистент → берите ESP32-S3. Ну и это просто современный выбор взамен классики, который покрывает почти все потребности. Для работы с камерами и экранами желательно выбирать модели с большим объемом PSRAM – она необходима для кадрового буфера. Но это не про экономичность и батарейное питание.

  • Нужна не ограниченная мощь без встроенного радио (AI, обработка видео, USB-накопители) → выбирайте ESP32-P4. Но для того, чтобы с него выйти в сеть, потребуется дополнительно ESP32-C6 или ESP32-E22.

Если всё ещё сомневаетесь, что взять для проекта → берите ESP32-S3 с большим объемом FLASH и дополнительной PSRAM, например N16R8. Да, это дороже “классики”, но его возможностей хватит почти на любой проект, включая обработку изображений и работу с большими дисплеями (кроме Bluetooth ClassicZigbee/Thread и батарейного питания). А если большая “мощь” не потребуется – можно снизить тактовую частоту и тем самым снизить нагрев и потребление.

 


Источник: Espressif board selection

Оцените по шкале от 1 до 5 - насколько эта статья была Вам полезна?
[ 0 из 5, всего 0 оценок ]

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

Небольшой анонимный опрос: какие статьи вы предпочитаете?

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

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

  −  3  =  1