ESP32 и другие чипы Espressif
ESP32 — это уже не один чип, а семейство: ESP32 и ESP32-S2, S3 на ядрах Xtensa, ESP32-C2, C3, C5, C6, H2 и P4 на RISC-V. Они различаются радио — Wi-Fi 4 или Wi-Fi 6, Bluetooth, IEEE 802.15.4 для Thread и Zigbee, — наличием USB и числом выводов. Здесь — сравнение по даташитам Espressif и страницы о выводах и платах.
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- Прошивка ESP32Загрузчик ПЗУ, GPIO0 и автосброс, write-flash и адреса, ошибки esptool и питание
- АЦП ESP32Каналы ADC1 и ADC2, ослабление, калибровка, нелинейность, Wi-Fi и analogRead
- ШИМ ESP32LEDC: 16 каналов и 8 таймеров, общие таймеры, API Arduino и ESP-IDF, плавное изменение
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- ESP8266ESP8266EX: статус, отличия от ESP32, выводы и загрузка, АЦП, сон через GPIO16
- ESP32: выводы и GPIO34 GPIO: функции, свободные выводы, только входы, флеш-память, strapping, JTAG, токи
- ESP32-S3: выводы и GPIO45 GPIO: функции, свободные и занятые выводы, флеш и PSRAM, strapping, USB, JTAG, токи
- ESP32-C3: выводы и GPIO22 GPIO: функции, свободные и занятые выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-C6: выводы и GPIO30 или 22 GPIO: функции, свободные выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-H2: выводы и GPIO19 GPIO: функции, выводы LP, свободные выводы, strapping, USB, JTAG, токи
- ESP32-S2: выводы и GPIO43 GPIO: функции, свободные выводы, флеш и PSRAM, strapping, USB OTG, JTAG, токи
- ESP32-C5: выводы и GPIO29 GPIO: функции, свободные выводы, флеш и PSRAM, strapping, USB, JTAG, токи
- ESP32-C2: выводы и GPIO14 GPIO: функции, свободные выводы, strapping, JTAG, UART0, кварц, токи
- ESP32-WROOM-32E: выводы модуля38 выводов: GPIO и функции, занятые и невыведенные, варианты, питание
- ESP32-S3-WROOM-1: выводы модуля41 вывод: GPIO и функции, IO35–37 и PSRAM, варианты памяти, питание
- ESP32-C3-MINI-1: выводы модуля53 площадки, 15 GPIO: функции, strapping, USB, варианты, питание
- ESP32-WROVER-E: выводы модуля38 выводов: GPIO и функции, GPIO16/17 и PSRAM, варианты, питание
- ESP32-C6-WROOM-1: выводы модуля29 выводов, 23 GPIO: функции, LP, SDIO, strapping, USB, варианты, питание
- ESP32-C3-WROOM-02: выводы модуля19 выводов, 15 GPIO: функции, strapping, USB, UART, варианты, питание
- ESP32-S3-MINI-1: выводы модуля65 площадок, 39 GPIO: функции, IO26 и PSRAM, strapping, USB, варианты
- ESP32-H2-MINI-1: выводы модуля53 площадки, 19 GPIO: функции, VBAT, strapping, USB, варианты
- ESP32-C5-WROOM-1: выводы модуля29 выводов, 22 GPIO: функции, IO15 и PSRAM, strapping, USB, варианты
- ESP8684-MINI-1: выводы модуля53 площадки, 14 GPIO: функции, strapping, UART0, варианты, питание
ESP32 — общее имя семейства микросхем Espressif Systems со встроенным радио. Первый ESP32 вышел на двух ядрах Xtensa LX6; следующие поколения разошлись в две ветки: S — на ядрах Xtensa LX7 и C, H, P — на ядрах RISC-V. Программы для всех них собирают в среде разработки Espressif ESP-IDF, но выводы, радио и обвязка загрузки у чипов разные.
Чипы Espressif
Таблица собрана из данных: каждое число найдено в даташите чипа (список — в источниках), а ядра, интерфейсы и радио сверены с заголовками ESP-IDF. Подробные характеристики, исполнения с памятью в корпусе и температурные диапазоны — на страницах чипов. По ссылке в названии — выводы чипа: все GPIO с функциями и ограничениями. Выводы модулей — на страницах ESP32-WROOM-32E, ESP32-WROVER-E, ESP32-S3-WROOM-1, ESP32-S3-MINI-1, ESP32-C3-MINI-1, ESP32-C3-WROOM-02, ESP32-C5-WROOM-1, ESP32-C6-WROOM-1, ESP32-H2-MINI-1 и ESP8684-MINI-1.
| Чип | Ядро | Частота | ОЗУ | Радио | USB | GPIO | Корпус |
|---|---|---|---|---|---|---|---|
| ESP32 | Xtensa LX6, 1 или 2 ядра | до 240 МГц | 520 КБ | Wi-Fi 4, Bluetooth 4.2 и LE | — | 34 | QFN48, 5×5 или 6×6 мм |
| ESP32-S2 | Xtensa LX7, 1 ядро | до 240 МГц | 320 КБ | Wi-Fi 4 | OTG | 43 | QFN56, 7×7 мм |
| ESP32-S3 | Xtensa LX7, 2 ядра | до 240 МГц | 512 КБ | Wi-Fi 4, Bluetooth LE | OTG, Serial/JTAG | 45 | QFN56, 7×7 мм |
| ESP32-C2 (ESP8684) | RISC-V, 1 ядро | до 120 МГц | 272 КБ | Wi-Fi 4, Bluetooth LE | — | 14 | QFN24, 4×4 мм |
| ESP32-C3 | RISC-V, 1 ядро | до 160 МГц | 400 КБ | Wi-Fi 4, Bluetooth LE | Serial/JTAG | 22 или 16 | QFN32, 5×5 мм |
| ESP32-C5 | RISC-V, 1 ядро + LP-ядро | до 240 МГц, LP до 48 МГц | 384 КБ | Wi-Fi 6 2,4 и 5 ГГц, Bluetooth LE, 802.15.4 | Serial/JTAG | 29 | QFN48 или LGA48, 6×6 мм |
| ESP32-C6 | RISC-V, 1 ядро + LP-ядро | до 160 МГц, LP до 20 МГц | 512 КБ | Wi-Fi 6, Bluetooth LE, 802.15.4 | Serial/JTAG | 30 или 22 | QFN40 или QFN32, 5×5 мм |
| ESP32-H2 | RISC-V, 1 ядро | до 96 МГц | 320 КБ | Bluetooth LE, 802.15.4 | Serial/JTAG | 19 | QFN32, 4×4 мм |
| ESP32-P4 | RISC-V, 2 ядра + LP-ядро | до 400 МГц, LP до 40 МГц | 768 КБ HP L2MEM | — | OTG ×2, Serial/JTAG | 55 | QFN104, 10×10 мм |
«LP-ядро» — отдельное малопотребляющее ядро RISC-V в системе LP чипа, рядом с основным. Радио IEEE 802.15.4 нужно для сетей Thread и Zigbee. Группа ESP32-C2 выпускается под именем ESP8684. Даташит ESP32-P4 пока предварительный.
Как выбрать
- Нужен только Wi-Fi и дёшево — ESP32-C2 или ESP32-C3; у C3 есть USB для прошивки и отладки без моста USB-UART.
- Нужен классический Bluetooth (BR/EDR) — только исходный ESP32: остальные чипы поддерживают лишь Bluetooth LE.
- Много выводов, USB OTG, обработка данных — ESP32-S3: два ядра на 240 МГц и 45 GPIO.
- Wi-Fi 6, Thread и Zigbee — ESP32-C6, а если нужен диапазон 5 ГГц — ESP32-C5; для узлов Thread и Zigbee без Wi-Fi — ESP32-H2.
- Производительность без радио — ESP32-P4: два ядра на 400 МГц и PSRAM в корпусе.
Выводы и загрузка
У каждого чипа несколько GPIO при сбросе выбирают режим загрузки: запуск программы или приём прошивки. Внешняя схема, которая в этот момент тянет их не в ту сторону, мешает запуску: плата перестаёт прошиваться или не стартует после подключения датчика. Эти выводы для всех чипов собраны на странице «Strapping-выводы ESP32». Все выводы чипов с функциями, номерами выводов корпуса и ограничениями — на страницах ESP32, ESP32-S2, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6 и ESP32-H2.
Какие выводы годятся для аналоговых сигналов и как получить точные милливольты — в статье «АЦП ESP32», режимы сна и пробуждение — в статье «Глубокий сон ESP32», каналы и таймеры ШИМ — в статье «ШИМ ESP32», прошивка через esptool и её ошибки — в статье «Прошивка ESP32».
Распиновки плат: ESP32-DevKitC на модуле ESP32-WROOM-32E, а из более старого семейства ESP8266 — NodeMCU и WeMos D1 mini. Все платы — в разделе «Распиновка плат».
Частые вопросы
Чем ESP32-S3 отличается от ESP32?
Оба — на двух ядрах Xtensa с частотой до 240 МГц, но у ESP32 ядра LX6, а у S3 — LX7. ESP32 поддерживает классический Bluetooth 4.2 (BR/EDR) и Bluetooth LE, S3 — только Bluetooth LE 5, зато у него есть USB: контроллеры USB OTG и USB Serial/JTAG. У S3 больше выводов — 45 GPIO против 34, — и по-другому устроена обвязка загрузки: GPIO0, GPIO3, GPIO45, GPIO46 вместо GPIO0, GPIO2, GPIO5, GPIO12, GPIO15.
Какой ESP32 поддерживает Zigbee и Thread?
Радио IEEE 802.15.4, на котором работают Zigbee и Thread, есть у ESP32-C5, ESP32-C6 и ESP32-H2. У C5 и C6 оно стоит рядом с Wi-Fi 6 и Bluetooth LE, у H2 — только с Bluetooth LE, без Wi-Fi. ESP32-C5 к тому же работает в обоих диапазонах Wi-Fi — 2,4 и 5 ГГц.
У какого ESP32 нет Wi-Fi?
У ESP32-H2 — у него только Bluetooth LE и IEEE 802.15.4 — и у ESP32-P4: это микроконтроллер без радио, с двумя ядрами RISC-V на 400 МГц, PSRAM в корпусе и 55 GPIO.
Можно ли программировать ESP32-C3 через USB без отдельного преобразователя?
Да. У ESP32-C3, как у S3, C5, C6, H2 и P4, есть контроллер USB Serial/JTAG: через него записывают прошивку, получают консоль и отлаживают по JTAG. У классического ESP32 и ESP32-C2 USB нет — нужен мост USB-UART, как на плате ESP32-DevKitC.
Смотрите также
- МикроконтроллерыAVR, ARM Cortex-M, ESP32, PIC, MSP430: архитектура и выбор
- Espressif SystemsESP8266 и ESP32: линейки, модули, расшифровка N16R8 и FH4X, сроки выпуска
- ESP32: выводы и GPIO34 GPIO: функции, свободные выводы, только входы, флеш-память, strapping, JTAG, токи
- ESP32-S2: выводы и GPIO43 GPIO: функции, свободные выводы, флеш и PSRAM, strapping, USB OTG, JTAG, токи
- ESP32-S3: выводы и GPIO45 GPIO: функции, свободные и занятые выводы, флеш и PSRAM, strapping, USB, JTAG, токи
- ESP32-C2: выводы и GPIO14 GPIO: функции, свободные выводы, strapping, JTAG, UART0, кварц, токи
- ESP32-C3: выводы и GPIO22 GPIO: функции, свободные и занятые выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-C5: выводы и GPIO29 GPIO: функции, свободные выводы, флеш и PSRAM, strapping, USB, JTAG, токи
- ESP32-C6: выводы и GPIO30 или 22 GPIO: функции, свободные выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-H2: выводы и GPIO19 GPIO: функции, выводы LP, свободные выводы, strapping, USB, JTAG, токи
- АЦП ESP32Каналы ADC1 и ADC2, ослабление, калибровка, нелинейность, Wi-Fi и analogRead
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- ШИМ ESP32LEDC: 16 каналов и 8 таймеров, общие таймеры, API Arduino и ESP-IDF, плавное изменение
- Прошивка ESP32Загрузчик ПЗУ, GPIO0 и автосброс, write-flash и адреса, ошибки esptool и питание
- ESP8266ESP8266EX: статус, отличия от ESP32, выводы и загрузка, АЦП, сон через GPIO16
- ESP32-DevKitC V438 контактов, АЦП, сенсоры, обвязка загрузки, питание, прошивка
- NodeMCU ESP8266D0–D10 и GPIO, выводы загрузки, A0, питание, прошивка
- Wemos D1 mini16 контактов, GPIO, выводы загрузки, A0, питание, I²C
- ARM Cortex-MЯдра M0–M85: архитектуры, FPU, DSP, MPU, TrustZone, выбор
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК