Урок 1. Общие сведения о системе ESP32. Плата DevKit V1.

Уроки программирования ESP

Этой публикацией я начинаю цикл уроков о программировании микроконтроллеров ESP32 в программной среде ESP-IDF. В первом уроке расскажу о параметрах и функциональных возможностях ESP32 на примере отладочной платы DevKit V1.

Список уроков     Следующий урок

Еще в 2015 году компания-разработчик микроконтроллера ES8266 выпустила новое устройство также ориентированное на работу с беспроводными технологиями – серию микроконтроллеров ESP32. От предшественника новые устройства отличаются невообразимыми параметрами и функциональными возможностями. Они являются идеальными элементами для создания устройств, поддерживающих IoT технологии (Интернет Вещей), т.е. подключение всего к Интернету.

 

В настоящее время контроллеры ESP32 стали вполне доступными. Отладочную двухъядерную плату на АлиЭкспресс можно купить всего за 350 руб.

Времени мало, но я не могу пройти мимо такой перспективной темы. По мере возможности, по остаточному принципу буду писать уроки ESP32. Речь идет о программировании не в среде Ардуино, а с помощью программных средств компании-производителя ESP32. Информации на эту тему очень мало.

 

Общие сведения.

ESP32 – это серия недорогих высокопроизводительных микроконтроллеров с низким энергопотреблением и интегрированными интерфейсами Wi-Fi и Bluetooth.

Серия разработана компанией Espressif Systems.  В ней используется процессорное ядро Tensilica Xtensa LX6 в одноядерном и двухъядерном вариантах.

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

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

В уроках буду использовать плату ESP DevKit V1 (аналог ESP32 DevKitC V4). Я купил эту плату на АлиЭкспресс всего за 340 руб вместе с доставкой. И это за плату. Модуль стоит еще дешевле.

 

Иерархия аппаратных узлов.

Поясню, чем отличаются аппаратные, конструктивно законченные элементы, с которыми мы будем работать.

Есть микроконтроллер (микросхема), например ESP32-D0WDQ6. Он обеспечивает большую часть функциональных возможностей системы, но для применения требует дополнительных компонентов.

ESP32-D0WDQ6

Добавили к нему FLASH-память, генератор, блокировочные конденсаторы и прочие внешние компоненты. Установили их на маленькую печатную плату, прикрыли крышкой – получился модуль. В нашем случае модуль ESP-WROOM-32.

Модуль WROOMМодуль WROOM

На модуль достаточно подать питание и уже можно использовать WiFi или Bluetooth. Если подключить внешние сигналы, то уже будет готовая система.

Еще удобнее использовать плату. У меня это ESP DevKit V1.

DevKit V1DevKit V1

Примерно как на платах Ардуино добавились следующие функциональные и конструктивные возможности.

  • Конвертер USB/UART CP210X, позволяющий подключаться к стандартному USB компьютера.
  • Аппаратные цепи, обеспечивающие загрузку FLASH микроконтроллера от компьютера в автоматическом режиме.
  • Стабилизатор напряжения питания модуля.
  • Кнопки сброса и загрузки.
  • Светодиоды.
  • Внешние сигналы микроконтроллеры выведены на края платы.

Т.е. в минимальном варианте достаточно подключить плату ESP32 к USB компьютера. Через него плата получает питание, загружается резидентная программа, производится отладка.

 

Плата ESP DevKit V1.

В плате установлен модуль ESP-WROOM-32.

В модуле используется микроконтроллер ESP32-D0WDQ6.

Эти элементы определяют функциональные возможности и параметры платы.

  • Процессорная часть:
    • ядро Tensilica Xtensa LX6;
      • два ядра;
      • 32 разряда;
      • производительность до 600 MIPS (миллионов инструкций в сек);
    • сопроцессор с ультранизким энергопотреблением.
  • Память:
    • 448 KB ROM для загрузчика и функций ядра;
    • 520 KB SRAM для данных и команд;
    • 16 KB SRAM в RTC (квази энергонезависимая память);
    • 4 MB  FLASH - память программы.
  • Беспроводные интерфейсы:
    • Wi-Fi: 802.11 b/g /N;
    • Bluetooth: v4.2 BR/EDR и BLE.
  • Часы и таймеры:
    • внутренний генератор 8 мГц;
    • внутренний RC-генератор;
    • внешний генератор 40 мГц;
    • внешний генератор 32 кГц для RTC;
    • 2 группы таймеров, включая 2x64 бит таймеры и сторожевой таймер в каждой группе;
    • RTC таймер (часы реального времени);
    • RTC сторожевой таймер.
  • Периферийные интерфейсы:
    • 34 программируемых универсальных портов ввода/вывода;
    • 12ти разрядный АЦП, до 18 каналов;
    • 2 x 8 битных ЦАП;
    • 10 портов для подключения емкостных датчиков;
    • 4 x SPI;
    • 2 x I2S;
    • 2 x I2C;
    • 3 x UART;
    • 1 хост контроллер SD/eMMC/SDIO;
    • 1 слейв контроллер SDIO/SPI;
    • Ethernet MAC interface с выделенным DMA и IEEE 1588 поддержкой;
    • CAN 2.0;
    • ИК порт;
    • ШИМ для двигателей;
    • ШИМ для светодиодов до 16ти каналов;
    • датчик Холла.
  • Безопасность:
    • безопасная загрузка;
    • шифрование FLASH;
    • 1024-битный ключ, до 768 бит для клиентов;
    • криптографическое аппаратное ускорение:
      • AES;
      • хеширование SHA-2;
      • RSA;
      • ECC;
      • генератор случайных чисел (RNG).

 

Функциональная схема микроконтроллера выглядит так.

Функциональная схема

Скорее, это перечисление основных компонентов микроконтроллера.

 

Применение ESP32.

В технической документации ESP32 есть глава “Применение (не полный список)”.

Действительно, микроконтроллер с такими потрясающими возможностями и такой низкой ценой может быть использован где угодно. Но производитель – компания Espressif Systems, прежде всего, выделяет предназначение ESP32 для создания IoT устройств.

IoT (Internet of Things), в переводе  “Интернет Вещей” – это концепция подключения всего к интернету, что позволит управлять этим всем через интернет. Действительно, наличие интегрированных интерфейсов WiFi и Bluetooth, высокая производительность и низкая цена делают ESP32 идеальными контроллерами для IoT технологий.

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

 

Распиновка и элементы платы.

Назначение выводов платы показано на этой схеме.

Распиновка DevKit V1

А здесь показано назначение элементов платы.

DevKit V1

Электрические характеристики ESP32.

Мы собираемся создавать реальные устройства. А значит подключать к микроконтроллеру какие-то сигналы, подавать на него питание, эксплуатировать устройства в определенных климатических условиях. Значит важно знать минимальный набор электрических характеристик контроллера. Я посчитал, что на первом этапе необходимо знать следующие параметры.

Питание.

Напряжение питания модуля – 3,3 В, но на плате установлен стабилизатор AMS1117-3.3. В документации на плату DevKit все время фигурирует напряжение внешнего питания 5 В. Я не понимаю, почему нельзя подавать большее напряжение. AMS1117-3.3 допускает питание до 20 В,  но надо еще учитывать мощность рассеивания на стабилизаторе.

Питание USB развязано от внешнего питания платы диодом Шоттки. Значит можно запитывать плату от внешнего источника и одновременно подключать к USB.

Средний потребляемый ток – 80 мА, но источник питания должен допускать пиковые нагрузки до 0,5 А.

Температура окружающей среды -40 +85 °C. Это для платы. У микроконтроллера -40 +125 °C.

Параметры входов/выходов.

Обозначение Параметр Мин.
значение
Типовое
значение
Макс.
значение
Ед.
изм.
VIH Входное напряжение высокого уровня 0,75*VDD - VDD+0,3 В
VIL Входное напряжение низкого уровня - 0,3 - 0,25*VDD В
IIH, IIH Входной ток высокого и низкого уровня - - 50 нА
VOH Выходное напряжение высокого уровня 0,8*VDD - - В
VOL Выходное напряжение низкого уровня - - 0,1*VDD В
IOH Выходной ток высокого уровня - 40 - мА
IOL Выходной ток низкого уровня - 28 - мА
RPU, RPD Сопротивление подтягивающего резистора - 45 - кОм

Отметим, что

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

Документацию по аппаратной части ESP2 можно посмотреть  по этой ссылке.

Там же есть принципиальная схема платы DevKitC.

 

В следующем уроке будем устанавливать среду программирования ESP32.

Список уроков     Следующий урок

3

Автор публикации

не в сети 6 часов

Эдуард

285
Комментарии: 1945Публикации: 197Регистрация: 13-12-2015

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".