Usbasp avrdude. Программирование микроконтроллеров с помощью USBasp: руководство по решению проблем

Как правильно настроить и использовать программатор 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:

  1. Скачайте и запустите Zadig
  2. Подключите USBasp к компьютеру
  3. В Zadig выберите устройство USBasp
  4. Выберите драйвер libusbK
  5. Нажмите «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 работает корректно, можно выполнить следующие шаги:

  1. Подключите USBasp к компьютеру без микроконтроллера
  2. Запустите avrdude с параметром -v для вывода подробной информации:
    avrdude -c usbasp -p m328p -v
  3. Проверьте вывод на наличие ошибок связи с USBasp
  4. Подключите тестовый микроконтроллер и попробуйте считать его сигнатуру:
    avrdude -c usbasp -p m328p -v
  5. Успешное чтение сигнатуры означает, что USBasp работает правильно

Обновление прошивки USBasp

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


Процесс обновления прошивки USBasp:

  1. Скачайте актуальную версию прошивки с официального сайта
  2. Подключите второй программатор к USBasp
  3. Установите перемычку обновления на USBasp
  4. Используйте avrdude для записи новой прошивки:
    avrdude -c usbasp -p atmega8 -U flash:w:usbasp.2011-05-28.hex:i
  5. Удалите перемычку обновления

После обновления прошивки 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. EXE является последней версией (по какой-то причине более ранняя версия не работает с более новыми USB-драйверами)
  • в случае использования клона (например, с идентификатором поставщика «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 сделано.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *