Восстановление Arduino со сломанным Setup()

programming hardware programmer arduino-setup

Возможно, я заблокировал свой Arduino Pro Micro, написав неработающий код в функцию setup(). Когда я подключаю Pro Micro к компьютеру, я вижу, что он на короткое время регистрирует COM-порт, прежде чем он исчезает. Заземление и отключение контакта RST приводит к тому, что устройство на короткое время снова появляется на моей панели управления. Попытка загрузить пример блинка из Arduino IDE не удалась, поскольку COM-порт исчезает до завершения процесса.

Есть ли альтернативный способ прошивки кода на Arduino, который я мог бы использовать, чтобы исправить это? У меня есть рабочий Pro Nano, которым я могу воспользоваться при необходимости.

, 👍0

Обсуждение

Попробуйте заземлить RST дважды подряд., @Majenko

При работе с любым микроконтроллером полезно всегда иметь под рукой программатор для аппаратного обеспечения. Загрузчики — это очень хорошо, но если они идут не так, как надо, вы застреваете. Приобретите на eBay USB-ASP (~ 2 доллара из Китая — адаптер приобретите вместе с ним)., @Majenko


2 ответа


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

2

По предложению Маженко я попробовал изучить USB ASP, а затем исследовал, можно ли использовать Arduino в качестве ASP. Вроде, как бы, что-то вроде. Я не уверен, что ASP — это то же самое, что и ISP, но я использовал Arduino Nano в качестве ISP для программирования Arduino Pro Micro.

Для этого я открыл пример скетча ArduinoISP и записал его на Nano (через USB). Затем я подключил его к макетной плате вместе с Pro Micro. Подключил следующие контакты:

nano pin          micro pin
13                15 (SCK)
12                14 (MISO)
11                16 (MOSI)
10                RST
5v                5v
GND               GND

Важно подключить конденсатор от Nano RST к GND. Мне сказали использовать конденсатор емкостью 10 мкФ, но у меня под рукой был конденсатор емкостью 1 мкФ, который работал нормально. Затем я открыл пример скетча Blink, настроил Arduino IDE для программирования Pro Micro и установил для программатора режим «Arduino как ISP». Удерживайте Shift, нажмите «Загрузить», проблема решена. В Pro Micro работает Blink, и теперь я могу распознать его и запрограммировать через USB.

Поэтому я согласен с Маженко; кто-то, столкнувшийся с этой проблемой, должен купить программатор. Но только если у вас нет запасного Arduino ;)

,

ASP в [USBasp](https://www.fischl.de/usbasp/) — это всего лишь часть имени. Вероятно, это означает что-то вроде USB Atmel/AVR Serial Programmer. Он по-прежнему использует протокол ISP., @Gerben

Стоит отметить, что мой программатор Arduino-Arduino начал меня подводить. Я не знаю точно почему, но я больше не могу это осуществить. Требуются дополнительные исследования. Я покупаю USBasp, чтобы посмотреть, что смогу спасти., @Bo Thompson


2

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

Вот как.

Перейти к настройкам в Arduino IDE

Установите параметр Показывать подробный вывод во время загрузки.

Загрузите скетч мигания. (arduino не обязательно подключать)

После компиляции проверьте окно журнала в нижней части IDE.

Вы найдете такую строку:

E:\arduino\hardware\tools\avr/bin/avrdude -CE:\arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\xxxxxxx\AppData\Local\Temp\build918c1e88f8d0a4c453f8bdfce4cccd30.tmp/Blink.ino.hex:i

Это настоящая команда загрузки кода.

Скопируйте командную строку и вставьте ее в окно CMD Windows.

Отредактируйте COM-порт в соответствии с вашим Arduino.

Перезагрузите Arduino и сразу нажмите Enter, чтобы запустить командную строку.

Возможно, вам повезет, и загрузка «проскочит».

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

Вы также можете создать файл BAT, чтобы двойной щелчок по значку запускал загрузку.

,