Перейти к содержанию

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 и страницы о выводах и платах.

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.

ЧипЯдроЧастотаОЗУРадиоUSBGPIOКорпус
ESP32Xtensa LX6, 1 или 2 ядрадо 240 МГц520 КБWi-Fi 4, Bluetooth 4.2 и LE—34QFN48, 5×5 или 6×6 мм
ESP32-S2Xtensa LX7, 1 ядродо 240 МГц320 КБWi-Fi 4OTG43QFN56, 7×7 мм
ESP32-S3Xtensa LX7, 2 ядрадо 240 МГц512 КБWi-Fi 4, Bluetooth LEOTG, Serial/JTAG45QFN56, 7×7 мм
ESP32-C2 (ESP8684)RISC-V, 1 ядродо 120 МГц272 КБWi-Fi 4, Bluetooth LE—14QFN24, 4×4 мм
ESP32-C3RISC-V, 1 ядродо 160 МГц400 КБWi-Fi 4, Bluetooth LESerial/JTAG22 или 16QFN32, 5×5 мм
ESP32-C5RISC-V, 1 ядро + LP-ядродо 240 МГц, LP до 48 МГц384 КБWi-Fi 6 2,4 и 5 ГГц, Bluetooth LE, 802.15.4Serial/JTAG29QFN48 или LGA48, 6×6 мм
ESP32-C6RISC-V, 1 ядро + LP-ядродо 160 МГц, LP до 20 МГц512 КБWi-Fi 6, Bluetooth LE, 802.15.4Serial/JTAG30 или 22QFN40 или QFN32, 5×5 мм
ESP32-H2RISC-V, 1 ядродо 96 МГц320 КБBluetooth LE, 802.15.4Serial/JTAG19QFN32, 4×4 мм
ESP32-P4RISC-V, 2 ядра + LP-ядродо 400 МГц, LP до 40 МГц768 КБ HP L2MEM—OTG ×2, Serial/JTAG55QFN104, 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.