Как платы Arduino устраняют необходимость нажимать кнопки для прошивки?

Я сталкивался со многими шилдами Arduino для различных плат, таких как Uno, ESP8266 и ESP32, у которых иногда есть кнопка для перепрошивки, а иногда ее нет, поскольку перепрошивка происходит автоматически.

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

Процесс ручного нажатия кнопок для прошивки ESP32 выглядит следующим образом:

  • Удерживайте кнопку сброса (IO0 на землю)
  • Удерживайте кнопку вспышки (EN на земле)
  • Отпустите кнопку сброса (IO0 в свободном состоянии)
  • Отпустите кнопку Flash (EN на 3.3v)
  • Плата теперь находится в режиме мигания
  • Нажмите «Загрузить» в Arduino IDE
  • Подождите, пока в журнале IDE не появится сообщение «Подключение...»
  • Подождите, пока скетч полностью загрузится
  • Нажмите кнопку сброса (IO0 на землю, а затем на плавающий контакт)

Платы Arduino, такие как плата WeMos Lolin32, полностью исключают процесс нажатия кнопок во время процесса прошивки.

ВОПРОС: Какая часть оборудования на плате Lolin32 делает процесс прошивки автономным?

Вот схема ручной загрузки: Схема ручной загрузки

А вот плата WeMos Lolin32, которая полностью исключает процесс нажатия кнопок при загрузке скетча: Фотография платы Lolin32

Я думаю, что ответ будет применим и к любой другой плате с функцией автомигания.

, 👍2


1 ответ


Лучший ответ:

3

Я не знаком с этой платой, но согласно этой схеме: https://wiki.wemos.cc/_media/products:lolin32:sch_lolin32_v1.0.0.pdf

U4 (один из небольших 6-контактных компонентов) подключается к IO0 (контакт 25) на ESP-32. Транзистор внутри U4 объединяет сигналы RTS и DTR (от преобразователя U6 USB-Serial IC, который будет большой IC с маркировкой SIL2104), чтобы перевести IO0 в правильное состояние для прошивки. Сигналы RTS и DTR могут быть установлены хостом (компьютером, выполняющим прошивку).

Извините за отсутствие подробностей, но если говорить кратко, то компоненты U4 и U6 на плате работают вместе по команде с хост-компьютера, чтобы перевести IO0 в правильное состояние для прошивки.

,

Теперь я знаю немного больше о компонентах на шилдах Arduino! Спасибо, что разобрались в этом для меня., @DemSec

После этого я узнал больше о компоненте U6 (SIL 2104 F01BP 1711+) и выяснил, почему у него 4 контакта GPIO: https://www.silabs.com/documents/public/data-sheets/cp2104.pdf, @DemSec

@DemSec, я думаю, что у него 4 контакта GPIO, потому что производитель решил, что это сделает устройство более полезным., @jsotola