Как платы 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, которая полностью исключает процесс нажатия кнопок при загрузке скетча:
Я думаю, что ответ будет применим и к любой другой плате с функцией автомигания.
@DemSec, 👍2
1 ответ
Лучший ответ:
Я не знаком с этой платой, но согласно этой схеме: 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 в правильное состояние для прошивки.
- Невозможно загрузить скетч в Lolin S3 Pro (ESP32-S3)
- Какой это был скетч?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Максимальная последовательная скорость CH340
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Внешнее питание 5 В и последовательный порт USB
- Как прочитать входящие ШЕСТНАДЦАТИРИЧНОЕ значение из serial метод read ()?
Теперь я знаю немного больше о компонентах на шилдах Arduino! Спасибо, что разобрались в этом для меня., @DemSec
После этого я узнал больше о компоненте U6 (SIL 2104 F01BP 1711+) и выяснил, почему у него 4 контакта GPIO: https://www.silabs.com/documents/public/data-sheets/cp2104.pdf, @DemSec
@DemSec, я думаю, что у него 4 контакта GPIO, потому что производитель решил, что это сделает устройство более полезным., @jsotola