УМНЫЕ ИГРУШКИ

Микроконтроллер ESP32 на плате 30 pin

Основополагающей идеей развития микроконтроллеров на сегодняшний день остаётся минимизация размеров кристаллов микросхем с одновременным увеличением содержащихся в единой структуре интегрированных компонентов. Добившись значительного успеха с чипами ESP8266, компания Espressif Systems не остановилась на достигнутом. Продолжив движение в ногу со временем, она сотворила маленькое чудо, и выпустила на рынок совершенно новое мощное и гибкое решение, объединяющее в себе не только популярные стандарты беспроводной связи WiFi и Bluetooth, встречающиеся повсеместно практически в любых современных электронных устройствах, но и по-настоящему обширные инновационные возможности, расширяющие спектр использования микроконтроллера ESP32 в разнообразных проектах с низким энергопотреблением, разрабатываемых как многочисленными любителями-энтузиастами, так и профессиональными специалистами.

Контроллеры с ядром ESP32 могут быть задействованы в различных и по-своему уникальных приложениях: связывающие устройства для концептуальных вычислительных сетей Интернет вещей (IoT), включающие инструменты по сбору и хранению данных или объединению всевозможных датчиков, устройства аудио или видео стриминга, дополнительные надстройки к полноценным электронным продуктам, элементы механизмов распознавания речи или изображений. А также находят применение в домашней автоматике, управляющей освещением, силовыми розетками или дверными замками. ESP32 может участвовать в разработке различных приложений автоматизированного координирования и взаимодействия индустриального оборудования, в системах мониторинга за электронными метками (маяками), в образовательной, промышленной и сервисной робототехнике, в детских игрушках, в любых компактных портативных умных устройствах.

Порт USB

MicroUSB-порт модуля ESP32-DevKitC-30pin соответствует спецификации USB2.0. Порт MicroUSB служит проводным интерфейсом функций обновления программного обеспечения (прошивки) платы ESP32-DevKitC-30pin, вывода отладочной информации (по умолчанию отключено) или просто входом 5-вольтового напряжения питания. Он соединён со встроенным чипом CP2102 преобразователя логических сигналов USB-UART/TTL, который в свою очереь связан с ESP32-WROOM-32 через шину UART0 для двунаправленной передачи данных.

Датчик Холла

ESP32-WROOM-32 оснащён встроенным резистивным датчиком на основе эффекта Холла. Чувствительный датчик измеряет силу магнитного поля, воздействующего на него из окружения, и вырабатывает крайне слабый аналоговый сигнал, пропорциональный уровню магнитного воздействия. Аналоговый сигнал от датчика Холла, усиленный в интегрированной схеме ESP32, передаётся на выводы S_VP и S_VN.

Режимы энергосбережения ESP32, домен питания реального времени RTC

Чипсет ESP32 располагает сопроцессором с ультранизким энергопотреблением (ULP-сопроцессор), и подготовлен к нескольким режимам энергопотребления:

  • Активный режим — блоки радиопередатчиков постоянно включены, чип ESP32 может передавать и принимать данные, или вести постоянное радионаблюдение. Ток потребления составляет 95-240 мА.
  • Режим спящего модема — функционируют все возможности чипа ESP32, за исключением блоков радиопередатчиков WiFi и Bluetooth. Частота процессора автоматически регулируется в зависимости от загруженности ядра и используемой периферии. Потребляемый ток снижается до 20-68 мА.
  • Режим лёгкого сна — процессор ESP32 остановлен, при этом память и периферия домена питания реального времени RTC, а также ULP-сопроцессор, находятся в рабочем состоянии. Выход из режима сна основан на возникновении пробуждающих событий (MAC, хост, таймер RTC или внешние прерывания). Сила рабочего тока в режиме лёгкого сна не превышает 0.8 мА.
  • Режим глубокого сна — напряжение получают только память и периферия (RTC_GPIO, RTC_I2C) домена питания реального времени RTC, включая ULP-сопроцессор. Все остальные элементы ESP32 обесточены. Настройки соединений WiFi и Bluetooth сохраняются в памяти RTC. Энергопотребление снижается до 10-150 мкА.
  • Режим гибернации — встроенный кварцевый генератор на 8 МГц, ULP-сопроцессор и память домена RTC отключены от питания. Остаются активными таймер RTC и некоторые контакты RTC GPIO, с помощью которых возможен возврат из спящего режима. Рабочий ток в режиме гибернации составляет всего 5 мкА.

Расположение и функциониальное назначение контактных выводов

Операции обмена цифровыми данными между контроллером и внешней периферией, подключаемой к выводам общего назначения (GPIO) модуля ESP32-DevKitC-30pin, основаны на 3.3-вольтовой логике. Высокоуровневым сигналом или логической единицей называются импульсы с напряжением в диапазоне +2.64…+3.6 вольт. Низкоуровневым сигналом или логическим нулём именуются импульсы в интервале -0.3…+0.33 вольт. Множество выводов ESP-WROOM-32 имеют интегрированные схемы программного управления, устанавливающие уровень логического состояния — высокое (контакт подтянут к плюсовому напряжению/питанию) или низкое (контакт стянут к нулевому напряжению). Большинство контактов платы могут быть смультиплексированы с различными интерфейсами (UART, I2C, I2S, PWM, HSPI, VSPI, служебным каналом EMAC, и другими). Рекомендуемый ток отдельного вывода GPIO составляет 6 мА, максимальный ток — не более 12 мА.

  • VCC 3V3 — вывод c напряжением 3.3 вольта, предназначен для питания внешней периферии (не более 300мА)
  • CHIP_EN — вход логического сигнала управления ESP32, высокий — включение Enable, низкий — перезапуск контроллера Reset
  • GPIO0 ~ GPIO33 — выводы общего назначения для ввода/вывода инфомрации. Вывод GPIO0 имеет функцию переназначения. Низкоуровневым сигналом GPIO0 (кнопка BOOT) в момент включения/сброса ESP32 запускается режим загрузки/обновления ПО через мост USB/UART0. Порты GPIO34, 35, 36, и 39 работоспособны исключительно на вход
  • RTC(GPIO0) ~ RTC(GPIO39) — порты домена питания реального времени RTC. Поддерживается операция пробуждения ESP32 из режима лёгкого сна
  • S_VP(ositive), S_VN(egative) — выходы встроенного датчика Холла, подключенного к внутреннему усилителю сигнала АЦП1. Результаты измерения силы окружающего магнитного поля искажаются при совместном использовании датчика Холла с другими функциями
  • 32K_XP(ositive), 32K_XN(egative) — входы внешнего кварцевого генератора частоты 32.768 КГц
  • VDET_1, VDET_2 — аналоговый вход домена питания реального времени RTC. Поддерживается вывод процессора ESP32 из режимов энергосбережения. Требуется предварительная программная подготовка
  • VCC 5V0 — вход питания ESP32-DevKitC-30pin стабилизированного 5-вольтового напряжения / выход напряжения шины USB
Важно! Контакты GPIO рассчитаны на максимальную силу нагрузочной тока не более 12 мА и напряжение не более 3.3 вольта. Превышение допустимых электрических характеристик способно перманентно повредить микроконтроллер ESP32.

Специальные функции и интерфейсы

  • ADC1_X, ADC2_X  — каналы X аналого-цифровых преобразователей АЦП1 и АЦП2 с 12-битной разрядностью. Диапазон преобразованных значений в интервале 0-4095. Функция преобразования АЦП2 не доступна в состоянии активного WiFi-подключения
  • DAC_1, DAC_2 — цифро-аналоговые преобразователи ЦАП1 и ЦАП2. Выводы преобразования цифровых значений от 0 до 255 (разрядность 8 бит) в пропорциональное выходное аналоговое напряжение
  • UART — интерфейс ассинхронной последовательной шины, состоящий из линии приёма информации RX и передачи TX. Внутри ESP32 реализовано три аппаратных блока UART. По умолчанию, в среде разработки Arduino IDE предопределена одна UART-шина.
     RXTXИмяСостояние
    UART0GPIO3GPIO1Serialсвободен, порт USB
    UART1GPIO9GPIO10—занят, SDIO/SPI Flash-память
    UART2GPIO16GPIO17—свободен
  • I2C/IIC/TWI — двунаправленный последовательный интерфейс из линий передачи данных SDA и тактирования SCL. Поддерживает одновременно до 127 параллельных устройств с уникальным аппаратным адресом. В чипсете ESP32 существует 2 аппаратных блока I2C с произвольным назначением на любой GPIO в программируемых режимах ведущий или ведомый. По умолчанию, в среде разработки Arduino IDE предусмотрена одна I2C-шина с контактами GPIO22 (WIRE_SCL) и GPIO21 (WIRE_SDA).
  • SPI — шина последовательного периферийного интерфейса (SPI, HSPI, VSPI) в программируемых режимах ведущий или ведомый. Шина включает линии передачи данных от ведущего к ведомому MOSI, от ведомого к ведущему MISO, тактирования сигнала SCLK, выбора адреса SS(CS). Шина SPI занята внутренней flash-памятью, шина VSPI активна по умолчанию.
    ИмяMOSIMISOSCLKSS/CS
    VSPIGPIO23GPIO119GPIO18GPIO5
    HSPIGPIO13GPIO12GPIO14GPIO15
  • I2S — последовательный синхронный протокол передачи аудиоданных между цифровыми аудио устройствами. В ESP32-WROOM-32 интегрированы 2 независимых 3-проводных контроллера I2S (I2S0, I2S1), поддерживающие режимы ведущий и ведомый. Линии битовой частотной синхронизации (BCLK), правого/левого каналов WS, цифровых данных (SD) каждой шины I2S мультиплексируются на любых GPIO. Управление линией опорного I2S-тактирования (MCLK) для периферии определяется функциями CLK_OUT1~3. Передача сигналов PDM в режиме ЦАП/АЦП предусматривается только в I2S0
  • Touch0~9 — вход ёмкостного сенсорного датчика, аппаратно реагирующего на изменение ёмкости в электрической цепи соответствующего вывода, вызванное прикосновением человека или объекта. Поддерживается функция пробуждения ESP-WROOM-32 из энергосберегающих режимов сна
  • SD/SDIO/MMC — хост-интерфейс (HS2), поддерживающий карты памяти стандарта SD V3.01
  • PWM (ШИМ) — цифровой сигнал с управляемой широтно-импульсной модуляцией. ШИМ поддерживается на любом GPIO WROOM-32 за исключение портов 34-36 и 39
  • Ethernet MAC (EMAC) — интерфейсы MII/RMII управления доступом к среде (MAC), совместимого со стандартом IEEE-802.3-2008. Для подключения к физической шине LAN (скрученная пара, волокно и т.д.), процессору ESP32 требуется внешнее PHY-устройство физического интерфейса. PHY подключается через 17-сигнальный интерфейс MII или 9-сигнальный интерфейс RMII.