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

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

Данные — с титульных страниц и из первых разделов даташитов (список — в источниках).

ЧипЯдроЧастотаРадиоUSBGPIOКорпус
ESP32Xtensa LX6, 1 или 2до 240 МГцWi-Fi 4 (802.11 b/g/n), Bluetooth 4.2 и LE—34QFN 5×5 или 6×6 мм
ESP32-S2Xtensa LX7, 1до 240 МГцWi-Fi 4OTG43QFN56, 7×7 мм
ESP32-S3Xtensa LX7, 2до 240 МГцWi-Fi 4, Bluetooth 5 (LE)OTG, Serial/JTAG45QFN56, 7×7 мм
ESP32-C2 (ESP8684)RISC-V, 1до 120 МГцWi-Fi 4, Bluetooth 5 (LE)—14QFN24, 4×4 мм
ESP32-C3RISC-V, 1до 160 МГцWi-Fi 4, Bluetooth 5 (LE)Serial/JTAG22 или 16QFN32, 5×5 мм
ESP32-C5RISC-V, 1 + LPдо 240 МГцWi-Fi 6 2,4 и 5 ГГц, Bluetooth 5 (LE), 802.15.4Serial/JTAG29QFN48 или LGA48, 6×6 мм
ESP32-C6RISC-V, 1 + LPдо 160 МГцWi-Fi 6 2,4 ГГц, Bluetooth 5 (LE), 802.15.4Serial/JTAG30 или 22QFN40 или QFN32, 5×5 мм
ESP32-H2RISC-V, 1до 96 МГцBluetooth 5 (LE), 802.15.4Serial/JTAG19QFN32, 4×4 мм
ESP32-P4RISC-V, 2 + LPдо 400 МГц—OTG, Serial/JTAG55QFN104, 10×10 мм

«LP» — отдельное малопотребляющее ядро RISC-V: до 48 МГц у C5, до 20 МГц у C6, до 40 МГц у P4. Радио IEEE 802.15.4 нужно для сетей Thread и Zigbee. Группа ESP32-C2 выпускается под именем ESP8684. Даташит ESP32-P4 пока предварительный (Pre-release v0.7).

Как выбрать

  • Нужен только 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-DevKitC на модуле ESP32-WROOM-32E, а из более старого семейства ESP8266 — NodeMCU и WeMos D1 mini. Все платы — в разделе «Распиновка плат».

Готовятся к публикации

ESP8266: отличия, выводы и спящие режимы · АЦП ESP32 · Глубокий сон ESP32 · ШИМ ESP32 (LEDC) · Прошивка ESP32: esptool и режимы загрузки

Частые вопросы

Чем 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.