Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Это небольшое руководство по прошивке новой прошивки на USBasp-клон вроде моего. Это руководство специально написано для клона USBasp, показанного на рисунках, однако оно должно работать и с другими. Схема подключения показана на шаге 5, на шаге 9 есть TL; DR.
Наслаждаться!
Шаг 1. Проблема
Avrdude сообщает мне, что у программатора, который я использую, устаревшая прошивка. Нормальной перемычки для самопрограммирования на моей плате нет. Вот как это исправить. Схемы USBasp можно найти на сайте fischl.de.
Шаг 2: Необходимые материалы
Тебе понадобится…
- Паяльник
- Arduino (желательно Nano)
- Некоторые перемычки
- ПК с установленной Arduino IDE и avrdude
Шаг 3: решение
Чтобы установить новую прошивку на ATmega8, нам нужно получить контроль над его выводом RESET. Обычно перемычка на USBasp может быть закрыта для включения самопрограммирования, однако производитель моей платы не включил ее.
На ATmega8 вывод RESET - это вывод 29, четвертый вывод сверху слева. Он подключен к подтягивающему резистору 10 кОм до 5 В. Мы должны подключить его к контакту 5 заголовка ICSP.
Мы могли бы попробовать припаять провод непосредственно к резистору или самому штырю, однако это утомительно и может повредить вашу плату. (Я попробовал и оторвал подтягивающий резистор, не рекомендую) Кроме того, есть способ намного проще!
Хотя производитель не включил настоящую перемычку для самопрограммирования, он поместил заголовок под микроконтроллер. Мы можем просто припаять провод поперёк и …
Шаг 4: Вуаля
Мы соединили два контакта сброса! Два отверстия внизу соединяют контакты 29 и 14 микроконтроллера.
Шаг 5: настройка Arduino
Чтобы прошить новую прошивку на программатор, нам понадобится другой программатор, в данном случае Arduino с эскизом ArduinoISP на нем. Чтобы убедиться, что ваша настройка такая же, раскомментируйте строку 81
// #define USE_OLD_STYLE_WIRING
Теперь подключите Arduino к заголовку ICSP на вашем программаторе.
Ардуино USBasp
5V Контакт 2 (VCC) GND Контакт 4/6/8/10 (GND) Контакт 10 Контакт 5 (Сброс) Контакт 11 Контакт 9 (MISO) Контакт 12 Контакт 1 (MOSI) Контакт 13 Контакт 7 (SCK)
USBasp остается отключенным от ПК.
Откройте терминал и введите
avrdude -cavrisp -pm8 -b19200 -P [Здесь указывается номер вашего порта, он должен быть таким же, как в Arduino IDE]
Если все пойдет правильно, avrdude должен распечатать некоторую информацию о ATmega8 (предохранители, подпись и т. Д.)
Шаг 6: Прошивка ATmega8
Для прошивки чипа нам еще нужна прошивка. Зайдите на fisch.de и загрузите последнюю версию. Распакуйте архив и перейдите к нему с помощью оболочки.
Компиляция кода у меня не сработала, но, к счастью, в архиве есть все скомпилированные программы под
bin / прошивка
Здесь вы должны увидеть три файла.hex. Выберите тот, имя которого совпадает с названием вашей фишки. Мой программист использует ATmega8, поэтому я выбрал
usbasp.atmega8.yyyy-mm-dd.hex
При рабочем подключении к ATmega8 для его перепрошивки требуется только набрать
avrdude -cavrisp -pm8 -b19200 -P [ПОРТ] -U flash: w: [шестнадцатеричный файл]
Если все было сделано правильно, avrdude должен записать и проверить выбранную прошивку.
Шаг 7. Убедитесь, что программист работает
Чтобы снова использовать USBasp в качестве программатора, мы должны удалить соединение между контактом 29 и контактом 14. Достаточно разрезать перемычку внизу, однако удаление ее также не повредит.
Вы можете попробовать его, снова подключив его к ПК и набрав
avrdude -cusbasp -pm8
Даже если avrdude не может достичь цели, он должен, по крайней мере, подтвердить новую прошивку нашего программатора.
Шаг 8: Устранение неполадок
Если avrdude покажет такую ошибку, вероятно, это как-то связано с функцией автоматического сброса Arduino. Чтобы обойти это, добавьте конденсатор между RESET и GND Arduino. Обычно рекомендуется использовать конденсатор 10 мкФ, однако в моем случае конденсатор 100 мкФ работал нормально.
Если вы получите сообщение об ошибке
avrdude: error: programm enable: target не отвечает. 1
или возвращена недействительная подпись, проверьте проводку. У меня была проблема с тем, что мои силовые кабели ржавели и больше не проводили электричество. Я рекомендую заранее проверить все перемычки.
Также не забудьте поменять местами контакты 11 и 12 на Arduino, если проблема не исчезнет.
Также убедитесь, что для Arduino установлена правильная скорость передачи данных как ISP, 19200. Ее можно установить с помощью опции
-b19200
Если у вас есть вопросы или вы заметили ошибку, дайте мне знать:)
Шаг 9: TL; DR
- Припаяйте провод к двум контактам в нижней части платы.
- Настройте Arduino как ISP, убедившись, что включена старая схема подключения.
- Подключите Arduino к программатору через заголовок ICSP
- Прошить новую прошивку на программатор
- Снимаем соединение снизу
- Не срывайте резисторы SMD