28 января 2014 г.

Смена прошивки в программаторе USBasp

Существуют простые и дешевые программаторы для прошивки м/к Atmega,например USBasp, цена такого программатора на ebay.com около 3$. 



Доработка программатора USBasp
для устранения ошибки: avrdude: warning: cannot set sck period. please check for usbasp firmware update


При программировании некоторых микроконтроллеров (например серии ATtiny) возможны не фатальные ошибки. И хотя программирование микроконтроллера происходит успешно, обновить прошивку на программаторе рекомендуется.
Что для этого нужно ? Вы можете использовать плату arduino как программатор или использовать другой USBasp программатор.Для программирования используются те же выводы SCK,MISO,MOSI,RESET.
А) Порядок действий для прошивки через arduino:
1. Подключаем выводы SCK,MISO,MOSI,RESET к Arduino согласно инструкции.
2. Установавливаем перемычку self programming (на фото обозначена как JP2),обычно место для перемычки не распаяно.
3. Качаем последнюю версию прошивки usbasp.2011-05-28 тут и кидаем в папку путь_к_папке_ардуины_/hardware/tools/.
4. Открываем консоль Linuxвводим проверочную команду (не забывем указать верный порт, на котором подключена Arduina !!!):
avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 -b 19200 -p m8 -v  

Программа выдаст сообщение, где покажет состояние фьюзов и другую информацию:
flashISPtest
Если Вы видите такие же сообщения - значит подключено все правильно, можно прошивать командой:
avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 -b 19200 -p m8 -U flash:w:usbavr.hex -U lfuse:w:0xef:m -U hfuse:w:0xc9:m

Успешная прошивка:
 flashISPflashISPfuse






Б) Порядок действий для прошивки через другую USBasp:

Прошивка аналогична прошивке обычного микроконтроллера: подключаем выводы SCK,MISO,MOSI,RESET один в один шлейфом идущим в комплекте с программатором. Не забываем про перемычку JP2.

Указываем опцию
 -c usbasp вместо -c avrisp в командах приведенных выше.


___


http://homes-smart.ru/index.php/oborudovanie/arduino/proshivka-mikrokontrollerov-atmega-cherez-usbasp

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

  1. Статья помогла, но не доработанная, автору полуреспект, тот кто будет делать по этой статье, ничего не заработает. Вот что нужно сделать что бы заработало:
    1. Необходимо установить, в корень!!! диска С, AVRDUDE — консольная программа для прошивки AVR. Она входит в состав ПО WinAVR (ссылка на последнюю версию: http://sourceforge.net/projects/winavr/files/latest/download?source=files. Если у вас программатор USBASP, тогда вам необходимо заменить файл конфигурации avrdude.conf. Ссылка на него тут: https://www.dropbox.com/s/vqidwr6wqmybve7/avrdude.conf. По-умолчанию он находится в папке C:\WinAVR-20100110\bin.
    Далее идем по статье, но 4 пункт в командной строке нужно начинать со следующей записи: cd /d C:\WinAVR-20100110\bin, далее пишем как в пункте 4 (не забываем всегда указывать верный порт, на котором подключена Arduina !!!) например,
    avrdude -C avrdude.conf -c avrisp -P COM29 /dev/ttyUSB0 -b 19200 -p m8 -v . Ка проверили программатор, нужно сохранить старую прошивку, avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 -b 19200 -p m8 -U flash:r:firmware_old.hex:i, файл хекс старой прошивки сохранится в папку c:\WinAVR-20100110\bin\. Как считали старую прошивку, приступаем к записи новой, прежде скопировав файл новой прошивки usbavr.hex в папку c:\WinAVR-20100110\bin\. Далее пишем командную строку которая в статье и не забываем всегда указывать верный порт, на котором подключена Arduina !!! например,
    avrdude -C avrdude.conf -c avrisp -P COM29 /dev/ttyUSB0 -b 19200 -p m8 -v. Всем удачи!!!

    ОтветитьУдалить
  2. Выдаёт ошибку,
    avrdude: AVR device initialized and ready to accept instructions
    avrdude: Device signature = 0x1e920a
    avrdude: Expected signature for ATMEGA48 is 1E 92 05
    Double check chip, or use -F to override this check.

    avrdude done. Thank you.
    Что не так

    ОтветитьУдалить
  3. Пытаюсь прошить через ардуино про мини

    ОтветитьУдалить
  4. Попробовал нажимать кнопеу ресет на про мини,пишет:
    avrdude -C avrdude.conf -c avrisp -P com19 -b 19200 -p m48 -U flash:w:"C:\Users\Ñåðãåé\Desktop\SinaProg 2.1.1\data\usbasp.atmega48.2009-02-28.hex":a -q


    avrdude: stk500_getsync(): not in sync: resp=0x00

    avrdude done. Thank you.

    ОтветитьУдалить
  5. Видео с прошивкой программатора: https://www.youtube.com/watch?v=ZwjLjj2FP0U

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