Сравнение ESP32 и ESP32-S3 Печать
Добавил(а) microsin   

Хотя оба процессора ESP32 и ESP32-S3 относятся к общему ESP-семейству компании Espressif и поддерживаются одним и тем же SDK ESP-IDF [1], все же они существенно различаются по внутреннему устройству и ресурсам. В этой статье дан обзор этих различий, которые могут повлиять на их выбор для конкретного применения.

В следующей таблице приведено краткое описание основных отличий ESP32 и ESP32-S3:

Фича ESP32 (Classic) ESP32-S3 Что лучше и применение
Ядро Dual-Core Xtensa LX6 Dual-Core 32-bit LX7 + ULP RISC-V Coprocessors ESP32-S3. Более современная архитектура, больше производительность на один такт, намного более мощный сопроцессор с низким энергопотреблением (ULP [2]).
Частота тактов CPU До 240 МГц До 240 МГц Схожие значения. Максимальные частоты тактов одинаковы, однако ядро LX7 в ESP32-S3 более эффективное.
SRAM ~520KB 512KB SRAM + 16KB RTC FAST RAM ESP32-S3 в целом победил. Хотя объем ОЗУ почти одинаковый, архитектура памяти ESP32-S3 более современная и эффективная. Большое преимущество - доступ к памяти со стороны сопроцессора ULP.
Поддержка Flash Внешняя SPI Flash Octal SPI Flash (до 16MB octal PSRAM) ESP32-S3. Более быстрый доступ к памяти, что драматически важно для приложений, интенсивно обрабатывающих данные.
Wi-Fi 802.11 b/g/n
(2.4 ГГц)
802.11
b/g/n
(2.4 ГГц)
Нет победителя. Оба чипа поддерживают одинаковые спецификации Wi-Fi ver.4.
Bluetooth Classic Bluetooth (BR/EDR) и Bluetooth Low Energy 4.2 Bluetooth 5 и Bluetooth Mesh Скорее всего победил ESP32-S3. Нет Classic Bluetooth, однако более современный и богатый фичами стек BLE 5.0.
Порты GPIO ~34 45 ESP32-S3. Значительно больше выводов корпуса, доступных для GPIO и периферийных устройств.
Периферийные устройства I2C, I2S, SPI, UART, ADC, DAC, и т. д. Все, что есть в ESP32 плюс следующее: USB OTG, USB JTAG, интерфейс LCD, интерфейс Camera, ускорители протоколов AES и RSA ESP32-S3 явный победитель. USB и аппаратные ускорители криптографии, поддержка графики меняют условия игры.
Безопасность Basic Flash Encryption, Secure Boot Enhanced Flash Encryption, Secure Boot, World Controller (изоляция наподобие TrustZone), Digital Signature Peripheral ESP32-S3, изначально предназначенный для более защищенных приложений.
Разработка Зрелое сообщество, обширная база кода, очень много обучающих руководств. Отличная поддержка ESP-IDF, разрастающееся комьюнити. Хорошая поддержка Arduino. ESP32. Классика имеет огромное преимущество в ресурсах сообщества.
Цена Обычно ниже Обычно несколько выше ESP32. Классика часто предоставляет самый недорогой вариант железа, больше выбор плат разработчика.
Использование Обычные устройства IoT, клиенты MQTT, мосты Wi-Fi/Bluetooth, DIY-проекты. AIoT, HMI, устройства USB, приложения с камерой/экраном, защищенные коммерческие изделия. Каждый из чипов находит свою сферу применения.

[Разбор различий]

1. Вычислительная мощность и память

ESP32: использует более старые двухядерные процессоры Xtensa LX6. Они достаточно мощные, но менее эффективные в сравнении с современными архитектурами.

ESP32-S3: использует более новые двухядерные процессоры Xtensa LX7, которые предоставляют большее быстродействие на той же самой частоте тактов (максимум 240 МГц). Но самый большой апгрейд заключается в двух ULP (Ultra Low Power) RISC-V сопроцессорах. Они намного более эффективны и проще в программировании, чем ULP FSM сопроцессор ESP32 [2], позволяя реализовывать сложные задачи (наподобие обработки данных датчика или переключение выводов GPIO) в режиме глубокого сна (deep sleep mode) чипа.

2. Соединение с внешним миром

Bluetooth: здесь есть большие отличия. ESP32 поддерживает Bluetooth Classic (например, для передачи звука) и BLE 4.2. У ESP32-S3 выброшен Bluetooth Classic, но сделан апгрейд до BLE 5.0, который предоставляет увеличенный радиус действия, повышенные скорости и расширения оповещения (advertising extensions), делая чип ESP32-S3 идеальным решением для mesh-сетей и надежных приложений BLE.

3. Периферийные устройства и интерфейсы (ESP32-S3 несомненный лидер)

В ESP32-S3 есть выделенные периферийные устройства, которых нет в классическом ESP32:

USB OTG (On-The-Go): у ESP32-S3 есть поддержка традиционного интерфейса full-speed USB. Это позволяет ему работать как устройство USB (например, представляться мышью, клавиатурой, COM-портом или MIDI-контроллером при подключении к компьютеру), или как устройство хоста USB (т. е. появляется возможность для ESP32-S3 читать флешки USB или подключить внешнюю клавиатуру). Это пожалуй самая важная особенность чипа ESP32-S3.

USB JTAG: встроенная отладка через USB, устраняющая необходимость во внешнем JTAG-адаптере для отладки кода. Это значительно упрощает разработку.

Интерфейсы LCD & Camera: выделенные параллельные интерфейсы I/O для простого подключения дисплеев (например ILI9341) и камер (например OV2640) без программного управления портами GPIO (bit-banging), что намного быстрее и эффективнее.

Аппаратные ускорители: выделенная аппаратура для AES (шифрование), SHA (вычисление хэшей) и RSA (криптография с публичным ключом). Это ускоряет безопасные коммуникации (TLS/SSL) и делает их более эффективными.

4. Безопасность

ESP32-S3 разработан для более защищенных приложений:

World Controller. Это простая форма функционала TrustZone. Позволяет разделить код и память миры "Secure" и "Non-Secure", что помогает изолировать критические секреты (наподобие приватных ключей) от кода основного приложения.

Digital Signature Peripheral. Позволяет устройству безопасно подписывать данные без предоставления приватного ключа основному CPU, когда ключ нужен для безопасной загрузки (secure boot) и протоколов проверки доступа (attestation protocols).

5. GPIO и расширение памяти

У корпуса ESP32-S3 просто больше выводов more GPIO (45 против примерно 34 у классического ESP32), что дает больше гибкости для подключения датчиков, актуаторов, реле, кнопок, светодиодов и других компонентов.

Поддержка для Octal SPI Flash/PSRAM означает, что можно подключить более быстрые и большие по объему памяти внешние чипы памяти, что бывает важным для задач интенсивной обработки данных наподобие буферизации картинок камеры или сохранение сложной графики для дисплеев.

[Какой из чипов выбрать?]

Выбирайте Classic ESP32 если:

• Вы начинающий разработчик, или работаете над некоммерческим DIY-проектом. Поддержка сообщества не имеет себе равных.
• Ваш проект требует Bluetooth Classic для звука (A2DP) или профиля классического последовательного порта (serial port profile, SPP).
• Вам необходимо проверенное, недорогое решение для базового устройства Интернета вещей (IoT, например для коммутатора WiFi, узла сбора информации с датчиков, регистратора данных).
• Вам не нужен интерфейс USB, продвинутые графические возможности или улучшенные функции безопасности.

Выбирайте ESP32-S3 если:

• Вы разрабатываете коммерческий продукт, где безопасность имеет большое значение.
• Вашему проекту нужен функционал USB (возможность получить устройство HID, mass storage, и т. д.).
• Вам нужно выводить данные на экран (LCD) с хорошим качеством, или организовать интерфейс с камерой.
• Вы работаете с технологией машинного обучения (Machine Learning, TinyML) или распознаванием голоса, и нужна повышенная производительность ULP RISC-V.
• Вам нужна лучшая производительность и фичи BLE 5.0.
• Важно удобство отладки с помощью встроенного USB JTAG.

[Выводы]

ESP32 надежная, хорошо изученная рабочая лошадка. Он обладает большими возможностями и долго останется лучшим выбором для бесчисленных проектов благодаря своей цене и экосистеме.

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

[Ссылки]

1. Установка среды разработки ESP-IDF для ESP32.
2. ESP32: программирование сопроцессора ULP.