Среди хороших идей здесь есть какие-то колдовские разговоры. Давайте постараемся быть более реалистичными в том, что происходит, и подведем итоги, которые стоит проверить:
В принципе, когда это происходит, рекомендуется включить подробный режим для AVRDUDE , чтобы лучше понять, что происходит. Для этого вам нужно только зайти в настройки и установить флажок подробного режима. Также неплохо отказаться от Arduino IDE и запустить консоль, чтобы было удобнее читать выходные данные AVRDUDE, которые вы получите при нажатии на upload
кнопку.
Здесь важно поставить 3 или 4 -v
на вызов команды. Вот как выглядят такие команды AVRDUDE с составленными параметрами, поскольку они полностью зависят от того, как был установлен Arduino:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Хороший способ получить правильную командную строку - это скопировать ее из подробного вывода журнала вывода Arduino IDE, когда многословие включено.
Когда вы получаете avrdude: stk500_recv(): programmer is not responding
это, это в основном означает, что что-то не так, до того, как начнется мигание.
В основном вам нужно проверить (от оборудования до программного обеспечения, от низкого уровня до высокого уровня):
- если на кабеле и / или разъемах нет микропрезов;
- если точки пайки не замыкаются накоротко (то есть касаются чего-то металлического вокруг), это означает:
- если на печатной плате нет короткого замыкания между
Rx
и Tx
(обычно это контакты 1
и 0
);
- если нет контакта с металлическим элементом под платой или крошечными битами между ножками компонента (например, FTDI, чипом ATmega или любым другим);
- если микросхема ATmega не отключена (короткое замыкание GND / V CC или обрыв или вход V CC не работает…);
- если
1
и 0
штырьки Arduino не используется какой - то щит или индивидуальный дизайн ( /!\
не относится к Леонардо , как это имеет независимую обработку USB);
- если конвертер USB в UART не имеет проблем (
FTDI
в более старых версиях Duemilanove или ATmega16U2 в более новых версиях Arduino Unos);
- если чип ATmega328 зажарен или неправильно установлен;
- если загрузчик был перезаписан или не работает;
- если для входа в загрузчик применяется правильная скорость передачи данных;
- если установлены правильные настройки для целевого микроконтроллера и платы;
Обычно это avrdude -v -v -v -v
может помочь найти, на каком этапе он терпит неудачу. Если он вообще не может установить USB-соединение (неисправность кабеля, USB / UART, PCB…) или это проблема с загрузчиком.
Обновление : я попытался повернуть бортовой ATmega и установить его в другом направлении. Теперь у меня нет проблем с загрузкой, но потом ничего не происходит. Встроенный светодиод тоже вроде не мигает.
Боюсь, что если вы поменяли положение ATmega на обратное, и он не работает, то факт, что вы поместили источник питания на цифровые контакты, мог сжечь ваш чип.