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

Добрый день, уважаемые читатели!

Данная статья представляет собой перевод технического паспорта SoC ESP32 с сайта производителя на русский язык, актуального на текущий момент (ESP32 Series Datasheet v4.8).  Таблицы не переводились.

Для профессионального разработчика может быть полезнее Техническое справочное руководство ESP32 (EN), так как в нем содержится гораздо более подробная информация. Но для ознакомления с возможностями и электрическими характеристиками данный технический паспорт подходит как нельзя лучше.

Предупреждение! Со временем некоторая информация в переводе может устареть.


ESP32 — это комбинированный чип, совмещающий интерфейсы Wi-Fi и Bluetooth 2,4 ГГц, разработанный с использованием маломощной технологии TSMC 40 нм. Он разработан для достижения максимальной производительности, предоставляя пользователям универсальность и надежность в самых разных приложениях и сценариях питания.

Серия ESP32 (классическая серия – прим. перев.) включает чипы: ESP32-D0WD-V3, ESP32-D0WDR2-V3, ESP32-U4WDH, ESP32-S0WD (NRND*), ESP32-D0WDQ6-V3 (NRND*), ESP32-D0WD (NRND*) и ESP32-D0WDQ6 (NRND*), среди которых:

  • ESP32-S0WD (NRND*), ESP32-D0WD (NRND*) и ESP32-D0WDQ6 (NRND*) основаны на чипах версии v1 или v1.1.
  • ESP32-D0WD-V3, ESP32-D0WDR2-V3, ESP32-U4WDH и ESP32-D0WDQ6-V3 (NRND*) основаны на чипах версии v3.0 или v3.1.

* примечание перев.: NRND – снято с производства и не рекомендуется к использованию в новых проектах

Подробную информацию о номерах изделий и информации для заказа см. в разделе 1 Сравнение серий ESP32. Подробную информацию о версиях чипов см. в руководстве пользователя ESP32 Chip Revision v3.0 и ESP32 Series SoC Errata.

Функциональная блок-схема SoC показана ниже.

 


Возможности

Wi-Fi

  • 802.11b/g/n
  • 802.11n (2.4 GHz), up to 150 Mbps
  • WMM
  • TX/RX A-MPDU, RX A-MSDU
  • Немедленный Block ACK
  • Дефрагментация передачи
  • Автоматический мониторинг маяков (hardware TSF)
  • Четыре виртуальных интерфейса Wi-Fi
  • Одновременная поддержка режимов Infrastructure Station, SoftAP и Promiscuous
    Обратите внимание, что когда ESP32 находится в режиме Station, выполняя сканирование, канал SoftAP будет изменен.
  • Разнесение антенн

Bluetooth®

  • Соответствие спецификациям Bluetooth v4.2 BR/EDR и Bluetooth LE
  • Передатчик class 1, class 2 и class 3 без внешнего усилителя мощности
  • Улучшенный контроль мощности
  • Мощность передачи +9 dBm
  • Приемник NZIF с чувствительностью Bluetooth LE –94 dBm
  • Адаптивная скачкообразная перестройка частоты (AFH)
  • Стандартный HCI на базе SDIO/SPI/UART
  • Высокоскоростной UART HCI, до 4 Мбит/с
  • Двухрежимный контроллер Bluetooth 4.2 BR/EDR и Bluetooth LE
  • Синхронный режим, ориентированный на соединение/расширенный (SCO/eSCO)
  • CVSD и SBC для аудиопотока
  • Bluetooth Piconet и Scatternet
  • Многочисленные соединения в классическом Bluetooth и Bluetooth LE
  • Одновременная реклама и сканирование

CPU и память

  • Одно/двухъядерный 32-битный микропроцессор LX6 Xtensa®
  • CoreMark® score:
    • 1 ядро на 240 MHz: 504.85 CoreMark; 2.10 CoreMark/MHz
    • 2 ядра на 240 MHz: 994.26 CoreMark; 4.14 CoreMark/MHz
  • 448 KB ROM
  • 520 KB SRAM
  • 16 KB SRAM в RTC
  • QSPI поддерживает несколько чипов FLASH/SRAM

Таймеры и генераторы опорных частот

  • Внутренний генератор 8 МГц с калибровкой
  • Внутренний RC-генератор с калибровкой
  • Внешний кварцевый генератор 2 МГц ~ 60 МГц (40 МГц только для Wi-Fi/Bluetooth)
  • Внешний кварцевый генератор 32,768 кГц для RTC с калибровкой
  • Две группы таймеров, включая 2 64-битных таймера и 1 главный сторожевой таймер в каждой группе
  • Один таймер RTC
  • RTC-сторожевой таймер

Периферийные интерфейсы

  • 34 программируемых GPIO, из них часть имеют ограничения:
    • Пять strapping GPIO
    • Шесть GPIO, которые работают только как входы
    • Шесть GPIO используется для встроенной flash-памяти (ESP32-U4WDH) и встроенной PSRAM (ESP32-D0WDR2-V3)
  • 18 каналов 12-битного АЦП последовательного приближения
  • Два 8-битных ЦАП
  • 10 сенсорных датчиков
  • Четыре интерфейса SPI
  • Два интерфейса I2S
  • Два интерфейса I2C
  • Три интерфейса UART
  • Один хост SD/eMMC/SDIO
  • Один ведомый SDIO/SPI
  • Контроллер подсчета импульсов
  • Интерфейс Ethernet MAC с выделенным DMA и поддержкой IEEE 1588
  • TWAI®, совместимый с ISO 11898-1 (спецификация CAN 2.0)
  • RMT (TX/RX)
  • PWM для управления двигателем
  • До 16 каналов LED PWM

Управление питанием

  • Управление питанием посредством выбора тактовой частоты, рабочего цикла, режимов работы Wi-Fi и индивидуального управления питанием внутренних компонентов
  • Пять режимов питания, разработанных для типичных сценариев: активный, модемный сон, легкий сон, глубокий сон, гибернация
  • Потребляемый ток в режиме глубокого сна составляет не более 10 мкА
  • Сопроцессор с ультранизким энергопотреблением (ULP)
  • Память RTC остается доступной в режиме глубокого сна

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

  • Безопасная загрузка
  • Шифрование Flash-памяти
  • 1024-битный OTP, до 768-бит для приложений
  • Криптографическое аппаратное ускорение:
    • AES
    • Hash (SHA-2)
    • RSA
    • ECC
  • Генератор случайных чисел на основе шума радиоканалов (RNG)

 


Применение

Благодаря низкому энергопотреблению ESP32 является идеальным выбором для устройств IoT в следующих областях:

  • Умный дом
  • Промышленная автоматизация
  • Здравоохранение
  • Потребительская электроника
  • Умное сельское хозяйство
  • POS-терминалы
  • Сервисные роботы
  • Аудиоустройства
  • Универсальные маломощные концентраторы датчиков IoT
  • Универсальные маломощные регистраторы данных IoT
  • Камеры для потоковой передачи видео
  • Распознавание речи
  • ​​Распознавание изображений
  • Сетевая карта SDIO Wi-Fi + Bluetooth
  • Датчики касания и приближения

Оглавление

1. Сравнение чипов серии ESP32
1.1. Номенклатура
1.2. Сравнение чипов

2. Контакты
2.1. Расположение контактов
2.2. Обзор функций контактов
2.3. Цифровые порты ввода-вывода
2.3.1 Ограничения для GPIO и RTC_GPIO
2.4. Аналоговые выводы
2.5. Выводы питания
2.5.1. Контакты питания
2.5.2. Схема питания
2.5.3. Включение и сброс чипа
2.6. Выводы, используемые для подключения флэш-памяти и PSRAM

3. Конфигурация чипа
3.1 Управление режимом загрузки чипа
3.2 Управление напряжением внутреннего LDO (VDD_SDIO)
3.3 Управление печатью U0TXD
3.4 Управление синхронизацией ведомого устройства SDIO

4. Функциональное описание
4.1 CPU и память
4.1.1 CPU
4.1.2 Внутренняя память
4.1.3 Внешняя флэш-память и ОЗУ
4.1.4 Структура адресного пространства
4.1.5 Кэш
4.2 Системные часы
4.2.1 Часы CPU
4.2.2 Часы RTC
4.2.3 Часы audio PLL
4.3 RTC и управление низким энергопотреблением
4.3.1 Блок управления питанием (PMU)
4.3.2 Сопроцессор сверхнизкого энергопотребления ULP
4.4 Таймеры и сторожевые таймеры
4.4.1 Таймеры общего назначения
4.4.2 Сторожевые таймеры
4.5 Криптографические аппаратные ускорители
4.6 Радиоканалы и Wi-Fi
4.6.1 Приемник 2,4 ГГц
4.6.2 Передатчик 2,4 ГГц
4.6.3 Генератор несущей частоты
4.6.4 WiFi радио
4.6.5 Wi-Fi MAC
4.7 Bluetooth
4.7.1 Bluetooth Radio
4.7.2 Bluetooth интерфейс
4.7.3 Стек Bluetooth
4.7.4 Контроллер связи Bluetooth
4.8 Цифровые периферийные устройства
4.8.1 Интерфейс ввода-вывода общего назначения (GPIO)
4.8.2 Последовательный периферийный интерфейс (SPI)
4.8.3 Универсальный асинхронный приемник-передатчик (UART)
4.8.4 Интерфейс I2C
4.8.5 Интерфейс I2S
4.8.6 Периферийное устройство дистанционного управления
4.8.7 Контроллер счетчика импульсов (PCNT)
4.8.8 ШИМ-контроллер для светодиодов
4.8.9 Управление двигателями (Motor Control PWM)
4.8.10 Хост-контроллер SD/SDIO/MMC
4.8.11 Ведомый контроллер SDIO/SPI
4.8.12 Контроллер TWAI®
4.8.13 Интерфейс Ethernet MAC
4.9 Аналоговые периферийные устройства
4.9.1 Аналого-цифровой преобразователь (АЦП / ADC)
4.9.2 Цифро-аналоговый преобразователь (ЦАП / DAC)
4.9.3 Датчик касания
4.10 Конфигурации периферийных контактов

5 Электрические характеристики
5.1 Предельные значения
5.2 Рекомендуемые характеристики источника питания
5.3 Характеристики DC (3,3 В, 25 °C)
5.4 Потребление тока RF в активном режиме
5.5 Надежность
5.6 Wi-Fi Radio
5.7 Bluetooth Radio
5.7.1 Приемник – базовая скорость передачи данных
5.7.2 Передатчик – базовая скорость передачи данных
5.7.3 Приемник – повышенная скорость передачи данных
5.7.4 Передатчик – повышенная скорость передачи данных
5.8 Bluetooth LE Радио
5.8.1 Приемник
5.8.2 Передатчик

6 Упаковка

Сопутствующая документация и ресурсы

Приложение A. Списки выводов ESP32
A.1. Примечания к спискам выводов ESP32
A.2. GPIO_Matrix
A.3. Ethernet_MAC
A.4. IO_MUX


1. Сравнение чипов серии ESP32

1.1. Номенклатура

1.2. Сравнение чипов

Примечания:

  1. Все вышеперечисленные чипы поддерживают соединения Wi-Fi b/g/n + Bluetooth/Bluetooth LE Dual Mode. Подробную информацию о маркировке и упаковке чипа см. в разделе 6. Упаковка.
  2. Различия между версиями чипа ESP32 и как их различать, описаны в ESP32 Series SoC Errata.
  3. ESP32-U4WDH будет выпускаться как двухъядерный, а не как одноядерный. Более подробную информацию см. в PCN-2021-021.
  4. Чипы будут выпускаться с версией чипа v3.1 внутри. Более подробную информацию см. в PCN20220901.
  5. Чипы будут выпускаться с версией чипа v1.1 внутри. Более подробную информацию см. в PCN20220901.
  6. Флэш-память внутри чипа имеет следующие характеристики:
    – Более 100 000 циклов записи/стирания
    – Более 20 лет хранения данных

 


2. Контакты

2.1. Расположение контактов

2.2. Обзор функций контактов

Примечания:

  1. Наименования функций:
    • CLK_OUT… – выход тактовой частоты
    • SPICLK, HSPICLK, VSPICLK – тактовые сигналы SPI
    • HS…_CLK SDIO – тактовый сигнал Master
    • SD_CLK SDIO – тактовый сигнал Slave
    • EMAC_TX_CLK, EMAC_RX_CLK – тактовый сигнал EMAC
    • U…_RTS, U…_CTS – аппаратные сигналы управления потоком UART0/1/2
    • U…_RXD, U…_TXD – сигналы приема и передачи данных UART0/1/2
    • MTMS, MTDI, MTCK, MTDO – JTAG интерфейс
    • GPIO… – универсальные контакты ввода/вывода, маршрутизируемыми через матрицу GPIO. Для получения более подробной информации о матрице GPIO см. Техническое справочное руководство ESP32 > Глава IO MUX и матрица GPIO
  2. Относительно выделенных цветом ячеек см. раздел 2.3.1 Ограничения для GPIO и RTC_GPIO.
  3. Краткое справочное руководство по использованию контактов IO_MUX, Ethernet MAC и GPIO Matrix ESP32 см. в Приложении А «Перечень выводов ESP32».

 

2.3. Цифровые порты ввода-вывода

2.3.1 Ограничения для GPIO и RTC_GPIO

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

В Таблице 2-1 Обзор контактов выделены цветом некоторые ограничения контактов:

  •  GPIO  — только входные контакты, режим работы на выход не поддерживается, отсутствуют подтягивающие резисторы.
  •  GPIO  — выделен для связи с флэш-памятью/PSRAM в корпусе и НЕ рекомендуется для других целей. Подробнее см. Раздел 2.6 Сопоставление выводов между чипом и FLASH/PSRAM.
  •  GPIO  — имеют одну из следующих важных функций:
    • Strapping pins — должны иметь определенные логические уровни при запуске контроллера. См. Раздел 3 Конфигурации загрузки.
    • Интерфейс JTAG — часто используется для отладки.
    • Интерфейс UART — используется для отладки и программирования.

См. также Приложение A.1 — Примечания к перечню контактов ESP32.

 

2.4. Аналоговые выводы

Примечания:

1 – Радиоканал: входной сигнал усилителя с низким уровнем шума (LNA), выходной сигнал усилителя мощности (PA)
4 – Высокий уровень: чип включен (питание включено); низкий уровень: чип выключен (питание выключено). Примечание: не оставляйте вывод CHIP_PU плавающим.
53, 54 – Вход/выход внешнего тактового сигнала, подключенный к кварцевому резонатору или генератору. P/N означает положительный/отрицательный выводы дифференциального тактового сигнала.

 

2.5 Выводы питания

2.5.1 Контакты питания

Цифровые выводы ESP32 разделены на три различных домена питания:

  • VDD3P3_RTC
  • VDD3P3_CPU
  • VDD_SDIO

Примечания:

  1. VDD3P3_RTC также является входным источником питания для RTC и CPU.
  2. VDD3P3_CPU также является входным источником питания для CPU.
  3. VDD3P3_SDIO подключается к выходу внутреннего LDO, вход которого — VDD3P3_RTC. Когда VDD3P3_SDIO подключен к той же шине печатной платы вместе с VDD3P3_RTC, внутренний LDO автоматически отключается.

2.5.2 Схема питания

Схема питания показана на рисунке 2-3 Схема питания ESP32.

Внутренний LDO может быть настроен на 1,8 В или на то же напряжение, что и VDD3P3_RTC. Его можно отключить программно, чтобы минимизировать ток FLASH/SRAM в режиме глубокого сна.

 

2.5.3 Включение и сброс чипа

После подачи питания на чип его шинам питания требуется короткое время для стабилизации. После этого контакт CHIP_PU, используемый для включения питания и сброса — необходимо подтянуть к высокому уровню, чтобы запустить чип. Информацию о CHIP_PU, а также о времени включения питания и сброса см. на рисунке 2-4 и в таблице 2-4.

  • В сценариях, когда ESP32 включается и выключается многократно путем переключения шин питания, в то время как на шине VDD33 находится конденсатор большой емкости, а CHIP_PU и VDD33 соединены, простое отключение шины питания и немедленное ее включение может привести к неполному циклу разряда конденсатора питания и невозможности адекватного сброса чипа. Поэтому в этом случае может потребоваться дополнительная цепь разряда для ускорения разряда большого конденсатора на шине VDD33, что обеспечит правильный сброс при включении питания при повторном включении ESP32.
  • Когда в качестве источника питания для чипов и модулей ESP32 используется автономная батарея, рекомендуется использовать супервизор напряжения питания, чтобы избежать сбоя загрузки из-за низкого напряжения. При этом рекомендуется подтянуть CHIP_PU к земле, если напряжение питания ESP32 ниже 2,3 В.

Примечания по питанию:

  • Рабочее напряжение ESP32 должно составлять от 2,3 В до 3,6 В. При использовании однополярного источника питания рекомендуемое напряжение источника питания составляет 3,3 В, а рекомендуемый выходной ток — 500 мА или более.
  • PSRAM и флэш-память питаются от VDD_SDIO. Если чип имеет встроенную флэш-память, напряжение VDD_SDIO определяется рабочим напряжением встроенной флэш-памяти. Если чип также подключается к внешней PSRAM, рабочее напряжение внешней PSRAM должно соответствовать рабочему напряжению встроенной флэш-памяти. Это также применимо, если чип имеет встроенную PSRAM, но также подключается к внешней флэш-памяти.
  • Если VDD_SDIO 1,8 В используется в качестве источника питания для внешней флэш-памяти/PSRAM, к VDD_SDIO следует добавить заземляющий резистор 2 кОм. Для проектирования схемы см. Руководство по проектированию оборудования ESP32.
  • Если три цифровых источника питания используются для управления периферийными устройствами, например, флэш-памятью 3,3 В, они должны соответствовать cпецификациям периферийных устройств.

 

 

2.6 Выводы, используемые для подключения флэш-памяти и PSRAM

Таблица 2-5 содержит сопоставление выводов между чипом и встроенной флэш-памятью/PSRAM. Перечисленные в таблице выводы чипа не рекомендуются для другого использования.

Для подключения шины данных между ESP32 и внешней флэш-памятью/PSRAM см. Таблицу 2-6

Примечания:

  • Поскольку встроенная флэш-память (ESP32-U4WDH) и встроенная PSRAM (ESP32-D0WDR2-V3) работают при напряжении 3,3 В, VDD_SDIO должен питаться от VDD3P3_RTC через резистор сопротивлением 6 Ом. См. Рисунок 2-3 Схема питания ESP32.
  • Если GPIO16 используется для подключения к сигналу CE# PSRAM, добавьте подтягивающий резистор на вывод GPIO16. См. Технический паспорт ESP32-WROVER-E > Рисунок схемы ESP32-WROVER-E.
  • Выводы SD_CLK и GPIO17 доступны для подключения к сигналу SCLK внешней PSRAM.
    • Если выбран вывод SD_CLK, будет сохранен один GPIO (т. е. GPIO17), который можно использовать для других целей. Это соединение прошло внутренние испытания, но соответствующая сертификация не завершена.
    • Либо используйте вывод GPIO17 для подключения к сигналу SCLK. Это соединение прошло соответствующую сертификацию, см. сертификаты для ESP32-WROVER-E. Выберите правильный вывод для вашего конкретного применения.

3 Конфигурация чипа

Чип позволяет настраивать перечисленные ниже параметры загрузки с помощью контактов обвязки strapping pins и битов eFuse при включении питания или аппаратном сбросе без взаимодействия с микроконтроллером.

  • Режим загрузки чипа
    • Контакты обвязки: GPIO0 и GPIO2
  • Внутреннее напряжение LDO (VDD_SDIO)
    • Контакт обвязки: MTDI
    • Бит eFuse: EFUSE_SDIO_FORCE и EFUSE_SDIO_TIEH
  • Печать U0TXD
    • Контакт обвязки: MTDO
  • Синхронизация ведомого устройства SDIO
    • Контакты обвязки: MTDO и GPIO5
  • Источник сигнала JTAG
    • Бит eFuse: EFUSE_DISABLE_JTAG

Значения по умолчанию для всех указанных выше битов eFuse равны 0, что означает, что они не прожжены. Учитывайте, что биты eFuse программируется только один раз – после того как любой бит eFuse запрограммирован на 1, его уже нельзя будет вернуть на 0. О том, как программировать биты eFuse, см. в Техническом справочном руководстве ESP32 > глава Контроллер eFuse.

Значения по умолчанию для strapping pins, а именно их логические уровни, определяются внутренними слабыми подтягивающими резисторами контактов при сбросе, если эти контакты не подключены ни к какой цепи или подключены к внешней высокоомной цепи.

Для изменения значений по умолчанию выводы strapping pins должны быть подключены к внешним подтягивающим резисторам. Если ESP32 используется в качестве устройства, подключенного к host MCU, уровни напряжения выводов обвязки также могут контролироваться host MCU.

Все выводы обвязки strapping pins имеют защелки. При сбросе системы защелки считывают значения битов соответствующих strapping pins и сохраняют их до тех пор, пока чип не будет выключен или сброшен. Состояния защелок не могут быть изменены каким-либо другим способом. Это делает значения выводов strapping pins доступными в течение всей работы чипа, а эти же выводы освобождаются для использования в качестве обычных выводов ввода-вывода после сброса.

Временные характеристики сигналов, подключенных к выводам strapping pins, должно соответствовать спецификациям времени установки и времени удержания в Таблице 3-2 и на Рисунке 3-1.

3.1 Управление режимом загрузки чипа

GPIO0 и GPIO2 управляют режимом загрузки после сброса. См. Таблицу 3-3 Управление режимом загрузки чипа.

Примечания:

  1. Жирным шрифтом выделены значения по умолчанию.
  2. Режим Joint Download Boot поддерживает следующие методы загрузки:
    • SDIO Download Boot
    • UART Download Boot

Подробная последовательность загрузки чипа приведена ниже 3-2.

uart_download_dis управляет поведением режима загрузки: он навсегда отключает режим загрузки, когда uart_download_dis установлен в 1 (действительно только для ESP32 ECO V3).

 

3.2 Управление напряжением внутреннего LDO (VDD_SDIO)

Требуемое напряжение VDD_SPI для чипов серии ESP32 можно найти в Таблице 1-1 Сравнение.

MTDI используется для выбора напряжения питания VDD_SDIO при сбросе:

  • MTDI = 0 (по умолчанию), вывод VDD_SDIO питается напрямую от VDD3P3_RTC. Обычно это напряжение составляет 3,3 В. Для получения дополнительной информации см. раздел 2.5.2 Схема питания.
  • MTDI = 1, вывод VDD_SDIO питается от внутреннего LDO 1,8 В.

Эту функциональность можно переопределить, установив EFUSE_SDIO_FORCE в 1, в этом случае EFUSE_SDIO_TIEH определяет напряжение VDD_SDIO:

  • EFUSE_SDIO_TIEH = 0, VDD_SDIO подключается к LDO 1,8 В.
  • EFUSE_SPI_TIEH = 1, VDD_SDIO подключается к VDD3P3_RTC.

 

3.3 Управление печатью U0TXD

Во время загрузки вывод MTDO можно использовать для управления печатью отладочных сообщений в U0TXD, как показано в таблице 3-4.

Примечания:

  1. Жирным шрифтом выделены значения по умолчанию.

 

3.4 Управление синхронизацией ведомого устройства SDIO

Strapping pins MTDO и GPIO5 можно использовать для управления синхронизацией ведомого устройства SDIO, см. Таблицу 3-5 Управление синхронизацией ведомого устройства SDIO.

Примечания:

  1. Жирным шрифтом выделены значения по умолчанию.

4 Функциональное описание

4.1 CPU и память

4.1.1 CPU

ESP32 содержит один или два маломощных 32-битных микропроцессора Xtensa® LX6 со следующими характеристиками:

  • 7-ступенчатый конвейер для поддержки тактовой частоты до 240 МГц (160 МГц для ESP32-S0WD (NRND))
  • 16/24-битный набор инструкций обеспечивает высокую плотность кода
  • Поддержка чисел с плавающей точкой
  • Поддержка инструкций DSP, таких как 32-битный множитель, 32-битный делитель и 40-битный MAC
  • Поддержка 32 векторов прерываний из примерно 70 источников

Интерфейсы с одним/двумя ЦП включают:

  • Интерфейс Xtensa RAM/ROM для инструкций и данных
  • Интерфейс локальной памяти Xtensa для быстрого доступа к периферийным регистрам
  • Внешние и внутренние источники прерываний
  • JTAG для отладки

Информацию об архитектуре набора инструкций Xtensa® см. в разделе Архитектура набора инструкций Xtensa® (ICA).

 

4.1.2 Внутренняя память

Внутренняя память ESP32 включает:

  • 448 КБ ПЗУ для загрузки и основных функций
  • 520 КБ встроенной SRAM для данных и инструкций
  • 8 КБ SRAM в RTC, которая называется RTC FAST Memory и может использоваться для хранения данных; к ней обращается основной ЦП во время загрузки RTC из режима глубокого сна.
  • 8 КБ SRAM в RTC, которая называется RTC SLOW Memory и может использоваться сопроцессором ULP во время режима глубокого сна.
  • 1 Кбит eFuse: 256 бит используются для системы (MAC-адрес и конфигурация чипа), а оставшиеся 768 бит зарезервированы для пользовательских приложений, включая флэш-шифрование и идентификатор чипа.
  • Флэш-память в корпусе чипа или PSRAM (опционально)

Примечание: Продукты серии ESP32 отличаются друг от друга по поддержке встроенной флэш-памяти или PSRAM и их размеру. Подробности см. в разделе 1 Сравнение серий ESP32.

 

4.1.3 Внешняя флэш-память и ОЗУ

ESP32 поддерживает несколько внешних микросхем флэш-памяти QSPI и внешней памяти (SRAM). Более подробную информацию можно найти в Техническом справочном руководстве ESP32 > глава Контроллер SPI. ESP32 также поддерживает аппаратное шифрование/дешифрование на основе AES для защиты программ и данных во флэш-памяти.

ESP32 может получать доступ к внешней флэш-памяти QSPI и SRAM через высокоскоростные кэши.

  • До 16 МБ внешней флэш-памяти может быть отображено в пространство памяти инструкций ЦП и пространство памяти только для чтения одновременно.
    • Когда внешняя флэш-память отображается в пространство памяти инструкций ЦП, за один раз может быть отображено до 11 МБ + 248 КБ. Обратите внимание, что если отображается более 3 МБ + 248 КБ, производительность кэша будет снижена из-за спекулятивных чтений ЦП.
    • Когда внешняя флэш-память отображается в пространство памяти данных только для чтения, за один раз может быть отображено до 4 МБ. Поддерживаются 8-битные, 16-битные и 32-битные чтения.
  • Внешнее ОЗУ может быть отображено в пространстве памяти данных ЦП. Поддерживается SRAM до 8 МБ, и одновременно может быть отображено до 4 МБ. Поддерживаются 8-битные, 16-битные и 32-битные чтения и записи.

Примечание: После инициализации ESP32 прошивка может настроить отображение внешнего ОЗУ или флэш-памяти в адресное пространство ЦП.

 

4.1.4 Структура адресного пространства

Структура сопоставления адресов показана на рисунке 4-1. Сопоставление памяти и периферии показано в таблице 4-1.

4.1.5 Кэш

ESP32 использует двухсторонний ассоциативный кэш. Каждый из двух ЦП имеет 32 КБ кэша с размером блока 32 байта для доступа к внешнему хранилищу. Подробнее см. в Техническом справочном руководстве ESP32 > глава Система и память > раздел Кэш.

 


4.2 Системные часы

4.2.1 Часы CPU

После сброса в качестве источника тактового сигнала для CPU по умолчанию выбирается внешний кварцевый генератор. Внешний кварцевый генератор также подключается к audio PLL для генерации высокочастотных таковых импульсов (обычно 160 МГц).

Кроме того, ESP32 имеет собственный внутренний генератор 8 МГц. Ваше приложение может выбрать в качестве источника тактового сигнала для CPU из внешнего кварцевого генератора, часов PLL или внутреннего генератора 8 МГц. Выбранный источник управляет часами CPU напрямую или после деления, в зависимости от приложения.

4.2.2 Часы RTC

Часы RTC имеют пять возможных источников опорного сигнала:

  • внешние низкочастотные “часовые” кварцы 32768 Гц
  • внешние кварцевые часы, деленные на 4
  • внутренний RC-генератор (обычно около 150 кГц, регулируемый)
  • внутренний 8 МГц-генератор
  • внутренние 31,25 кГц-часы (полученные из внутреннего 8 МГц-генератора, деленного на 256)

Когда чип находится в обычном режиме питания и ему требуется более быстрый доступ к CPU, приложение может использовать внешние высокоскоростные кварцевые часы или внутренний 8 МГц-генератор.

Когда чип работает в режиме низкого энергопотребления, приложение может использовать внешние низкоскоростные (32 кГц) кварцевые часы, внутренние RC-часы или внутренние 31,25 кГц-часы.

4.2.3 Часы audio PLL

Тактовая частота для аудио генерируется сверхмалошумящей PLL. Подробнее см. в Техническом справочном руководстве ESP32 > глава Сброс и тактовая частота.

 


4.3 RTC и управление низким энергопотреблением

4.3.1 Блок управления питанием (PMU)

Благодаря использованию передовых технологий управления питанием ESP32 может переключаться между различными режимами питания.

Режимы питания:

  • Активный режим: включены Wi-Fi/Bluetooth радиоканалы. Чип может принимать, передавать или слушать радиосигналы.
  • Режим сна модема: CPU работает, а его тактовая частота настраивается. Радиоканалы Wi-Fi/Bluetooth отключены.
  • Режим легкого сна: CPU приостановлен. Работают сопроцессор ULP, память RTC и периферийные устройства RTC. Любые события пробуждения (MAC, хост SDIO, таймер RTC или внешние прерывания) будят чип и задействуют CPU.
  • Режим глубокого сна: включены только память RTC и периферийные устройства RTC. Данные о соединениях Wi-Fi и Bluetooth хранятся в памяти RTC. Сопроцессор ULP работает.
  • Режим гибернации: внутренний 8 МГц генератор и сопроцессор ULP отключены. Память восстановления RTC отключена. Активны только один таймер RTC на медленном такте и некоторые RTC GPIO. Таймер RTC или RTC GPIO могут вывести чип из режима гибернации.

Примечания:

  • SoC серии ESP32 ESP32-D0WD-V3, ESP32-D0WDR2-V3, ESP32-U4WDH, ESP32-D0WD (NRND), ESP32-D0WDQ6 (NRND) и ESP32-D0WDQ6-V3 (NRND) имеют максимальную частоту ЦП 240 МГц, ESP32-S0WD (NRND) имеет максимальную частоту процессора 160 МГц.
  • Когда Wi-Fi включен, чип переключается между активным режимом и режимом модемного сна. Поэтому энергопотребление изменяется соответствующим образом.
  • В режиме модемного сна частота ЦП автоматически изменяется. Частота зависит от загрузки ЦП и используемых периферийных устройств.
  • Во время глубокого сна, когда сопроцессор ULP включен, периферийные устройства, такие как GPIO и RTC I2C, могут работать.
  • Когда система работает в режиме мониторинга датчика ULP, сопроцессор ULP периодически работает с датчиком ULP, а АЦП работает с рабочим циклом 1%, поэтому энергопотребление составляет 100 мкА.

4.3.2 Сопроцессор сверхнизкого энергопотребления ULP

Сопроцессор ULP и память RTC остаются включенными во время режима глубокого сна. Таким образом, разработчик может хранить программу для сопроцессора ULP в медленной памяти RTC для доступа к периферийным устройствам, внутренним таймерам и внутренним датчикам во время режима глубокого сна. Это полезно для разработки приложений, в которых CPU необходимо разбудить внешним событием, таймером или комбинацией этих двух событий, сохраняя при этом минимальное энергопотребление.
Подробнее см. в Техническом справочном руководстве ESP32 > глава Сопроцессор ULP.

 


4.4 Таймеры и сторожевые таймеры

4.4.1 Таймеры общего назначения

В чип встроено четыре таймера общего назначения. Все они являются 64-битными общими таймерами, которые основаны на 16-битных предделителях и 64-битных таймерах с автоматической перезагрузкой.

Характеристики таймеров:

  • 16-битный предделитель тактовой частоты от 2 до 65536
  • 64-битный таймер с настраиваемой функцией счета вниз или вверх
  • Остановка и возобновление счетчика временной базы
  • Автоматический перезапуск при срабатывании таймера
  • Программно-управляемая мгновенный перезапуск
  • Генерация прерываний по уровню и фронту

Подробнее см. в Техническом справочном руководстве ESP32 > глава Группа таймеров.

4.4.2 Сторожевые таймеры

В ESP32 есть три сторожевых таймера: по одному в каждом из двух модулей таймера (называемый главным сторожевым таймером, или MWDT) и один в модуле RTC (называемый сторожевым таймером RTC, или RWDT). Эти сторожевые таймеры предназначены для восстановления работоспособности после непредвиденной ошибки, заставляющей прикладную программу отказаться от своей нормальной работы.

Сторожевой таймер имеет четыре этапа. Каждый этап может запустить одно из трех или четырех возможных действий по истечении запрограммированного периода времени, если сторожевой таймер не будет сброшен. Эти действия могут быть следующие: прерывание, сброс ЦП, сброс ядра и сброс системы. Только RWDT может запустить системный сброс и может сбросить весь чип, включая сам RTC. Значение таймаута может быть установлено для каждого этапа индивидуально.

Во время загрузки флэш-памяти RWDT и первый MWDT запускаются автоматически, чтобы обнаружить и устранить проблемы загрузки.

Сторожевые таймеры имеют следующие характеристики:

  • Четыре этапа, каждый из которых можно настроить или отключить отдельно
  • Программируемый период времени для каждого этапа
  • Одно из трех или четырех возможных действий (прерывание, сброс ЦП, сброс ядра и сброс системы) по истечении каждого этапа
  • 32-битный счетчик
  • Защита от записи, которая предотвращает непреднамеренное изменение конфигурации RWDT и MWDT
  • Защита загрузки флэш-памяти SPI. Если процесс загрузки из флэш-памяти SPI не завершится в течение предопределенного периода времени, сторожевой таймер перезагрузит всю систему.

Подробнее см. в Техническом справочном руководстве ESP32 > глава Таймеры сторожевых таймеров.

 


4.5 Криптографические аппаратные ускорители

ESP32 оснащен аппаратными ускорителями общих криптоалгоритмов, таких как AES (FIPS PUB 197), SHA (FIPS PUB 180-4), RSA и ECC. Чип также поддерживает независимую арифметику, такую ​​как умножение больших чисел. Максимальная длина операции для RSA, ECC, умножения больших чисел составляет 4096 бит.

Аппаратные ускорители значительно повышают скорость работы и снижают сложность программного обеспечения. Они также поддерживают шифрование кода и динамическое дешифрование, что гарантирует, что код во флэш-памяти не будет взломан.

 


4.6 Радиоканалы и Wi-Fi

Радиомодуль состоит из следующих блоков:

  • Приемник 2,4 ГГц
  • Передатчик 2,4 ГГц
  • Регуляторы
  • Балун и переключатель режима приема-передачи
  • Генератор тактовой частоты

4.6.1 Приемник 2,4 ГГц

Приемник демодулирует радиосигнал 2,4 ГГц в квадратурные сигналы основной полосы частот и преобразует их в цифровой вид с помощью двух высокоскоростных АЦП с высоким разрешением. Для адаптации к изменяющимся условиям канала сигнала в чип интегрированы фильтры RF, автоматическая регулировка усиления (AGC), схемы смещения постоянного тока и фильтры основной полосы частот.

4.6.2 Передатчик 2,4 ГГц

Передатчик 2,4 ГГц модулирует квадратурные сигналы основной полосы частот в радиочастотный сигнал 2,4 ГГц и передает его в антенну с помощью усилителя мощности на основе КМОП. Использование цифровой калибровки дополнительно улучшает линейность усилителя мощности, обеспечивая самые современные характеристики при подаче мощности до +20,5 дБм для передачи 802.11b и +18 дБм для передачи 802.11n.

В передатчик встроены дополнительные калибровки для устранения любых радиопомех, таких как:

  • Утечка несущей
  • Рассогласование фазы I/Q
  • Нелинейности основной полосы частот
  • Нелинейности РЧ
  • Рассогласование антенны

Эти встроенные процедуры калибровки сокращают время, необходимое для тестирования продукта, и делают ненужным его настройку.

4.6.3 Генератор несущей частоты

Генератор тактовых импульсов вырабатывает квадратурные тактовые сигналы частотой 2,4 ГГц как для приемника, так и для передатчика. Все компоненты генератора тактовых импульсов интегрированы в чип, включая все индуктивности, варикапы, фильтры, регуляторы и делители.

Генератор тактовых импульсов имеет встроенные схемы самокалибровки и самотестирования. Фазы квадратурных тактовых импульсов и фазовый шум оптимизируются чипом с помощью запатентованных алгоритмов, которые обеспечивают наилучшие характеристики приемника и передатчика.

4.6.4 WiFi радио

ESP32 реализует протокол TCP/IP и полный протокол 802.11 b/g/n Wi-Fi MAC. Он поддерживает операции Basic Service Set (BSS) STA и SoftAP в рамках функции распределенного управления (DCF). Управление питанием осуществляется с минимальным взаимодействием с хостом для минимизации периода активной работы.

ESP32 Wi-Fi Radio и Baseband поддерживают следующие функции:

  • 802.11b/g/n
  • 802.11n MCS0-7 в полосе пропускания 20 МГц и 40 МГц
  • 802.11n MCS32 (RX)
  • 802.11n защитный интервал 0,4 мкс
  • скорость передачи данных до 150 Мбит/с
  • прием STBC 2×1
  • мощность передачи до 20,5 дБм
  • регулируемая мощность передачи
  • разнесение антенн

ESP32 поддерживает разнесение антенн с помощью внешнего радиочастотного переключателя – один или несколько GPIO управляют радиочастотным переключателем и выбирают лучшую антенну для минимизации эффектов затухания канала.

4.6.5 Wi-Fi MAC

ESP32 Wi-Fi MAC автоматически применяет функции протокола низкого уровня:

  • Четыре виртуальных интерфейса Wi-Fi
  • Одновременный режим: станции BSS / SoftAP / Promiscuous
  • Защита RTS, защита CTS, немедленный блок ACK
  • Дефрагментация
  • TX/RX A-MPDU, RX A-MSDU
  • TXOP
  • WMM
  • CCMP (CBC-MAC, режим счетчика), TKIP (MIC, RC4), WAPI (SMS4), WEP (RC4) и CRC
  • Автоматический мониторинг маяков (аппаратный TSF)

4.7 Bluetooth

В чип встроен контроллер связи Bluetooth, который выполняют протоколы Bluetooth baseband и другие низкоуровневые процедуры Bluetooth связи, такие как модуляция/демодуляция, обработка пакетов, обработка потока битов, скачкообразная перестройка частоты и т. д.

4.7.1 Bluetooth Radio

Bluetooth Radio и Baseband поддерживают следующие функции:

  • Выходная мощность передачи класса 1, класса 2 и класса 3 и динамический диапазон управления до 21 дБ
  • Модуляция π/4 DQPSK и 8 DPSK
  • Высокая производительность и чувствительность приемника NZIF с минимальной чувствительностью -94 дБм
  • Работа класса 1 без внешнего усилителя мощности
  • Внутренняя SRAM обеспечивает передачу данных на полной скорости, смешанный голос и данные и полную работу пикосети
  • Логика для прямой коррекции ошибок, контроля ошибок заголовков, корреляции кода доступа, CRC, демодуляции, генерации потока битов шифрования, отбеливания и формирования импульсов передачи
  • ACL, SCO, eSCO и AFH
  • Цифровой аудиокодек A-law, μ-law и CVSD в интерфейсе PCM
  • Аудиокодек SBC
  • Управление питанием для маломощных приложений
  • SMP с 128-битным AES

4.7.2 Bluetooth интерфейс

  • Интерфейс UART HCI, до 4 Мбит/с
  • Интерфейс SDIO/SPI HCI
  • Аудиоинтерфейс PCM/I2S

4.7.3 Стек Bluetooth

Стек Bluetooth чипа соответствует спецификациям Bluetooth v4.2 BR/EDR и Bluetooth LE.

4.7.4 Контроллер связи Bluetooth

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

Ниже приведены функции контроллера:

  • Классический Bluetooth
    • Обнаружение устройств (запрос и сканирование запросов)
    • Установление соединения (страница и сканирование страниц)
    • Несколько подключений
    • Асинхронный прием и передача данных
    • Синхронные соединения (SCO/eSCO)
    • Переключатель Master/Slave
    • ​​Адаптивная скачкообразная смена частоты и оценка канала
    • Шифрование широковещательной передачи
    • Аутентификация и шифрование
    • Безопасное простое сопряжение
    • Управление многоточечными соединениями и scatternet
    • Режим Sniff
    • Ведомая широковещательная передача без соединения (передатчик и приемник)
    • Улучшенное управление питанием
    • Ping
  • Bluetooth Low Energy
    • Реклама
    • Сканирование
    • Одновременные реклама и сканирование
    • Несколько подключений
    • Асинхронный прием и передача данных
    • Адаптивная скачкообразная смена частоты и оценка канала
    • Обновление параметров соединения
    • Расширение длины данных
    • Шифрование канального уровня
    • LE Ping

 


4.8 Цифровые периферийные устройства

4.8.1 Интерфейс ввода-вывода общего назначения (GPIO)

ESP32 имеет 34 вывода GPIO, которым можно программно назначить различные функции, запрограммировав соответствующие регистры. Существует несколько видов GPIO: только цифровые, аналоговые, с поддержкой емкостного сенсора и т. д. Аналоговые GPIO и емкостные GPIO можно настроить как цифровые GPIO. Для большинства цифровых GPIO можно настроить внутренние подтягивающие резисторы или установить их на режим высокого сопротивления.

При настройке в качестве входа входное значение можно считывать через регистр. Вход также можно настроить для генерации прерываний ЦП на запуск по фронту, спаду или по уровню. Большинство цифровых GPIO являются двунаправленными, неинвертирующими и трехстабильными, включая входные и выходные буферы с трехстабильным управлением. Эти выводы могут быть мультиплексированы с другими функциями, такими как SDIO, UART, SPI и т. д. Более подробную информацию можно найти в Приложении “Таблица IO_MUX”.

Для операций с низким энергопотреблением GPIO можно настроить на сохранение их состояний.

Подробнее см. раздел 4.10 Конфигурации периферийных выводов, Приложение A – Списки выводов ESP32 и Техническое справочное руководство ESP32 > глава IO_MUX и Матрица GPIO.

4.8.2 Последовательный периферийный интерфейс (SPI)

ESP32 имеет три SPI (SPI, HSPI и VSPI) в master и slave режимах в 1-линейном полнодуплексном и 1/2/4-линейном полудуплексном режимах связи.

Особенности SPI общего назначения (GP-SPI):

  • Программируемая длина передачи данных, кратная 1 байту
  • Поддержка четырехлинейной полнодуплексной/полудуплексной связи и трехлинейной полудуплексной связи
  • Режимы master и slave
  • Программируемый CPOL и CPHA
  • Программируемый тактовый сигнал

Подробнее см. в Техническом справочном руководстве ESP32 > глава Контроллер SPI.

Назначение выводов

Для SPI выводы мультиплексируются через IO MUX с GPIO6 ~ GPIO11. Для HSPI контакты мультиплексируются через IO MUX с GPIO2, GPIO4, GPIO12 ~ GPIO15. Для VSPI контакты мультиплексируются через IO MUX с GPIO5, GPIO18 ~ GPIO19, GPIO21 ~ GPIO23.

Дополнительную информацию о назначении выводов см. в разделе 4.10 Конфигурации периферийных контактов и Техническом справочном руководстве ESP32 > глава IO_MUX и Матрица GPIO.

4.8.3 Универсальный асинхронный приемник-передатчик (UART)

UART в чипе ESP32 обеспечивает передачу и прием асинхронных последовательных данных между чипом и внешними устройствами UART. Он состоит из двух UART в основной системе и одного маломощного LP UART.

  • Программируемая скорость передачи данных
  • TX FIFO и RX FIFO в основном разделяемом ОЗУ
  • Поддержка самопроверки скорости передачи данных на входе
  • Поддержка различных длин битов данных и стоповых битов
  • Поддержка битов четности
  • Поддержка асинхронной связи (RS232 и RS485) и IrDA
  • Поддерживает DMA для высокоскоростной передачи данных
  • Поддерживает пробуждение UART
  • Поддерживает как программное, так и аппаратное управление потоком

Подробнее см. в Техническом справочном руководстве ESP32 > глава Контроллер UART.

Назначение выводов

Контакты для UART можно выбрать из любых GPIO через матрицу GPIO.

Дополнительную информацию о назначении выводов см. в разделе 4.10 Конфигурации периферийных контактов и Техническом справочном руководстве ESP32 > глава IO_MUX и Матрица GPIO.

4.8.4 Интерфейс I