Как правильно настроить и использовать программатор USBasp для прошивки микроконтроллеров AVR. Какие основные проблемы могут возникнуть при работе с USBasp и как их решить. На что обратить внимание при подключении и настройке USBasp.
Что такое USBasp и для чего он используется
USBasp — это популярный USB-программатор для микроконтроллеров AVR. Он позволяет загружать прошивки и бутлоадеры в микроконтроллеры Atmel AVR, такие как ATmega, ATtiny и другие. USBasp подключается к компьютеру через USB-порт и не требует дополнительного питания.
Основные преимущества USBasp:
- Низкая стоимость
- Простота использования
- Совместимость с большинством микроконтроллеров AVR
- Поддержка популярных программ для прошивки (avrdude, Arduino IDE и др.)
- Возможность питания программируемой микросхемы
USBasp часто используется для программирования «голых» микроконтроллеров AVR или для восстановления микросхем с поврежденным загрузчиком.

Подключение USBasp к микроконтроллеру
Правильное подключение USBasp к микроконтроллеру очень важно для успешного программирования. Основные сигналы, которые нужно подключить:
- MOSI — Master Out Slave In (выход данных от программатора)
- MISO — Master In Slave Out (вход данных в программатор)
- SCK — Serial Clock (тактовый сигнал)
- RESET — сигнал сброса микроконтроллера
- VCC — питание микроконтроллера (если требуется)
- GND — общий провод
Точная схема подключения зависит от конкретной модели микроконтроллера. Обязательно сверяйтесь с даташитом на используемый микроконтроллер.
Настройка драйверов USBasp в Windows
Для корректной работы USBasp в Windows требуется установить правильные драйверы. Рекомендуется использовать драйвер libusbK, который можно установить с помощью утилиты Zadig:
- Скачайте и запустите Zadig
- Подключите USBasp к компьютеру
- В Zadig выберите устройство USBasp
- Выберите драйвер libusbK
- Нажмите «Install Driver»
После установки драйвера USBasp должен определиться в системе и быть готовым к работе.

Типичные проблемы при использовании USBasp
При работе с USBasp могут возникать различные проблемы. Рассмотрим наиболее распространенные из них и способы их решения.
Устройство не определяется в системе
Если USBasp не появляется в списке устройств Windows, проверьте:
- Надежность USB-подключения
- Работоспособность USB-порта и кабеля
- Правильность установки драйверов
Попробуйте переустановить драйверы с помощью Zadig или подключить USBasp к другому USB-порту.
Ошибка avrdude: usbasp_open(): не удалось найти устройство USB
Эта ошибка обычно означает проблемы с драйверами. Решение:
- Переустановите драйвер libusbK через Zadig
- Проверьте, нет ли конфликтов с другими драйверами в диспетчере устройств
- Попробуйте другой USB-порт
Ошибка avrdude: ошибка: программатор не отвечает
Такая ошибка может возникать из-за проблем с подключением или настройками. Проверьте:
- Правильность подключения всех проводов к микроконтроллеру
- Соответствие выбранного типа микроконтроллера в avrdude
- Попробуйте уменьшить скорость программирования (опция -B для avrdude)
Оптимизация настроек avrdude для работы с USBasp
Утилита avrdude используется для прошивки микроконтроллеров через USBasp. Правильная настройка параметров avrdude очень важна для стабильной работы.

Основные параметры для avrdude при работе с USBasp:
- -c usbasp — указание типа программатора
- -p <тип_мк> — тип микроконтроллера (например, m328p для ATmega328P)
- -B <период> — установка периода тактового сигнала SCK
- -U flash:w:<файл.hex>:i — запись прошивки во флеш-память
Пример команды для прошивки ATmega328P:
avrdude -c usbasp -p m328p -B 10 -U flash:w:firmware.hex:i
Опция -B позволяет уменьшить скорость программирования при проблемах с записью. Начните с больших значений (например, 100) и постепенно уменьшайте для поиска оптимальной скорости.
Проверка работоспособности USBasp
Чтобы убедиться, что USBasp работает корректно, можно выполнить следующие шаги:
- Подключите USBasp к компьютеру без микроконтроллера
- Запустите avrdude с параметром -v для вывода подробной информации:
avrdude -c usbasp -p m328p -v
- Проверьте вывод на наличие ошибок связи с USBasp
- Подключите тестовый микроконтроллер и попробуйте считать его сигнатуру:
avrdude -c usbasp -p m328p -v
- Успешное чтение сигнатуры означает, что USBasp работает правильно
Обновление прошивки USBasp
Иногда проблемы с USBasp могут быть связаны с устаревшей прошивкой самого программатора. Обновление прошивки может помочь решить некоторые проблемы и добавить новые функции.

Процесс обновления прошивки USBasp:
- Скачайте актуальную версию прошивки с официального сайта
- Подключите второй программатор к USBasp
- Установите перемычку обновления на USBasp
- Используйте avrdude для записи новой прошивки:
avrdude -c usbasp -p atmega8 -U flash:w:usbasp.2011-05-28.hex:i
- Удалите перемычку обновления
После обновления прошивки USBasp будет готов к работе с улучшенной функциональностью.
Заключение
USBasp — мощный и удобный инструмент для программирования микроконтроллеров AVR. При правильной настройке и использовании он позволяет легко прошивать различные микроконтроллеры. Основные моменты для успешной работы с USBasp:
- Правильное подключение к микроконтроллеру
- Корректная установка драйверов
- Оптимальные настройки avrdude
- Внимательность к деталям при возникновении проблем
Следуя рекомендациям из этой статьи, вы сможете эффективно использовать USBasp для своих проектов с микроконтроллерами AVR.
Не записывается загрузчик 328P | AlexGyver Community
Купил Pro mini на 328P камне. На нем так и написано
Решил залить загрузчик используя USBasp и ядро Minicore если в настройках выбирать 328P то шьется с ошибкой и говорит что плата 328 PB
avrdude: Version 6.3-20201216 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "C:\Users\Qiasar\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.3/avrdude.conf" Using Port : usb Using Programmer : usbasp AVR Part : ATmega328P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : usbasp Description : USBasp, http://www.fischl.de/usbasp/ avrdude: auto set sck period (because given equals null) avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9516 (probably m328pb) avrdude: Expected signature for ATmega328P is 1E 95 0F Double check chip, or use -F to override this check. avrdude done. Thank you. Failed chip erase: uploading error: exit status 1
Если выбирать 328 pb и шить, то он вроде шьется но есть залоченый байт.
avrdude: Version 6.3-20201216 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "C:\Users\Qiasar\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.3/avrdude.conf" Using Port : usb Using Programmer : usbasp AVR Part : ATmega328PB Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Programmer Type : usbasp Description : USBasp, http://www.![]()
fischl.de/usbasp/ avrdude: auto set sck period (because given equals null) avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9516 (probably m328pb) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: auto set sck period (because given equals null) avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: reading input file "C:\Users\Qiasar\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.3/bootloaders/empty/empty.hex" avrdude: writing flash (0 bytes): Writing | ################################################## | 100% -0.00s avrdude: 0 bytes of flash written avrdude: verifying flash memory against C:\Users\Qiasar\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2. 1.3/bootloaders/empty/empty.hex: avrdude: load data flash data from input file C:\Users\Qiasar\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.3/bootloaders/empty/empty.hex: avrdude: input file C:\Users\Qiasar\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.3/bootloaders/empty/empty.hex contains 0 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.00s avrdude: verifying ... avrdude: 0 bytes of flash verified avrdude: reading input file "0x0f" avrdude: writing lock (1 bytes): Writing | ################################################## | 100% 0.01s avrdude: 1 bytes of lock written avrdude: verifying lock memory against 0x0f: avrdude: load data lock data from input file 0x0f: avrdude: input file 0x0f contains 1 bytes avrdude: reading on-chip lock data: Reading | ################################################## | 100% 0.00s avrdude: verifying ... avrdude: 1 bytes of lock verified avrdude done. Thank you.
![]()
Подделку подсунули, как прошить то его?
Прошивка микроконтроллеров Atmega через USBasp
Прошивка микроконтроллеров Atmega без arduino через USBasp:
Купить программатор здесь
Существуют простые и дешевые программаторы для прошивки м/к Atmega ,которые поддерживает среда Arduino IDE- необходимо просто выбрать соотвествующий программатор USBasp в настройках Arduino IDE.USBasp необходим,если вы просто прошиваете микроконтроллеры Amtel.Программатор основан на м/к Atmega 8 и использует програмный USB.
Он имеет выход питания 5v/3.3 v(переключается перемычкой JP1) ,а так же соотвествующие выводы SCK, MISO, MOSI, RESET для подключению напрямую к микроконтроллеру.На картинке показаны выводы на самом программаторе — на разъеме шлейфа соответственно будет зеркально относительно ключа (у 5 вывода),не забывайте об этом.
Для работы в операционной системе Windows необходимы драйвера. Linux же не требует их.
Данный программатор легко превратить в друое устройство,например в I2C-USB переходник , USB контроллер с GIO или контроллер чтения термодатчиков DS18B20.
Программирование через USBasp в Arduino IDE
Для программирования микроконтроллеров,подключенных через USBasp в Arduino IDE необходимо выбрать его в программе.
Программирование осуществляется через меню файл,выбрав пункт «Загрузить с помощью программатора».Не забываем выбрать микроконтроллер в меню «сервис» ->»плата».
Программирование через USBasp утилитой avrdude
Утилиту avrdude можно найти в папке /hardware/tools/ в дистрибутиве Arduino IDE или скачать в интернете.
Для того,чтобы залить прошивку в микроконтроллер необходимо выполнить команду:
avrdude -c usbasp -p m8 -U flash:w:имя_файла.hex . где -p m8 — это модель микроконтроллера.В данном случае atmega 8.
Дополнительно так же можно установить фьюзы дописав :-U hfuse:w:0xХХ:m -U lfuse:w:0xХХ:m . Где ХХ — соотвествующие фьюзы микроконтроллера ,необходимые для конкретной прошивки.
Обычно прошивку можно осуществить через команду make flash ,если Вы имеете исходный код прошивки и установленную WinAVR.
В других средах программирования выбор программатора осуществляется через соответсвующее меню программы.
Обратите внимание, xто на некоторых микроконтроллерах с завода,например на серии Attiny включен по умолчанию фьюз CKDIV8 ,который устанавливает делитель на 8 и из-за этого USBasp не программирует такие микроконтроллеры пока не установить перемычку JP3 на USBasp.Для настройки фьюзов воспользуйтесь калькулятором фьюзов чтобы выставить нужные настройки , в том числе выключить данный делитель.Фьюзы прошиваются через avrdude командой avrdude -c usbasp -p имя_м/к -U lfuse:w:0xХХ:m .
Пример для установки фьюзов attiny85 для внутреннего генератора 8мгц с выключенным делителем на 8 :
avrdude -c attiny85 usbasp -p -U lfuse:w:0x62:m
При программировании через Arduino IDE можно установить нужные фьюзы выбрав в меню «записать загрузчик»,выбрав перед этим необходимый микроконтроллер.
avr — AVRDUDE не распознает устройство USBasp
Задавать вопрос
спросил
Изменено 2 месяца назад
Просмотрено 111 тысяч раз
\$\начало группы\$
У меня проблемы с программатором USBasp (Windows 10). Я установил драйвер WinUSB, используя zadig 2.4.
Когда я запускаю AVR dude со следующими параметрами
avrdude -c USBasp -p m32u4 -u -U flash:w:justahex.ino.hex:i
Он немедленно возвращается с этой ошибкой:
avrdude: ошибка: не удалось найти USB-устройство с vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
Ищет USB-устройство с идентификатором производителя «0x16c0» и идентификатором продукта «0x5dc». Это правильный набор идентификаторов согласно Zadig:
Также кажется, что диспетчер устройств находит устройство без проблем:
Когда я гуглю эту тему, я вижу много форумов, где у людей есть проблемы с работой их USBasp-устройства под Windows 10. Но в основном это так. возникли проблемы с драйверами libusb/WinUSB (в моем случае это нормально благодаря инструменту Zadig).
Так что я застрял в продвижении дальше. Есть ли что-то еще, что я могу проверить? Или устройство каким-то образом сломано (что меня удивило бы, поскольку оно правильно устанавливается в Windows)
- авр
- аврдуде
- usbasp
\$\конечная группа\$
4
\$\начало группы\$
Я немного опоздал в игру, но только что столкнулся с той же ошибкой (хотя и по другим причинам).
- в большинстве мест в Интернете вам будет предложено установить драйвер
libusbK
, который не работает, используйтеlibusb-win32 9Вариант 0057 вместо
- убедитесь, что инструмент
AVRDUDE.
является последней версией (по какой-то причине более ранняя версия не работает с более новыми USB-драйверами)EXE
- в случае использования клона (например, с идентификатором поставщика «Van Ooijen's technische informatica» вместо исходного имени «www.fischl.de») обязательно используйте
-c usbasp-clone -P usb
AVRDUDE. настройки вместо-c usbap -P usb
. Настройка клона заставляет AVRDUDE игнорировать описание поставщика и также принимать клон. Вы могли бы подумать, что правильной комбинации VID и PID будет достаточно, но нет...
Бонус: для самых ленивых вот пример командной строки, которая прошивает плату Arduino Leonardo от студии Atmel (внимание, это перезапишет загрузчик):
avrdude.exe -C"avrdude.conf" -p atmega32u4 -c usbasp-clone -P usb -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
\$\конечная группа\$
1
\$\начало группы\$
Решение найдено, и оно, конечно, очень простое, если знать. ..
В Zadig можно выбрать драйвер. По умолчанию выбран (в моем случае) драйвер WinUSB. Когда я выбираю драйвер libusb и устанавливаю этот драйвер, он работает как шарм.
Эй.
avrdude -vvv -c USBasp -p m32u4 -u -U flash:w:Duroduino.ino.hex:i avrdude: Версия 6.3, скомпилировано 17 февраля 2016 г. в 09:25:53. Авторское право (c) Брайан Дин, 2000–2005 гг., http://www.bdmicro.com/ Copyright (c) 2007-2014 Йорг Вунш Общесистемный файл конфигурации "c:\_SVN\p(r)ins\Durocan\Deployment\avrdude.conf" Использование порта: usb Использование программатора: USBasp avrdude: usbasp_open("usb") avrdude: видно устройство от поставщика ->www.fischl.de<- avrdude: видел продукт ->USBasp<- Часть AVR: ATmega32U4 Задержка стирания чипа: 9000 нас СТРАНИЦА: PD7 БС2 : ПА0 Расположение СБРОСА: посвященный ПОВТОРИТЬ импульс: SCK серийный программный режим: да режим параллельной программы: да Таймаут : 200 StabDelay : 100 CmdexeDelay: 25 Синхпетли: 32 Задержка байта: 0 Индекс опроса: 3 Поллвалуе: 0x53 Деталь памяти:
\$\конечная группа\$
1
\$\начало группы\$
Для корректной работы avrdude с USBAsp я счел лучшим установить драйвер libusbK, хотя бы под Windows 7. Таким образом, он работает как с официальной сборкой avrdude, так и со сборкой из Arduino IDE. С libusb-win32 или WinUSB он работает с одним, но не работает с другим.
\$\конечная группа\$
\$\начало группы\$
Решение этой проблемы состоит из двух частей. Во-первых, правильный драйвер USB, как указано в другом ответе, libusbk, установленный с помощью инструмента Zadig, решает эту часть.
Вторая часть заключается в том, чтобы заставить AVRDude распознавать устройство при использовании клона... недостаточно, чтобы устройство отображалось с правильным идентификатором поставщика, вам нужно указать AVRDude игнорировать URL-адрес веб-сайта в информации об устройстве. Как уже отмечалось, вы делаете это, используя -cusbasp-clone из командной строки... но это бесполезно, если вы пытаетесь программировать устройства непосредственно из Arduino Studio.
Найдите свой файл avrdude. conf (он говорит вам, какую конфигурацию он использует в выводе отладки Arduino) ... найдите запись для usbasp ... закомментируйте две строки ниже:
Programmer id = "usbasp"; desc = "USBasp, http://www.fischl.de/usbasp/"; тип = "usbasp"; тип_соединения = USB; usbvid = 0x16C0; # ВОТИ usbpid = 0x05DC; # Бесплатный общий PID Obdev #usbvendor = "www.fischl.de"; <-- закомментируйте с помощью #, как показано #usbproduct = "USBasp"; <-- закомментируйте с помощью #, как показано
Выбор usbasp в arduino studio теперь будет работать с устройствами-клонами.
\$\конечная группа\$
atmega - Как узнать, что USBasp работает?
спросил
Изменено 6 лет, 9 месяцев назад
Просмотрено 25 тысяч раз
\$\начало группы\$
У меня есть программатор USBasp, и я пытаюсь записать загрузчик на Atmega328, чтобы его можно было использовать в качестве замены чипа в плате Arduino (запасные чипы с установленным загрузчиком стоят довольно дорого).
Я установил драйверы USBasp - установка довольно проста благодаря руководству. Устройство опознано и работает исправно - согласно windows.
Затем я подключил контакты в соответствии с таблицей данных. После этого я запустил Arduino IDE и в качестве программатора выбрал USBasp:
Я заметил, что всякий раз, когда я наводил курсор на Инструменты
, IDE Arduino на некоторое время отставала. Но это может быть просто не связанная с этим ошибка программного обеспечения.
После того, как я выбрал правильный программатор, я нажал «Записать загрузчик
» и получил эту ошибку:
avrdude: предупреждение: невозможно установить период sck. Пожалуйста, проверьте наличие обновления прошивки usbasp. avrdude: ошибка: включение программы: цель не отвечает. 1 avrdude: инициализация не удалась, rc=-1 Дважды проверьте соединения и повторите попытку или используйте -F для переопределения. этот чек.
Я уже пытался запрограммировать этот чип с помощью Raspberry PI, но тоже безуспешно. И я до сих пор не могу понять, где ошибка. За исключением возможности, что я купил 2 пустых чипов.
Мой вопрос в том, как я могу протестировать все фрагменты моей системы и проверить, какой из них сломан. Ошибки AvrDude бесполезны.
Вот изображение моих подключений при попытке того же (и с тем же результатом) с AtTiny:
- atmega
- attiny
- программатор
- avrdude
- usbasp
\$\конечная группа\$
5
\$\начало группы\$
Сообщение об ошибке, которое вы видите, означает, что микросхема не отвечает на команду «включить режим программирования», которую отправляет программатор. Либо у вас неправильные соединения, либо программатор отправляет команды слишком быстро (слишком высокая частота программирования).
Новые микросхемы AVR поставляются настроенными на использование внутреннего генератора микросхемы в качестве источника тактового сигнала с установленным предохранителем CLOCKDIV8 («делите тактовую частоту на 8»). Это означает, что они работают на частоте 1 МГц. Максимальная частота программирования, поддерживаемая чипом, равна тактовой частоте/4, то есть 250 кГц. USBASP по умолчанию настроен на 375 кГц, что слишком быстро, поэтому вам нужно замедлить его.
Вы можете сделать это либо установив перемычку "slow SCK" вашего USBASP, если она есть, либо используя опцию avrdude -B:
avrdude -c usbasp -p m328p -B 5 -U flash:w: загрузчик.hex:я
Число после опции -B выбирает скорость программирования (в частности, тактовый период, обратный частоте, поэтому более высокие числа означают более медленные частоты). Если -B 5 не работает, попробуйте большее число, например -B12 или даже -B60.
Обновление: эта строка в выводе avrdude предполагает, что ваша версия микропрограммы USBASP не поддерживает опцию -B, поэтому вам нужно будет использовать перемычку:
avrdude: предупреждение: нельзя установить период sck. Пожалуйста, проверьте наличие обновления прошивки usbasp.![]()
\$\конечная группа\$
\$\начало группы\$
Недавно я пытался сделать небольшой проект, используя свой atmega8, но столкнулся с этой проблемой. Я думал, что у чипа есть недостатки из-за времени его использования, но я вспомнил, что в последний раз, когда я писал внутри него код, я запрограммировал фьюзы, чтобы он работал со своим внутренним генератором! И я попытался запрограммировать его (снова), но на этот раз с кристаллом и…. Та та таааа… это было!
\$\конечная группа\$
\$\начало группы\$
Я создал автономный Arduino, но при попытке запрограммировать его с помощью USBasp я получил ошибку OP. Следуя подсказке Cyberx86 о повторной проверке контактов, я обнаружил, что MOSI от адаптера программирования AVR показан на фотографии неправильно подключенным, хотя письменное описание выхода было правильным:
Обязательно обратитесь к схеме контактов Arduino, чтобы получить помощь в подключении.
- Контакт MISO вашего адаптера подключается к контакту 18 или цифровому контакту 12 Arduino вашего чипа Atmega.
- Контакт SCK вашего адаптера подключается к контакту 19 или цифровому контакту 13 Arduino вашего чипа Atmega.
- Контакт RESET вашего адаптера будет подключен к контакту 1 вашего чипа Atmega.
- Контакт MOSI вашего адаптера подключается к контакту 17 или цифровому контакту 11 Arduino вашего чипа Atmega.
На фото (темно-зеленый) провод, который должен идти на MOSI, контакт 17, на самом деле идет на контакт 16!
После того, как я исправил эту проблему и подключил MOSI от адаптера программирования AVR к контакту 17 на ATMega, ошибка исчезла.
\$\конечная группа\$
\$\начало группы\$
В моем случае с ATMega32A программист слишком быстро записывает данные в микроконтроллер, и параметр -B, заданный avrdude, устанавливает период SCK (и, следовательно, также частоту) на скорость, обеспечивающую правильную связь. Я потратил слишком много времени на то, чтобы эта установка работала, я думал, что микрокотроллер в какой-то момент умер.
-B Укажите период синхронизации JTAG/STK500v2 (США).
с ошибкой:
me@comp:~$ sudo avrdude -c usbasp -p m32 avrdude: ошибка: включение программы: цель не отвечает. 1 avrdude: инициализация не удалась, rc=-1 Дважды проверьте соединения и повторите попытку или используйте -F для переопределения. этот чек.
OK:
me@comp:~$ sudo avrdude -c usbasp -p m32 -B 5 // вы можете увеличить это значение // установить еще более низкую частоту avrdude: установите частоту SCK на 187500 Гц avrdude: устройство AVR инициализировано и готово к принятию инструкций Чтение | ################################################### | 100% 0,00 с avrdude: Подпись устройства = 0x1e9502 avrdude: safemode: Предохранители в порядке (E:FF, H:99, L:E1) avrdude сделано.