Usbasp avr doper – USB AVR программатор для микроконтроллеров ATmega, ATtiny

Смена прошивки в программаторе 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  

Программа выдаст сообщение, где покажет состояние фьюзов и другую информацию:

Если Вы видите такие же сообщения — значит подключено все правильно, можно прошивать командой:

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


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

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

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

Указываем опцию

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

___



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

avr-prog.blogspot.com

Обновление прошивки USBASP USBISP AVR Programmer / Блог им. GhostPVV / Сообщество EasyElectronics.ru

Недавно для обучения работе с Atmel AVR микроконтроллерами был куплен один из самых простых и недорогих программаторов USBASP USBISP AVR Programmer вот такого типа:
USBASP USBISP AVR Programmer

Данный программатор является одним из вариантов схемы проекта USBasp, вот оригинальный сайт:

USBasp

К слову, мне достался вариант ATMega8L, работающий в режиме разгона, на частоте 12МГц. По документации, должно быть не более 8МГц.

Не вдаваясь в подробности, решил обновить прошивку:
— взял прошивку usbasp.2011-05-28 с вышеуказанного сайта;
— замкнул на плате контакты J2;
— подключил 10pin разъем к другому программатору;
— залил прошивку;
— выставил fuse для atmega8: HFUSE=0xc9 LFUSE=0xef
Программатор определился в системе, но перестал видеть подключенные к нему контроллеры.

Процесс поиска решения проблемы описан здесь:
Форум

В итоге решение проблемы следующее:
— на всякий случай удалил два резистора R9 (270 Ом) и R10 (100 Ом), так как не совсем понимаю для чего необходимо подтягивать RXD и TXD сигналы к GND, да ещё при помощи резисторов столь малых номиналов;

— необходимо припаять перемычку с PC2(ADC2) на GND.

После вышеуказанных манипуляций программатор снова в строю.

Для счастливых обладателей вышеуказанного программатора — желаю учиться на чужих ошибках, для остальных — позволю себе напомнить главное правило, которое может помочь во многих житейских ситуациях: «работает — не трожь!» 🙂

Надеюсь кому-нибудь данная информация поможет.

P.S. Номиналы в схеме вышеуказанного программатора наиболее близки к указанным в следующей схеме:
USB программатор AVR — USBAsp

we.easyelectronics.ru

AVR-USB-MEGA16: USB bootloader USBasp для микроконтроллера ATmega32 | avr-working-with-usb

В статье описывается USB bootloader USBasp, который хорошо подходит для ATmega32. Он удобен тем, что эмулирует поведение популярного программатора USBasp, и для него подходят программы под этот программатор.

Этот бутлоадер я записываю во все макетные платы AVR-USB-MEGA16, оснащенные микроконтроллерами ATmega32, благодаря чему пользователь получает возможность заливать свою программу прямо через подключение по USB, и не нужен никакой дополнительный программатор. Внимание — USBasp bootloader не умеет работать с фьюзами (fuses) и EEPROM, несмотря на то, что в сервисных программах, обслуживающих USBasp (например, Khazama AVR Programmer) такая возможность имеется.

Значения фьюзов по умолчанию, которые прошиты в платы с usbasploader — LOW FUSE BYTE: 0xCF, HIGH FUSE BYTE: 0x98, LOCKOPT BYTE: 0xEF

.

[Как встроить в Ваш проект usbasploader]

Процесс подробно описан в статье на Хабре, статья называется «USB bootloader для микроконтроллеров AVR» и находится в разделе «DIY или Сделай Сам». Воспользуйтесь поиском и легко её найдете. Исходники можете скачать по ссылке в этой статье (см. Ссылки [4]). Само собой, загрузчик USBasp легко встраивается и в другие чипы ATmega, объем секции bootloader у которых равен или превышает 4096 байт (например, в ATmega128).

Процесс встраивания заключается в записи firmware бутлоадера в соответствующую секцию памяти и правильной установке фьюзов. Внимание: в макетную плату AVR-USB-MEGA16 уже встроен бутлоадер USBasp (и уже правильно настроены фьюзы микроконтроллера), поэтому записывать бутлоадер туда не надо.

[Как работать с загрузчиком usbasploader на примере макетной платы AVR-USB-MEGA16 и Khazama AVR Programmer

]

Для работы с бутлоадером USBasp подходит множество программ (см. Ссылки [3]), но мне больше всего по душе программа Khazama AVR Programmer [10].

Внимание! При первом подключении платы с бутлоадером к компьютеру по USB операционная система Windows запросит драйвер программатора USBasp (для Linux драйвер не нужен). Драйвер можно взять в архиве по ссылке [4] (папка USBasp архива), или скачать с сайта автора программатора USBasp, см. ссылку [6]. Также драйвер есть в папке, в которую установлена программа Khazama.

Итак, процесс по шагам — как залить свою прошивку firmware (пользовательскую программу) в макетную плату AVR-USB-MEGA16, используя бутлоадер USBasp. 

1. Поставьте перемычку между ножками 4 и 6 коннектора U1 ISP.

Рис. 1. Положение перемычки, которая активирует запуск загрузчика USBasm макетной платы AVR-USB-MEGA16.

2. Подключите макетную плату к компьютеру по USB. На макетной плате загорится красный светодиод, и в системе Windows обнаружится программатор USBasp. Если Вы подключили в таком режиме макетную плату в первый раз, то Windows обнаружит новое устройство USBasp и запросит для него драйвер. Драйвер для Windows см. по ссылке [6], скачайте архив с драйвером, распакуйте во временную папку и предложите мастеру оборудования взять драйвер их этой папки. Также драйвер есть в папке, в которую установлена программа Khazama. После успешной установки драйвера у Вас в системе появится новое устройство — Atmel USB Devices -> USBasp (можно увидеть в Диспетчере Устройств).

3. Запустите программу Khazama AVR Programmer. В настройках уберите опцию очистки памяти кристалла (Command -> Program Options -> снимите галку Erase Chip). Это нужно для того, чтобы Khazama не конфликтовала с упрощенным протоколом загрузчика USBasp. Примерный вид опций показан на скриншоте:

Рис. 2. Опции программы Khazama.

Выберите из выпадающего списка Ваш чип. Загрузите hex-файл прошивки (через меню File -> Load FLASH file to Buffer). Нажмите большую кнопку Auto Program, запускающую программирование. Программируется кристалл очень быстро, за несколько секунд.

Рис. 3. Процесс перепрошивки памяти FLASH загрузчиком USBasp.

После завершения программирования выведется примерно такое сообщение:

Рис. 4. Сообщение об успешном окончании программирования памяти FLASH.

Светодиод на плате погаснет, и сразу начнет выполняться Ваша программа с адреса 0 (которую Вы только что записали).

4. Снимите перемычку между ножками 4 и 6 коннектора U1 ISP.

 

Рис. 5. Рабочее состояние платы — перемычка снята, при подаче питания загрузчик сразу запустит программу пользователя.

Очень похоже работает другой бутлоадер — BootloadHID (см. Ссылки [5]). Отличается тем, что просто нужна другая сервисная программа на компьютере, но зато легче встраивается в младшие чипы (начиная с ATmega8), т. к. снижены требования к размеру bootloader-секции.

[Правила работы с бутлоадером USBasp]

1. Не забывайте устанавливать и снимать перемычку активизации бутлоадера.
2. Применяйте для программирования утилиту Khazama версии 1.6.2 (см. [3, 10]).
3. Применяйте драйвер USBasp, максимально подходящий к Вашей операционной системе (см. [6]).
4. Не пытайтесь программировать фьюзы и EEPROM — бутлоадер USBasp этого не умеет. Для программирования фьюзов используйте внешний программатор ISP. Однако будьте осторожны — если неправильно установите фьюзы, то бутлоадер может перестать работать.

5. Не пытайтесь перезаписать бутлоадером самого себя — это может привести к непредсказуемым результатам. 

1. Программа Khazama не видит стройство USB загрузчика. Если устройство USB бутлоадера нормально определяется в системе Windows (видно в Диспетчере Устройств как устройство USBasp), но отказывается работать с USB устройством USBasp (could not find USB device «USBasp» with vid=0x16c0 pid=0x5dc), то скорее всего у Вас не установлена библиотека libusb или не установлен драйвер USBasp. Сообщение системы выглядит примерно так:

Подобное сообщение в среде Arduino IDE:

 

Драйвер USBasp можно скачать по ссылке [6], ищите заголовок Drivers и ссылку на файл наподобие usbasp-windriver.2011-05-28.zip. Библиотеку libusb можно скачать по ссылке [7]. Качайте и устанавливайте самый свежий релиз библиотеки libusb.

2. Ошибка ‘could not find SSB device «USBasp» with vid=0x16c0 pid=0x5dc’, которая появляется после программирования платы через загрузчик USBasp.

На самом деле это не ошибка — плата нормально запрограммировалась через загрузчик. Причина этого сообщения в том, что в настройках Program Options программы Khazama стоят лишние галочки (Verify Flash, Verify Eeeprom и т. п.). Поэтому программа Khazama пытается обратиться к программатору после завершения программирования — устройство USBasp больше не присутствует в системе (бутлоадер завершил работу и передал управление в код пользователя), это и служит причиной «ошибки».

Снимите лишние галочки в диалоге Program Options, как это показано на рис. 2, и ошибка исчезнет.

[Ссылки]

1. Загрузчики (bootloader) для микроконтроллеров AVR.
2. USBaspLoader USB boot loader for AVR microcontrollers site:obdev.at — домашняя страничка usbasploader.
3. Программы для работы с программатором USBasp — AVRDUDE site:download.savannah.gnu.org, BASCOM-AVR site:mcselec.com, Khazama AVR Programmer site:khazama.com, eXtreme Burner-AVR site:extremeelectronics.co.in.
4. 100705usbasploader.zip — мой вариант usbasploader, заточенный под макетную плату AVR-USB-MEGA16 с микроконтроллером ATmega32 (проект для AVR Studio с исходниками и скомпилированными вариантами для кварцев 12 МГц, 16 МГц). Именно его я и записываю в макетные платы AVR-USB-MEGA16 с микроконтроллером ATmega32.
5. AVR-USB-MEGA16: USB bootloader BootloadHID для микроконтроллера ATmega16.
6. USBasp — USB programmer for Atmel AVR controllers site:fischl.de — сайт программатора USBasp (там можно скачать драйвер для USBasp под операционную систему Windows).
7. libusb-win32 site:sourceforge.net — ссылки на закачку релизов библиотеки libusb.
8. Как отключить проверку цифровой подписи драйвера в Windows 7 site:winitpro.ru.
9. Как самостоятельно подписать драйвер для Windows 7 site:winitpro.ru.
10. 141122Khazama162.zip — утилита Khazama162, драйвер программатора USBasp для Windows XP, Windows Vista, Windows 7, Windows 8, прошивки загрузчика USBasp для различных микроконтроллеров.

microsin.net