Программирование ARM ESP32: как реализовать автозагрузку прошивки Thu, March 28 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

ESP32: как реализовать автозагрузку прошивки Печать
Добавил(а) microsin   

В процессе программирования ESP32 разных моделей часто приходится отлаживать программу по методу прошил-проверил. Прошивка осуществляется по последовательному порту UART0 с помощью встроенного загрузчика.

Встроенный загрузчик активируется удержанием в лог. 0 ножки порта GPIO9 в момент сброса или включения питания. Сброс производится подачей лог. 0 на ножку EN микроконтроллера. На многих платах разработчика для этой цели предусмотрены кнопки BOOT и RST.

На некоторых платах, где есть мост USB-UART, реализована функция управления сигналами BOOT и RST путем управления уровнями DTR и RTS. Этими дополнительными сигналами управляет утилита загрузки. Обычно это python-скрипт idf.py, входящий в состав кроссплатформенной системы разработки ESP-IDF [1]. На некоторых платах схема автозагрузки не реализована, поэтому приходится её делать самому.

Ниже показана простая схема автозагрузки на примере микроконтроллера ESP32-C3 (взята из схем отладочных плат ESP32-C3, см. архив [2]). Она может быть реализована на любых биполярных транзисторах структуры n-p-n, например на 2N3904 или BC548. Сигнал CHIP_PU (EN, RST) должен приходить на ножку 7 корпуса QFN32 микроконтроллера ESP32-C3, а сигнал GPIO9 (BOOT) соответственно на ножку 15. Оба эти сигнала имеют активный уровень лог. 0, и по умолчанию находятся в лог. 1. Аналогичная схема используется для любых микроконтроллеров серий ESP32.

autoboot sch

После подключения этой схемы начинают работать команды idf.py flash, idf.py monitor и другие, которые взаимодействуют со встроенным загрузчиком ESP32.

[Ссылки]

1. Установка среды разработки ESP-IDF для ESP32.
2. 220909ESP32-C3-devkits-pinouts.zip - документация, принципиальные схемы плат разработчика, pdf-файлы с цоколевкой.

 

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


Защитный код
Обновить

Top of Page