среда, 10 октября 2018 г.

Прошивка USBasp

avrdude: warning: cannot set sck period, please check for usbasp firmware update

Если при использовании USBasp в логе avrdude у вас появляется сообщение
avrdude: warning: cannot set sck period, please check for usbasp firmware update, но при этом программатор исправно выполняет команды, то, скорее всего, проблема в устаревшей прошивке USBasp. В этой статье я по шагам расскажу, как обновить прошивку USBasp, используя Ардуино в качестве программатора.

1. Подготовка Ардуино

В качестве программатора можно использовать любую имеющуюся плату Ардуино. Для этого подключаем ее к компьютеру и загружаем в нее скетч ArduinoISP из стандартных примеров:

ArduinoISP sketch file

2. Подключение USBasp к Ардуино

Микроконтроллеры семейства AVR, а значит и базирующиеся на них платы (как Ардуино, так и USBasp) поддерживают программирование по ISP-технологии с использованием линий связи SPI. Поэтому сейчас нам нужно:

  • соединить выводы Ардуино MOSI, MISO, SCK GND и VCC (5В или 3.3В) с одноименными выводами USBasp;
  • цифровой вывод 10 Ардуино подключить к выводу RESET USBasp;
  • установить электролитический конденсатор на 10мкФ между RESET и GND Ардуино, чтобы предотвратить автоматическую перезагрузку. Хотя возможно будет работать и без конденсатора, зависит от используемой платы Ардуино.
Для подключения можете использовать как ICSP разъем Ардуино, так и цифровые выводы - не принципиально. Я, например, взял MOSI, MISO, SCK, GND и VCC с ICSP разъема:

Обновление прошивки USBasp через Ардуино

На всякий случай приведу таблицу соответствия сигналов MOSI, MISO и SCK цифровым выводам различных плат Ардуино:

Плата Ардуино MOSI MISO SCK
Uno, Duemilanove 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Nano 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Pro Mini 11 12 13
Mega1280, Mega2560 51 или ICSP-4 50 или ICSP-1 52 или ICSP-3
Leonardo ICSP-4 ICSP-1 ICSP-3 
Due ICSP-4 ICSP-1 ICSP-3 
Zero ICSP-4 ICSP-1 ICSP-3
101 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3

3. Установка джампера JP2 на USBasp

На плате USBasp присутствуют 3 джампера, хотя распаян у вас, скорее всего, будет только JP1 - выбор напряжения питания программируемого микроконтроллера. Для прошивки USBasp (и любых других манипуляций с ним при помощи программатора) необходимо установить джампер JP2. Советую не мучиться с замыканием контактов подручными средствами и впаять пару штырьков, так будет надежней:


4. Скачивание прошивки

Заходим на страничку автора USBasp https://www.fischl.de/usbasp/ и скачиваем последнюю версию прошивки в разделе Download - Firmware and circuit. На момент написания данной статьи актуальной является версия от 28.05.2011. Файлы прошивки находятся внутри архива по пути \usbasp.2011-05-28\bin\firmware\, их там три штуки, для каждого типа микроконтроллера (программатор USBasp может быть построен на базе ATmega8, ATmega48 или ATmega88). У меня в USBasp установлен микроконтроллер ATmega8, поэтому я буду использовать файл usbasp.atmega8.2011-05-28.hex.

Прошивать USBasp будем при помощи уже знакомого нам avrdude, входящего в состав IDE Arduino. Файл прошивки нужно поместить в каталог avrdude, чтобы потом не пришлось указывать полный путь к нему. Для этого запускаем Проводник Windows и переходим в каталог Arduino_dir\hardware\tools\avr\bin\, где Arduino_dir - это путь к IDE Arduino. В моем случае он выглядит так: d:\Arduino\arduino-1.6.12\hardware\tools\avr\bin\, сюда я копирую файл usbasp.atmega8.2011-05-28.hex.

5. Прошивка USBasp

После копирования файла прошивки в каталог avrdude поместите курсор в адресную строку Проводника, удалите из нее путь, введите cmd и нажмите Enter.



Запустится интерпретатор командной строки. В нем нужно ввести команду:

avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex

Не забудьте проверить и с корректировать ее параметры:

-C ..\etc\avrdude.conf - путь к конфигурационному файлу (без этого параметра avrdude иногда ругается: can't open config file "": Invalid argument)

-p m8 - определяет тип микроконтроллера. Значение m8 сообщает avrdude о том, что мы собираемся работать с ATmega8. Если у вас в USBasp установлен ATmega48 или ATmega88, то замените это значение на m48 или m88 соответственно.

-P com18 - определяет COM порт, присвоенный плате Ардуино. У меня это com18, вам нужно подставить свое значение.

-U flash:w:usbasp.atmega8.2011-05-28.hex - определяет действие, которое мы хотим выполнить. В данном случае мы хотим записать в FLASH память данные из файла usbasp.atmega8.2011-05-28.hex. При необходимости скорректируйте имя файла прошивки в соответствии с типом микроконтроллера в USBasp.

Убедитесь, что команда набрана верно и программатор правильно соединен с Ардуино. После этого подключаем Ардуино к компьютеру и нажимаем Enter в интерпретаторе командной строки. Должен отобразиться прогресс перезаписи содержимого FLASH памяти, а затем сообщение об успешном выполнении команды - avrdude done. Thank you:


Теперь можно отключить USBasp от Ардуино, снять джампер JP2 и проверить работу программатора. Сообщения avrdude: warning: cannot set sck period, please check for usbasp firmware update больше быть не должно.

109 комментариев:

  1. Так джампер выбора напряжения должен стоять или нет?
    В моем случае arduino uno.
    Уже массу способов пробовал везде разные ошибки.
    pikit2 так же не прошивает и не считывает usbasp.
    Может ли быть дело в фьюзах?

    ОтветитьУдалить
    Ответы
    1. Установите его в позицию 5v. Avrdude что говорит?

      Удалить
    2. C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -p m8 -c arduino -P com6 -b 9600 -U flash:w:usbasp2017a8.hex
      avrdude: can't open config file "": Invalid argument
      avrdude: error reading system wide configuration file ""

      Удалить
    3. Добавьте путь к conf файлу:
      avrdude -C ../etc/avrdude.conf -p m8 -c arduino -P com6 -b 9600 -U flash:w:usbasp2017a8.hex

      Удалить
    4. Воот пошло дело. Спасибо Владимир, Ваш способ дал понятный результат.

      avrdude: verifying ...
      avrdude: 4700 bytes of flash verified

      avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode

      avrdude done. Thank you.

      Удалить
  2. Pickit2 начал читать USbasp, записался мусор.
    Прошил Pickitом, при чтении hex какой нужно.

    ОтветитьУдалить
    Ответы
    1. Вы после прошивки usbasp пробовали его в работе?
      avrdude после записи проверяет флеш, он бы выдал verification error в случае ошибки.

      Удалить
    2. Этот комментарий был удален автором.

      Удалить
    3. Да, все заработало, спасибо за нормальную инструкцию.

      Использовал прошивку с поддержкой SPI микросхем памяти 24,25XXX в БИОС такие.
      Удачно прошил микросхему из магнитолы pioneer mx25L1633

      Удалить
  3. Всем доброго времени суток!
    У меня сначала ругался на конфиг файл, добавил путь. Теперь пишет:
    avrdude: Device signature = 0x000000
    avrdude: Yikes! Invalid device signature/
    Duble check connections and try again, or use -F tu override this check.
    avrdude done. Thank you.
    В чем может быть дело?((

    ОтветитьУдалить
    Ответы
    1. Добрый день.
      Похоже, что-то не так с подключением usbasp к ардуино. Проверьте все внимательно. Если не заработает, то пришлите мне фото подключения на VladimirTsibrov@yandex.ru
      Программатор-то сам рабочий? МК не перепаивали?

      Удалить
    2. Владимир, спасибо за быстрый ответ на мое сообщение.
      Программатор давно куплен, уже и не помню шил ли я им что-либо. Сейчас столкнулся с необходимость прошивки тиньки13 и попался в руки этот USBasp программатор. Решил воспользоваться им. Винда 7 видит его как USBasp, шиться через него никакими прогами не хочет, типа не видится в программах, потому решил его перепрошить. Попутно уже спаял за 15 мин Программатор Громова, но что-то им побаиваюсь прошивать тиньку13 из-за малого опыта общения с тиньками.
      Программатор подключен правильно, к цифровым выводам АрдуиноУно. Сама ардуинка прошита под ISP.

      Удалить
    3. На плате должен быть еще третий джампер. Попробуйте установить его вместо JP2

      Удалить
  4. Владимир, здравствуйте. При попытке прошить usbasp через нано, все вроде как у вас, кроме одной строчки: avrdude: safemode: Sorry, reading back fuses was unreliable.
    Подскажите в чем проблема.

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      По-моему, я тоже с таким сталкивался. Не думаю, что это проблема.
      После прошивки пробовали usbasp, работает?

      Удалить
  5. Нет, пишет:
    Avrdude: error: program enable: target doesn’t answer. 1
    Avrdude: initialization failed, rc=-1

    ОтветитьУдалить
    Ответы
    1. Можете попробовать перепрошить usbasp еще раз и сделать скриншот окна cmd, чтобы был виден вывод avrdude?

      Удалить
    2. А куда выложить скриншот?

      Удалить
  6. При прошивке битов fuse команда должна выглядить так: -U hfuse:w:uasbasp.atmega8.0xC9, верно?

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      Команда должна выглядеть не так. Формат команды вы можете посмотреть в публикации https://tsibrov.blogspot.com/2018/08/fuse-bits.html Но в любом случае не торопитесь с прошивкой фьюзов.
      В предыдущем комментарии вы писали, что при подключении к компьютеру usbasp определяется как неизвестное устройство. Попробуйте переустановить драйвера. Я использую эти: http://clc.la/usbasp-win-driver
      И проверьте все провода/соединения между Ардуино и usbasp. Причиной ошибки "Sorry, reading back fuses was unreliable" может быть ненадежный контакт.
      У вас ведь проблема с прошивкой? Что выдает avrdude?

      Удалить
    2. Спасибо, ознакомился с инструкциями. -U lfuse:w:0xEF:m -U hfuse:w:0xC9:m. Просто при верификации не мог прочитать младший фьюз-бит. В общем, прошил фьюзы, прошивку зашил без проблем. Как итог- программатор определился, но не работает. Стандартная ошибка. На reset присутствует напряжение 1.86В, при подключении только программатора. Может пин инициализировался не верно, хотя сброс работает.

      Удалить
    3. Добрый день!
      Какую ошибку выдает? Что и как прошиваете? Программатор работал перед перепрошивкой (если да, то не было необходимости устанавливать его фьюзы)? Без дополнительной информации сложно что-то рекомендовать. Например, при прошивке чистых микроконтроллеров, работающих на частоте 1МГц от внутреннего генератора нужно установить перемычку JP3 на usbasp.
      У меня самого был такой случай: usbasp не работал, avrdude выдавал какую-то ошибку. Хотя на вид все было правильно подключено. Как оказалось шлейф программатора был плохо обжат.
      В общем, проверьте все соединения и попробуйте еще раз. И напишите какую ошибку выдает avrdude.

      Удалить
    4. Добрый вечер, Владимир! Программирую usbasp на atmega8a. При очередном подключении программатор перестал видеть программируемый контроллер, что стало причиной поиска проблемы. Все прозвонил, проверил, осталось обновить прошивку. Ни как не вставала, что только не делал-ошибка: avrdude: error: programm enable: target doesn't answer. 1
      avrdude: initialization failed, rc=-1.
      Установил новую atmega8a. Программа зашилась, фьюзы тоже.но по-прежнему не видел подключенные контроллеры. В настоящее время, после некоторых манипуляций с прграмматором, последний перестал выходить на связь вовсе. Примитивнейшее устройство, но не поддалось диагностике. Правда после первой прошивки программатора, смог прочитать сигнатуры arduino, через которую и зашивал.

      Удалить
    5. Добрый вечер.
      Не знаю... Может фьюзы сбились после манипуляций и из-за этого ISP программатор не видит контроллер.

      Удалить
  7. Все доброго времени при заливки прошивки выдало эту ошибку
    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0047
    0x81 != 0x03
    avrdude: verification error; content mismatch

    avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and
    exited programming mode

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      Прошиваете Ардуиной? Попробуйте записать прошивку на меньшей скорости, например, 4800

      Удалить
    2. Не ардуино прошить хочу а USBASP через ардуино ну при малой скорости вот что выдает
      c:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.
      conf -p m8 -c arduino -P com3 -b 4800 -U flash:w:usbasp.atmega8.2011-05-28.hex
      avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x7f
      avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xff
      avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xff
      avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xff
      avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xff
      avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xff
      avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x7f
      avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x7f
      avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xff
      avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xff

      а при обычной скорости не чего не меня вот что
      c:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.
      conf -p m8 -c arduino -P com3 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex

      avrdude: AVR device initialized and ready to accept instructions

      Reading | ################################################## | 100% 0.01s

      avrdude: Device signature = 0x000000 (retrying)

      Reading | ################################################## | 100% 0.01s

      avrdude: Device signature = 0x000000 (retrying)

      Reading | ################################################## | 100% 0.01s

      avrdude: Device signature = 0x000000
      avrdude: Yikes! Invalid device signature.
      Double check connections and try again, or use -F to override
      this check.
      я так понял что он не хочет залить эту прошивку или что-то вроде этого , я просто начал эти заниматься заказал себе USBASP а он при прошивке друго МК пишет что (чип не отвечает) я так полазил по читал , пиш что прошить надо , ну меня только ардуино уно есть , вот нашел вашу статью решил по пробовать через нее

      Удалить
    3. немного полазив я нешел косяк исправил и теперь при заливки прошивки выдает это
      c:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.
      conf -p m8 -c arduino -P com3 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex

      avrdude: AVR device initialized and ready to accept instructions

      Reading | ################################################## | 100% 0.01s

      avrdude: Device signature = 0x1e9307 (probably m8)
      avrdude: NOTE: "flash" memory has been specified, an erase cycle will be perform
      ed
      To disable this feature, specify the -D option.
      avrdude: erasing chip
      avrdude: reading input file "usbasp.atmega8.2011-05-28.hex"
      avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
      avrdude: writing flash (4700 bytes):

      Writing | ################################################## | 100% 7.00s

      avrdude: 4700 bytes of flash written
      avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
      avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
      avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
      avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
      avrdude: reading on-chip flash data:

      Reading | ################################################## | 100% 3.56s

      avrdude: verifying ...
      avrdude: 4700 bytes of flash verified

      avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and
      exited programming mode

      avrdude done. Thank you.

      Удалить
    4. Значит прошивка загрузилась. Пробуйте usbasp

      Удалить
    5. Я вот это перевод и пишет что программирование не смогло пройти и не чего не продлилось
      avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and
      exited programming mode

      Удалить
    6. Вы пишите так, будто вас китайцы взломали и пишут от вашего имени.
      Еще раз. Usbasp вы прошили, в сообщениях avrdude есть строки, подтверждающие это. То что avrdude не смог считать фьюзы сейчас непринципиально. Вы проверили usbasp в работе? Если нет, то подключите его к ардуино и попробуйте, например, прочитать фьюзы (только не забудьте убрать джампер jp2). Какой результат?
      Если есть вопросы касательно использования usbasp, то загляните сюда: https://tsibrov.blogspot.com/2018/09/usbasp.html

      Удалить
  8. C:\Users\Артур>C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com6 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex
    "C:\Program" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    Что я не так делаю? Win10

    ОтветитьУдалить
    Ответы
    1. C:\>Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com6 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex
      Отказано в доступе.
      с такой командой такая проблема, не знаю с чем связана.

      Удалить
    2. Перейдите в каталог C:\Program Files (x86)\Arduino\hardware\tools\avr\bin и уже оттуда выполняйте команды, чтобы не указывать полный путь к avrdude
      Если же указываете полный путь, то возьмите его в кавычки

      Удалить
  9. Здравствуйте, Владимир! Замечательная статья! И особые благодарности за ответы на вопросы, иначе бы не прошил! ))). Подскажите, а где можно взять прошивку 2017 года usbasp2017a8.hex? В комментариях промелькнула.

    ОтветитьУдалить
  10. Прошил usbasp.atmega8.2011-05-28.hex замечательно, но на Ардуине 1.6.0 выдает ошибку avr-g++: error: spawn: No such file or directory. Загрузил в версии 1.8.2 - все отлично работает!!!

    ОтветитьУдалить
    Ответы
    1. Разобрался, мешал файл cygwin1.dll в каталоге hardware/tools/AVR/BIN Ардуины. Я его туда закинул при пошивке USBasp, очень просил-иначе не прошивался! Так что на Ардуине 1.6.0 программатор отлично работает, спасибо! Я им вылечил плату Нано3 (не хотела работать через разъем Микро-USB). Прошил загрузчик-и она заработала!!!

      Удалить
    2. Поздравляю!
      Насчет usbasp2017a8.hex - поищите в сети альтернативные прошивки usbasp. Я сам не пользовался ими, не было необходимости.

      Удалить
  11. Владимер здравствуйте! пытаюсь прошить китайский USBisp все делал про вашей инструкции, в итоге получилась вот такая строка в CMD:

    C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C:\Program Files(x86)\Arduino\hardware\tools\avr\etc\avrdude.conf -p m88 -c arduino -P com5 -b 19200 -U flash:w:usbasp.atmega88.2011-05-28.hex

    но все равно выдает ошибки:

    avrdude: can't open config file "C:\Program": No such file or directory
    avrdude: error reading system wide configuration file "C:\Program"

    подскажите что я делаю не так?

    ОтветитьУдалить
    Ответы
    1. Добрый день.
      Уже отвечал на аналогичный вопрос:
      Перейдите в каталог C:\Program Files (x86)\Arduino\hardware\tools\avr\bin и уже оттуда выполняйте команды, чтобы не указывать полный путь к avrdude
      Если же указываете полный путь, то возьмите его в кавычки

      Удалить
    2. Переделал код

      C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -p m88 -c arduino -P com5 -b 19200 -U flash:w:usbasp.atmega88.2011-05-28.hex

      выдало следующее сообщение:

      avrdude: AVR device initialized and ready to accept instructions

      Reading | ################################################## | 100% 0.01s

      avrdude: Device signature = 0x1e930f (probably m88p)
      avrdude: Expected signature for ATmega88 is 1E 93 0A
      Double check chip, or use -F to override this check.

      avrdude done. Thank you.

      Но прогроматор попрежнему определяется как HID(Humen interface Devices)

      Удалить
    3. Владимир вобщем немного порылся и перевел что написано в сообщениях в командной строке от Avrdude и там нет чипа m88 попробовал ввести тот который стоит по факту это m88v но прошивка не произошла а просто выдал большой список как я понимаю поддерживаемых чипов и там есть только m88p на свой страх и риск ввел его прошивка прощла!!!

      C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -p m88p -c arduino -P com5 -b 19200 -U flash:w:usbasp.atmega88.2011-05-28.hex

      avrdude: AVR device initialized and ready to accept instructions

      Reading | ################################################## | 100% 0.01s

      avrdude: Device signature = 0x1e930f (probably m88p)
      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: reading input file "usbasp.atmega88.2011-05-28.hex"
      avrdude: input file usbasp.atmega88.2011-05-28.hex auto detected as Intel Hex
      avrdude: writing flash (4716 bytes):

      Writing | ################################################## | 100% 7.13s

      avrdude: 4716 bytes of flash written
      avrdude: verifying flash memory against usbasp.atmega88.2011-05-28.hex:
      avrdude: load data flash data from input file usbasp.atmega88.2011-05-28.hex:
      avrdude: input file usbasp.atmega88.2011-05-28.hex auto detected as Intel Hex
      avrdude: input file usbasp.atmega88.2011-05-28.hex contains 4716 bytes
      avrdude: reading on-chip flash data:

      Reading | ################################################## | 100% 3.71s

      avrdude: verifying ...
      avrdude: 4716 bytes of flash verified

      avrdude: safemode: Fuses OK (E:F9, H:DD, L:FF)

      avrdude done. Thank you.

      на прогроматоре загорелся синий светодиод вместо краснго! но чтото он теперь не как не опредиляется windows вообще! нет ни в диспечере задач ни звука подключения при вставлениив гнездо USB

      Удалить
    4. Всё правильно avrdude написал, сигнатура 0x1E 0x93 0x0F - это ATmega88P. Не знаю чем конкретно этот микроконтроллер отличается от ATmega88 и будет ли работать с его прошивкой. До этого-то программатор работал? Драйвера пробовали переустановить?

      Удалить
    5. нет программатор не работал изначально просто определялся как HID devaise после пере прошивке вобще перестал как либо определяться.

      Удалить
  12. Здравствуйте, Владимир. Дальше "C:\WINDOWS\system32(знак больше)"в cmd не могу продвинуться. Как прописать avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex ? Я Чайник.

    ОтветитьУдалить
    Ответы
    1. Добрый день. IDE Arduino на каком диске? Если на D, то сначала введите и выполните команду
      D:
      Если на C, то она не нужна, вводите сразу следующую:
      Введите команду для перехода в каталог с avrdude. Например:
      cd d:\Arduino\arduino-1.8.8\hardware\tools\avr\bin\
      Путь, разумеется, свой впишите.
      Дальнейшие шаги в статье описаны

      Удалить
  13. Здравствуйте, Владимир. Споткнулся. Выводится сообщение...332: programmer type must be written as "id_type" Подскажите решение пожалуйста.

    ОтветитьУдалить
    Ответы
    1. Решилось. Снял перемычку на прогр-ре jp 2. Спасибо.

      Удалить
  14. добрый вечер
    подскажите пожалуйста что делаю не так
    пишет синтаксическая ошибка
    за ранее спасибо

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      Приложите полный текст команды и сообщения avrdude. Или ссылку на скоиншот.

      Удалить
  15. Добрый вечер! у меня про сто читает а не записывает.
    C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com4 -b19200 -Uflash:w:usbasp.atmega8.2011-05-28.hex

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x3c0102
    avrdude: Expected signature for ATmega8 is 1E 93 07
    Double check chip, or use -F to override this check.

    avrdude done. Thank you.

    ОтветитьУдалить
  16. C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com4 -b19200 -Uflash:w:usbasp.atmega8.2011-05-28.hex -F

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.01s

    avrdude: Device signature = 0x000102
    avrdude: Expected signature for ATmega8 is 1E 93 07
    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: reading input file "usbasp.atmega8.2011-05-28.hex"
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: writing flash (4700 bytes):

    Writing | ################################################## | 100% 7.12s

    avrdude: 4700 bytes of flash written
    avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
    avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 3.56s

    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
    0x00 != 0x3b
    avrdude: verification error; content mismatch

    avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode

    avrdude done. Thank you.

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      У вас сигнатура читается некорректно, поэтому запись не идет. Не нужно отменять ее проверку параметром -F. Вместо этого проверьте соединение, все контакты должны быть надежными.

      Удалить
  17. Сколько комментов :) Скаяайте SinaProg 1.5.5.10 и всё заработает без танцев с бубном.

    ОтветитьУдалить
    Ответы
    1. Танцы с бубнами - это работа в командной строке? Вы бы комментарии почитали, увидели, что за редким исключением люди задают вопросы совсем не об этом. Взять хоть последний комент, чем поможет синапрог, если из-за плохого соединения сигнатура читается некорректно? Ничем.

      Удалить
    2. (Скачайте SinaProg 1.5.5.10) это ещё хуже китайская бестолковщина.

      Удалить
  18. Что-то я не пойму, что хочет эта железка? Ввёл вот так. C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.
    conf -p m8-c arduino -P com8-U flash:w:usbasp.atmega8.2011-05-28.hex

    В ответ получил это. avrdude: no programmer has been specified on the command line or the config file Specify a programmer using the -c option and try again. avrdude: ни один программатор не был указан в командной строке или файле конфигурации укажите программатор с помощью параметра-c и повторите попытку

    ОтветитьУдалить
    Ответы
    1. Добрый день.
      Говорит, не указан программатор через опцию -с
      Попробуйте добавить пробелы перед параметрами -c и -U
      avrdude вроде бы переваривает отсутствие пробела перед значением параметра (т.е. -carduino), но не между самими параметрами

      Удалить
  19. Статья абсолютно ограничена по своему смыслу для понимания. (подключаем её к компьютеру и загружаем в неё скетч ArduinoISP) чем загружаем? Наверное, хреном! идём дальше, (Прошивать USBasp будем при помощи уже знакомого нам avrdude, входящего в состав IDE Arduino) Кому нам? И где эта IDE Arduino? Автор как будто объясняет какому-то из своих знакомому. В такой последовательности эта инструкция для подобной работы больше нагоняет бестолковщины, чем логику последовательных действий для обновления прошивки для USBasp. Поищу лучше у других. Поэтому практически как видно из всех комментариев ни у кого ничего не получается. А сам автор чтобы не видеть этого своего фиаско свалил и на комменты уже не отвечает.

    ОтветитьУдалить
    Ответы
    1. Вы можете загружать скетчи чем угодно, хоть хреном. Нормальные же люди, которые знакомы с Ардуино (а мой блог именно для таких) в состоянии сделать это без инструкций.
      А насчет "свалил, чтобы не видеть фиаско" - разуйте глаза, мой ответ выше. Найдете без инструкции?

      Удалить
  20. Всё получилось! Делал всё срого по инструкции, кондёр не подключал, винда 7-64 плата UNO.
    По-моему, всё разжёвано и выложено. Спасибо!!

    ОтветитьУдалить
    Ответы
    1. Благодарю за положительный отзыв

      Удалить
    2. avrdude: error: program enable: target doesn't answer. 1
      avrdude: initialization failed, rc=-1
      Double check connections and try again, or use -F to override
      this check.

      Ошибка при записи загрузчика.
      После прошивки USBasp

      Удалить
    3. Самая ни о чем не говорящая ошибка. И прошивка USBasp тут ни при чем. Проверяйте всё.

      Удалить











  21. C:\bin>avrdude -C c:\avrdude.conf -p m8 -c arduino -P com4 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe9

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x1e9307 (probably m8)
    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: reading input file "usbasp.atmega8.2011-05-28.hex"
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: writing flash (4700 bytes):

    Writing | ################################################## | 100% 8.28s

    avrdude: 4700 bytes of flash written
    avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
    avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 4.99s

    avrdude: verifying ...
    avrdude: 4700 bytes of flash verified

    avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode

    avrdude done. Thank you.

    ОтветитьУдалить
  22. вроде шьется но фузы прочитать не может

    ОтветитьУдалить
  23. подскажите пожалуйста что не так ?

    ОтветитьУдалить
    Ответы
    1. На это можно не обращать внимания, если прошивка и проверка выполнились успешно. В чем именно причина сказать сложно.
      Если вы дадите команду именно для чтения фьюзов, уверен, она выполнится корректно.

      Удалить
    2. Спасибо. Да железка работает...но не совсем: скетч заливаю (просто моргалка светодиода для проверки) а он не работает. Далее заливаю загрузчик из ArduinoIDE (через эту USBasp) загрузчик заливается и становится возможным залить скетч "стандартно" через USB из ArduinoIDE...после этого светодиод начинает моргать как задумано в скетче (получается скетч не виноват). Вывод: USBasp функционирует нормально. Остается не понятно почему hex залитый через USBasp ни как не хочет моргать светодиодом.

      Удалить
    3. Hex через usbasp как заливаете? Из IDE Arduino, Скетч -> Загрузить через программатор?

      Удалить
    4. Подозреваю, что в МК не были корректно выставлены фьюзы. При записи загрузчика из IDE Arduino это было исправлено.

      Удалить
    5. :))) я тоже это же подозреваю...начал было фьюзы править и отправил одну мегу в нокдаун
      Подскажите как правильно выставить их ?

      Удалить
  24. ...или как их считать после программирования через IDE Arduino что бы потом такие же выставить при заливке через USBasp

    ОтветитьУдалить
  25. ...вот так не проканало

    C:\bin>avrdude.exe -C c:\avrdude.conf -p m2560 -c usbasp -P usb -b 19200 -U lfuse:r:-:h

    avrdude.exe: error: program enable: target doesn't answer. 1
    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.


    avrdude.exe done. Thank you.

    ОтветитьУдалить
  26. ...прочитал

    C:\bin>avrdude.exe -C c:\avrdude.conf -p m2560 -c usbasp -P usb -U lfuse:r:-:h

    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.03s

    avrdude.exe: Device signature = 0x1e9801 (probably m2560)
    avrdude.exe: reading lfuse memory:

    Reading | ################################################## | 100% 0.02s

    avrdude.exe: writing output file ""
    0xff

    avrdude.exe: safemode: Fuses OK (E:FD, H:D8, L:FF)

    avrdude.exe done. Thank you.

    ОтветитьУдалить
  27. залил hex через USBasp c E:FD, H:D8, L:FF всё равно не мигает

    ОтветитьУдалить
    Ответы
    1. попробуйте с такими:
      E:FD H:DF L:FF

      Удалить
    2. не помогло

      почему то в логе всё равно

      Cформированная командная строка:
      avrdude.exe -p m2560 -c usbasp -P usb -U calibration:r:calibration.hex:r


      avrdude.exe: AVR device initialized and ready to accept instructions

      Reading | ################################################## | 100% 0.00s

      avrdude.exe: Device signature = 0x1e9801
      avrdude.exe: reading calibration memory:

      Reading | ################################################## | 100% 0.00s

      avrdude.exe: writing output file "calibration.hex"

      avrdude.exe: safemode: Fuses OK (E:FD, H:D8, L:FF)

      avrdude.exe done. Thank you.



      ...хоть и задавал как вы посоветовали E:FD H:DF L:FF

      Удалить
    3. ...если фьюзы по умолчанию то всё равно
      avrdude.exe: safemode: Fuses OK (E:FD, H:D8, L:FF)

      Удалить
    4. могут они из HEXа браться ???

      Удалить
    5. ваша команда:
      avrdude.exe -p m2560 -c usbasp -P usb -U calibration:r:calibration.hex:r
      - это чтение байтов калибровки с записью результата в файл calibration.hex

      для записи фьюзов должно быть что-то типа
      avrdude.exe -c usbasp -P usb -p m2560 -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m -U efuse:w:0xFD:m
      За правильность синтаксиса не ручаюсь, т.к. не проверял

      Удалить
  28. C:\bin>avrdude.exe -C c:\avrdude.conf -c usbasp -P usb -p m2560 -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m -U efuse:w:0xFD:m

    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.02s

    avrdude.exe: Device signature = 0x1e9801 (probably m2560)
    avrdude.exe: reading input file "0xFF"
    avrdude.exe: writing lfuse (1 bytes):

    Writing | ################################################## | 100% 0.01s

    avrdude.exe: 1 bytes of lfuse written
    avrdude.exe: verifying lfuse memory against 0xFF:
    avrdude.exe: load data lfuse data from input file 0xFF:
    avrdude.exe: input file 0xFF contains 1 bytes
    avrdude.exe: reading on-chip lfuse data:

    Reading | ################################################## | 100% 0.01s

    avrdude.exe: verifying ...
    avrdude.exe: 1 bytes of lfuse verified
    avrdude.exe: reading input file "0xDF"
    avrdude.exe: writing hfuse (1 bytes):

    Writing | ################################################## | 100% 0.01s

    avrdude.exe: 1 bytes of hfuse written
    avrdude.exe: verifying hfuse memory against 0xDF:
    avrdude.exe: load data hfuse data from input file 0xDF:
    avrdude.exe: input file 0xDF contains 1 bytes
    avrdude.exe: reading on-chip hfuse data:

    Reading | ################################################## | 100% 0.02s

    avrdude.exe: verifying ...
    avrdude.exe: 1 bytes of hfuse verified
    avrdude.exe: reading input file "0xFD"
    avrdude.exe: writing efuse (1 bytes):

    Writing | ################################################## | 100% 0.01s

    avrdude.exe: 1 bytes of efuse written
    avrdude.exe: verifying efuse memory against 0xFD:
    avrdude.exe: load data efuse data from input file 0xFD:
    avrdude.exe: input file 0xFD contains 1 bytes
    avrdude.exe: reading on-chip efuse data:

    Reading | ################################################## | 100% 0.02s

    avrdude.exe: verifying ...
    avrdude.exe: 1 bytes of efuse verified

    avrdude.exe: safemode: Fuses OK (E:FD, H:DF, L:FF)

    avrdude.exe done. Thank you.

    ОтветитьУдалить
  29. ...однако по прежнему не мигает

    ОтветитьУдалить
    Ответы
    1. ...повторно перезалил скетч через USBasp (с фьюзами по умолчанию H:99 L:62 E:FF) и тогда заработало !причем фьюзы остались avrdude.exe: safemode: Fuses OK (E:FD, H:DF, L:FF)!

      avrdude_prog 3.3 НЕ ШЬЕТ ФЬЮЗЫ

      Удалить
  30. Владимир, спасибо за помощь !

    ОтветитьУдалить
    Ответы
    1. Пожалуйста!
      Фьюзы, которые я дал, отличаются от ардуиновских (когда записывается загрузчик) тем, что программа начинает выполняться с 0 адреса, а не с секции загрузчика. Можете почитать про фьюзы здесь:
      https://tsibrov.blogspot.com/2018/08/fuse-bits.html

      Удалить
    2. да ... этой вашей статьей и руководствовался ... ещё раз благодарю

      Удалить
  31. Владимир, огромное спасибо за статью. Очень помогла. Подробная и понятная.

    ОтветитьУдалить
  32. Автору респект! Инструкция мегаподробная, даже дурак бы разобрался. Я разобрался. Спасибо! Теперь моя USBasp не ноет всякий раз "обнови - обнови"!

    ОтветитьУдалить
  33. Всем владельцам USBasp рекомендую ознакомится с данной темой: http://forum.easyelectronics.ru/viewtopic.php?f=17&t=10947&sid=1ffde8a6b4fd8a5224411c38fd30497b . Своего рода тюнинг программатора с увеличением возможностей, хотя честно говоря я предпочитаю CH341. Он более универсален и "надежен как автомат калашникова").

    ОтветитьУдалить
  34. Для тех кто не знаком с командной строкой MS-DOS лучший вариант создать файл, например, prog.bat с содержимым:

    rem --start file
    cd "C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\"
    avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com4 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex
    pause
    rem ------end file

    И запускать его.
    Команда cd это указание рабочей папки, где расположена avrdude, параметр com4, необходимо поменять на Ваш ком порт, присвоенный плате Ардуино, команда pause задержит закрытие окна (если что-то пойдёт не так вы сможете это увидеть :).

    ОтветитьУдалить
  35. Добрый День! Пытаюсь обновить USBASP при помощи Arduino NANO
    C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C:\Program Files(x86)\Arduino\hardware\tools\avr\etc\avrdude.conf -p m8 -c arduino -P com5 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex
    Путь стандартный по умолчанию ставил IDEE.
    В Windiws 10 в окне cmd пишет:
    C:\Windows\system32>C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C:\Program Files(x86)\Arduino\hardware\tools\avr\etc\avrdude.conf -p m8 -c arduino -P com5 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex
    "C:\Program" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    Что это значит?

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      Сейчас нет возможности проверить. Но указывать вот так путь - не лучший вариант. Возможно помогут кавычки. Или укажите относительный путь к avrdude.conf, то есть:
      -C ..\etc\avrdude.conf

      Удалить
    2. Спасибо! разобрался. Вот, Что нужно было сделать, а не изобретать свой путь к файлу - "После копирования файла прошивки в каталог avrdude поместите курсор в адресную строку Проводника, удалите из нее путь, введите cmd и нажмите Enter." Не внимательно читал.

      Удалить
  36. E:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com5 -b 4800 -U flash:w:usbasp.atmega8.2011-05-28.hex
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x05
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x05

    avrdude done. Thank you.

    подскажите пожалуйста новичку)) в ней уже залита эт прошивка или я что то не так делаю?

    ОтветитьУдалить
    Ответы
    1. Делали по этой инструкции? Конденсатор установили?

      Удалить
  37. avrdude: set SCK frequency to 16000 Hz

    вот такая вылазит ошибка после попытки прошить аттини13 через программатор
    перепрошивал программатор как описано в статье
    но после перепрошивки было сообщение avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode

    автор кому-то ответил по такой проблеме - не обращайте внимания все должно быть ок ...но по факту у меня вылазит avrdude: set SCK frequency to 16000 Hz
    и что делать хз

    ОтветитьУдалить
    Ответы
    1. А что было до перепрошивки usbasp? Прошивали им? Какую версию IDE используете? Какой драйвер для usbasp?

      Удалить
  38. У меня после прошивки перестал определяться порт. В чем может быть проблема?

    ОтветитьУдалить
    Ответы
    1. Порт? Имеете в виду usbasp? В диспетчере устройств он есть?

      Удалить
  39. Привет всем. Вчера занимался прошивкой своего программатора. Убил день. После пряники появляется устройство как неопознанное .И так с любой прошивкой. Новой ,старой. У нас главное статью написать
    а там трава не рости.Мне надо прошить мега8 .
    Взял программу avrdude_prog 3,3 , ПРОШИВКУ USBASP.ATMEGA8.2011-05-28
    Выставил фьзы как lock byty 3F
    fuse high byte D9
    low byte 9F
    fuse byte 00
    Fuses прямые. Прошиваете чип , и подключив к компу ведёте новое устройство usbasp.
    Наслаждайтесь.

    ОтветитьУдалить
  40. Да для справки , все мероприятия делал на windows 10 64 битной.

    ОтветитьУдалить