Esp32 devkit v1 pinout

цифровая электроника вычислительная техника встраиваемые системы

Детальная распиновка ESP32: какие линии GPIO можно использовать

Микроконтроллер ESP32 имеет 48 выводов, обладающих различными функциями. Не все контакты доступны на всех отладочных платах с ESP32, и есть некоторые контакты, которые нельзя использовать. Существует много вопросов о том, как использовать линии ввода/вывода (GPIO) на ESP32. Какие контакты вы должны использовать? Какие выводы вы должны избегать использовать в своих проектах? В этом материале мы постараемся ответить на данные вопросы.

Итак, в первую очередь нужно знать, какую периферию имеет ESP32. В микроконтроллере содержится:

  • 18 каналов АЦП
  • 3 интерфейса SPI
  • 3 интерфейса UART
  • 2 интерфейса I2C
  • 16 выходных каналов ШИМ
  • 2 канала ЦАП
  • 2 интерфейса I2S
  • 10 GPIO для емкостных датчиков

АЦП (аналого-цифровой преобразователь) и ЦАП (цифро-аналоговый преобразователь) назначаются конкретным статическим контактам. Однако вы можете определить контакты UART, I2C, SPI, PWM и т. д. – вам просто нужно назначить их в коде. Это возможно благодаря функции мультиплексирования ESP32. Хотя вы можете определить выводы в программном обеспечении, по умолчанию назначены контакты, как показано на следующем рисунке (это пример для платы ESP32 DEVKIT V1 DOIT с 36 выводами – расположение контактов может меняться в зависимости от производителя).

Кроме того, есть выводы с определенными функциями, которые делают их подходящими или нет для конкретного проекта. На следующем рисунке показана распиновка ESP-WROOM-32. Вы можете использовать его в качестве справочной информации, если вы используете чип для создания пользовательской платы.

Линии GPIO с 34 по 39 являются GPI, то есть направлены только на ввод информации. Эти линии не имеют внутренних подтягивающих резисторов. Они не могут использоваться в качестве выходов, поэтому используйте эти контакты только как входы.

GPIO 6 – GPIO 11 отображаются на некоторых платах ESP32. Однако эти контакты подключены к интегрированной SPI flash на микроконтроллере ESP-WROOM-32 и не рекомендуются для других целей. Поэтому не используйте эти контакты в своих проектах.

ESP32 имеет 10 внутренних емкостных сенсорных датчиков. Они могут ощущать изменения во всем, что содержит электрический заряд, даже на человеческой коже. Таким образом, они могут обнаруживать изменения, вызванные прикосновением к GPIO пальцем. Эти выводы легко работают с емкостными панелями и заменяют механические кнопки. Емкостные сенсорные выводы также могут использоваться для пробуждения ESP32 от глубокого сна. Эти датчики подключены к следующим GPIO: T0 (GPIO 4), T1 (GPIO 0), T2 (GPIO 2), T3 (GPIO 15), T4 (GPIO 13), T5 (GPIO 12), T6 (GPIO 14), T7 (GPIO 27), T8 (GPIO 33), T9 (GPIO 32).

Читайте также:  Выход блэк опс 4

ESP32 имеет 18 x 12 битных входных каналов АЦП (в то время как ESP8266 имеет только один 10 битный канал АЦП). Вот GPIO, которые могут использоваться как АЦП и соответствующие каналы: ADC1_CH0 (GPIO 36), ADC1_CH1 (GPIO 37), ADC1_CH2 (GPIO 38), ADC1_CH3 (GPIO 39), ADC1_CH4 (GPIO 32), ADC1_CH5 (GPIO 33), ADC1_CH6 (GPIO 34), ADC1_CH7 (GPIO 35), ADC2_CH0 (GPIO 4), ADC2_CH1 (GPIO 0), ADC2_CH2 (GPIO 2), ADC2_CH3 (GPIO 15), ADC2_CH4 (GPIO 13), ADC2_CH5 (GPIO 12), ADC2_CH6 (GPIO 14), ADC2_CH7 (GPIO 27), ADC2_CH8 (GPIO 25), ADC2_CH9 (GPIO 26). Следует помнить, выводы ESP32 ADC ведут себя не совсем линейно. Вероятно, вы не сможете отличить от 0 до 0,1 В или от 3,2 до 3,3 В. Это необходимо учитывать при использовании выводов АЦП. Вы получите такое же поведение, как показано на следующем рисунке.

В ESP32 есть 2 x 8 битных канала ЦАП для преобразования цифровых сигналов в аналоговые выходы напряжения. Вот каналы ЦАП: DAC1 (GPIO25), DAC2 (GPIO26).

В ESP32 имеется поддержка RTC (ядро низкого энергопотребления) GPIO. GPIO, перенаправленные в подсистему с низким энергопотреблением RTC, могут использоваться, когда ESP32 находится в глубоком сне. Эти RTC GPIO могут использоваться для пробуждения ESP32 от глубокого сна при работе сопроцессора Ultra Low Power (ULP). Следующие GPIO могут использоваться как внешний источник пробуждения: RTC_GPIO0 (GPIO36), RTC_GPIO3 (GPIO39), RTC_GPIO4 (GPIO34), RTC_GPIO5 (GPIO35), RTC_GPIO6 (GPIO25), RTC_GPIO7 (GPIO26), RTC_GPIO8 (GPIO33), RTC_GPIO9 (GPIO32), RTC_GPIO10 (GPIO4), RTC_GPIO11 (GPIO0), RTC_GPIO12 (GPIO2), RTC_GPIO13 (GPIO15), RTC_GPIO14 (GPIO13), RTC_GPIO15 (GPIO12), RTC_GPIO16 (GPIO14), RTC_GPIO17 (GPIO27).

ШИМ-контроллер PWM LED в ESP32 имеет 16 независимых каналов, которые могут быть сконфигурированы для генерации сигналов ШИМ с различными свойствами. Практически все контакты, которые могут выступать в качестве выходов, могут использоваться в качестве выходов ШИМ (GPIO с 34 по 39 не могут генерировать ШИМ). Чтобы установить сигнал ШИМ, вам необходимо определить эти параметры в коде: частота сигнала, скважность, ШИМ-канал, а также GPIO, где вы хотите вывести сигнал.

При использовании ESP32 с Arduino IDE вы должны использовать стандартные выходы ESP32 I2C (поддерживаемые библиотекой Wire): GPIO 21 (SDA), GPIO 22 (SCL).

В ESP32 имеется также интерфейс SPI, вот его сопоставление контактов:

Если говорить об источниках прерывания, то в данном контексте можно сказать, что все GPIO могут быть настроены как прерывания.

Помимо прочего в ESP32 есть еще один вывод – Enable (EN). Это линия активации регулятора 3.3V. Он подтянут, поэтому подключитесь к земле, чтобы отключить регулятор 3.3V. Это означает, что вы можете использовать этот вывод, подключенный к кнопке, чтобы перезапустить ESP32, например.

И напоследок, абсолютный максимальный ток, потребляемый одной линией GPIO, составляет 12 мА, но рекомендуется при нормальном использовании 6 мА.

ESP32 DevKit платформа для разработки IoT-решений.

Читайте также:  Чем смыть флюс с платы после пайки

Программирование на C++

После выполненных действий плата ESP32 DevKit готова к программированию через Arduino IDE.

Подробности о функциях и методах работы ESP32 на языке C++ читайте на ESP32 Arduino Core’s.

Примеры работы для Arduino

ESP32 может подключиться к Wi-Fi сети, создать собственную точку доступа, представляться сервером и клиентом, формировать GET и POST запросы. Также микроконтроллер имеет два АЦП и датчик Хола.

Пример WebClient

После подключения к Wi-Fi микроконтроллер напишет в COM порт ответ от сервера.

Пример Analog WebServer

ESP32 имеет 15 аналоговых пинов. Выведем через веб-интерфейс значения с 36, 39 и 34 пина.

Когда микроконтроллер подключится к Wi-Fi сети, в монитор порта будет выведен IP-адрес веб-страницы с данными. Получить к ней доступ можно из локальной сети, перейдя по указанному IP-адресу. Скопируйте IP-адрес из монитора порта и вставьте в адресную строку браузера. Если вы подключены к той же локальной сети, что и ESP32, то вы увидите веб-интерфейс.

Пример blink WebServer

Создадим WEB-сервер на порту 80. С помощью веб-интерфейса будем мигать светодиодами на 16 и 17 пинах.

При переходе по IP-адресу из монитора порта, выводится веб-страница с кнопками.

Программирование на JavaScript

Подробнее о функциях и методах работы ESP32 на языке JavaScript читайте документацию на Espruino.

Элементы платы

Мозг платформы

Платформа для разработки ESP32 DevKit основана на модуле ESP32-WROOM с чипом ESP32-D0WDQ6 от Espressif.

Чип ESP32-D0WDQ6

Чип ESP32-D0WDQ6 — выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле), в которую входит 2-ядерный 32-битный процессор Tensilica Xtensa LX6 с блоками памяти ROM на 448 КБ и SRAM на 520 КБ. В кристалле также расположены беспроводные технологии Wi-Fi/Bluetooth, радио-модуль, датчик Холла и сенсор температуры.

Для работы с чипом необходима внешняя Flash-память и другая электронная обвязка. Кристалл ESP32-D0WDQ6 является основой на базе которой выпускаются модули с необходимой периферией: например ESP32-WROOM или ESP32-WROVER .

Модуль ESP32-WROOM

ESP32-WROOM — модуль с чипом ESP32-D0WDQ6, Flash-памятью на 4 МБ и всей необходимой обвязкой, которые спрятаны под металлическим кожухом. Pins SCK/CLK, SDO/SD0, SDI/SD1, SHD/SD2, SWP/SD3 and SCS/CMD, namely, GPIO6 to GPIO11 are connected to the integrated SPI flash integrated on the module and are not recommended for other uses.

Рядом с кожухом расположена миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Металлический кожух экранирует компоненты модуля и тем самым улучшает электромагнитные свойства.

Модуль является основной, на которой выполняются промышленные устройства или отладочные платы, например: ESP32 DevKit или ESP32-Sense Kit .

USB-UART преобразователь

Преобразователь USB-UART на микросхеме CP2102 обеспечивает связь модуля ESP32-WROOM с USB-портом компьютера. При подключении к ПК — платформа ESP32 DevKit определяется как виртуальный COM-порт.

Разъём micro-USB

Разъём micro-USB предназначен для прошивки и питания платформы ESP32 DevKit с помощью компьютера.

Светодиодная индикация

Имя светодиода Назначение
ON Индикатор питания платформы.
LED Пользовательский светодиод на 2 пине микроконтроллера. При задании значения «высокого уровня» светодиод включается, при «низком» – выключается.
Читайте также:  Графический способ отделения корней

Кнопка EN

Кнопка предназначена для ручного сброса программы — аналог кнопки RESET обычного компьютера.

Кнопка BOOT

Кнопка служит для ручного перевода модуля в режим прошивки:

Регулятор напряжения

Линейный понижающий регулятор напряжение AMS1117-3.3 обеспечивает питание микроконтроллера. Выходное напряжение 3,3 вольта с максимальным током 1 А.

Распиновка

Пины питания

Порты ввода/вывода

В отличие от большинства плат Arduino, родным напряжением ESP32 DevKit является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер!

Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.

Интерфейсы

Каждый пин ввода-вывода платформы поддерживает аппаратные интерфейсы.

Опросы

Рубрики

Еще по теме

Распиновка и характеристики 3х самых распространенных плат на базе крутого микроконтроллера ESP32

Ну и на всякий случай распиновка самого ESP32:

Прошивка и программирование ESP32 Ardunio

Для начала надо установить и настроить это: https://github.com/espressif/arduino-esp32. Инструкция для Windows там же, но она максимально убогая, там все сводится к скачиванию всех файлов и распаковыванию их сюда

и потом надо запустить

Свободные пины GPIO 2, 4, 12, 14, 13, 15, 16, 17, 25, 25, 27, 32, 33
Только чтение (вход) GPIO 34, 35, 36, 39

К разнообразным шинам SPI, i2c и т.д. подключены, и их тоже можно использовать: GPIO 1, 3, 5, 18, 19, 21, 22, 23

Тут немного не как в ардуине. Нельзя бездумно использовать любые пины, надо смотреть документацию, и дополнительно можно тестером при перезагрузке модуля проверять, не появляется ли напряжение на пине, прежде чем его использовать. Я проверил все пины, и в итоге получилось вот что

5, 15 – после загрузки на нем +3.3V, он резистором подтянут к VVC (PULLUP) – с учетом этого его использовать можно

2, 4, 18, 19, 21, 22, 23, 13, 12, 27, 26, 25, 33, 32 – нормальные обычные пины

14 какой-то сомнительный пин, сначала на нем 0, потом через секунду после включения +3.3V – с учетом этого его использовать можно

34, 35 вроде бы подтянут к земле (PULLDOWN), только чтение, и то помнится были какие-то проблемы
36, 39 вероятно то же самое, что 34 и 35

Все это проверялось на DEVKIT v1 плате:

Характеристики ESP32

GPIO 32 (с ограничением)

ШИМ 16 channels LEDC PWM

  • WiFi 802.11n 2.4Гц с максимальной скоростью 150Мбит/сек
  • WPA)/WPA2/WPA2-Enterprise/Wi-Fi Protected Setup (WPS
  • Bluetooth v4.2 BR/EDR and BLE

Интерфейсы SD/eMMC/SDIO, SPI, UART (2 шт), i2c

Поддержка сенсорных кнопок

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

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

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

Adblock detector