аукцион / donate / услуги / RSS / распечатать / вход 
Мой мир
Вконтакте
Одноклассники

[31 января 2023 | 14 марта 2023 | 25 мая 2023]

ESP32 использование выводов

При проектировании самодельных девайсов начинающие самодельщики допускают очень много ошибок считая, что в устройствах типа ESP32 архитекторы всё продумали и совершить ошибок нельзя. Тот кто работал с микроконтроллерами от Атмел будут немного разочарованы ESP. В начале пути разработчики считают, что используя цифровой выход, всегда можем подать на него логическую 1 или 0 и это не приведет в каким-либо последствиям. Например, недавно встретился с человеком который «навешивал» температурные датчики и столкнулся с тем, что на одних пинах он работает правильно, а при подключении к другим — контроллер перестаёт включаться. Я уже писал об этой проблеме на ESP8266, но пришло время описать ситуацию с ESP32 и потом я буду просто давать ссылку на эту статью, вместо пространственных объяснений почему нельзя использовать тот или иной вывод как душе угодно. Чтобы не расписывать все модификации существующих плат, я возьму ядро самой распространённой на Алиэкспресе и в среде знакомых мне самодельщиков ESP32-WROOM-32E. Еще есть модели ESP32-WROOM-32D — это абсолютно такая-же но с выводом для вешней Flash-памяти и ESP32-WROOM-32U — это с коннектором для внешней антенны (на самой плате она не разведена из-за чего занимает меньше места, плюс позволяет подключить внешнюю антенну при использовании железного корпуса самодельного устройства). Часть выводов ESP32 используются для служебных целей и процесс загрузки ядра зависит от состояния этих выводов.

ESP32 аверс и реверс

GPIO0 (BootSelect) — это выбор устройства для загрузки. При подтяжке к земле устройство будет загружаться через UART0, а при подтяжке к питанию устройство будет загружаться со встроенной flash-памяти. Для принудительного перевода платы в режим программирования можно подключить к этому контакту землю и перезагрузить устройство. Так же на него подключается транзистор управляемый DTR выходом переходника USB-TTL.

GPIO1 (TX) и GPIO03 (RX) — это UART0 который используется в качестве порта для программирования в момент загрузки устройства. Вполне логично его использовать как порт для программирования и коммуникаций с UART устройствами. На различных отладочных платах он используется совместно с USB-TTL переходником. Через него выводится отладочная информация при загрузке.

GPIO2 — этот вход так же управляет загрузкой/прошивкой контроллера. Он должен быть притянут к земле в момент загрузки, у него уже имеется подтяжка к земле. По этому до полной загрузки контроллера этот контакт нельзя притягивать к питанию. Так же его часто подключают к внешнему синему светодиоду, которым в дальнейшем можно управлять из программы.

GPIO5 — управление Flash-памятью установленной внутри контроллера. При загрузке он будет притянут к питанию.

От GPIO6 до GPIO11 — это пины для подключения внешней flash-памяти, для того, чтобы их не трогали на ESP32-WROOM-32E их даже отключили, они все в состоянии NC. Но при проектировании своего собственного устройства нужно понимать, что это неиспользуемые контакты.

GPIO12 — управление питанием встроенной flash-памяти, состояние зависит от модели, почти на всех используемых мной платах используется подтяжка к земле. При загрузке нельзя манипулировать этим выводом.

GPIO15 — управление отладочной информацией, при подтягивании к питанию — вывод есть, при подтягивании к земле — вывода нет. При включении подтянуто к питанию.

Остальные выводы можно использовать согласно их назначению.

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

Основные выводы ESP32-WROOM-32D перечислены на картинке. Список немного «обрезанный», но можно понять для чего служат основные выводы.

Если использовать Arduino Studio для программирования этого контроллера, то можно сразу выделить порты по назначению:

UART0: GPIO1 (TX) и GPIO03 (RX)

UART2: GPIO17 (TX) и GPIO16 (RX)

SPI: GPIO23 (MOSI), GPIO19 (MISO), GPIO18 (CLK), GPIO5 (CS)

I2C: GPIO22 (SCL) и GPIO21 (SDA)

Цифроаналоговый преобразователь: GPIO25 (DAC1) и GPIO26 (DAC2)

Аналоговый вход не мешающий WiFi: GPI34, GPI35, GPI36 и GPI39

RTC: часовой кварц GPIO32 и GPIO33 (так же можно использовать как аналоговый вход или цифровой вход/выход)

Получается, что для произвольного использования доступны: GPIO13, GPIO16, GPIO17, GPIO25, GPIO26, GPIO27, GPIO32 и GPIO33.

Очень даже нормально иметь 8 абсолютно произвольных пина ввода/вывода. При условии, что остается UART, SPI и I2C в запасе.

Тэги: микроконтроллеры, ESP32 и ESP8266

Отредактировано:2023-06-14 13:58:38




1 комментарий
Имя: Дмитрий 🖉
Приветствую!

Готов купить ваш сайт orcinus.ru, в том числе по цене выше рыночной.

Меня зовут Дмитрий Купрацевич. В теме сайтов более 5 лет. Занимался улучшением более 50 проектов. Ищу качественные проекты, как ваш, чтобы продолжить их развитие.

Связь через Телеграм kupratsevich, почту kuprdimasites@gmail.com, whatsapp (+79959176538).
Комментарий оставлен: 2023-06-08 00:51:53
Ответ:
Предложение не интересует.
Ответ оставлен: 2023-06-08 06:55:17



Этот сайт использует файлы cookies, чтобы упростить вашу навигацию по сайту, предлагать только интересную информацию и упростить заполнение форм. Я предполагаю, что, если вы продолжаете использовать мой сайт, то вы согласны с использованием мной файлов cookies. Вы в любое время можете удалить и/или запретить их использование изменив настройки своего интернет-браузера.

Сообщайте мне о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта. Я готов сотрудничать со всеми желающими. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone: +7-902-924-70-49.

Top.Mail.Ru
Top.Mail.Ru LiveInternet Rambler's Top100 Яндекс.Метрика