Яндекс.Метрика


Система Orphus

USBasp - программатор контроллеров AVR.

Имея две Ардуины можно в одну из них залить скетч ISP и использовать ее в качестве программатора, например, для второй ардуины (о чем я уже писал) - зачем нужен какой-то программатор еще? С одной стороны это верно, но есть некоторые нюансы. Так из мало существенных можно привести, например, то что ардуина взаимодействует с компом через COM-порт - а он хоть и виртуальный, его скорость не выше 115200 бод. Вдобавок к этому скетч ISP вообще предусматривает работу лишь не скорости 19200 бод. Вобщем долго и уныло, но не смертельно, если пользоваться таким программатором разово, а не в процессе отладки. Но есть и другой момент - стабильность. Тут я в результате многих экспериментов так и не понял в чем причина: просто иногда то не детектится программатор, то контроллер подключенный к нему.

Каким альтернативным программатором обзавестись? Купить или собрать? Как вариант для сборки приглянулся AVR910 - свободный контроллер ATmega8 в наличии был, оставалось лишь собрать обвеску. Но так как кустарщины не хотелось, а примера трассировки платы под AVR910 на вышеуказанном сайте автора нет ... стал искать дальше.

Как всегда заглянул на ебэй. И был приятно удивлен, что все труды по сборке программатора, включая детали оцениваются в 5 баксов! Грязно ругнувшись приятно удивившись, и не долго-думая заказал. И вот спустя разумное время программатор у меня ;-) На практике это клон (если так можно назвать вариацию опенсорсного проекта) программатора USBasp.

 

http://www.fischl.de/usbasp/ - USBasp - USB programmer for Atmel AVR controllers (Официльная страничка этого радиолюбительского программатора, от германских разработчиков). Там же выложены все материалы необходимые для самостоятельной сборки, приведены различные примеры готовых решений, а также предлагается купить комплект (корпус, плата, все радиодетальки) - по цене порядка 16 евро. Смущает не только цена за "полуфабрикат", но и размер получаемого в результате изделия - и в том числе из-за несуразно-большого корпуса. Вобщем в топку европейцев с их хапужничеством и стремлением гигантизму!

Вернемся к нашему донглу. Распайка коннектора чудная какая-то ... В комплекте с китайским USBasp идет 10-ти контактный кабель шлейф, который (мягко сказать) негодится для непостредственного применения его с ардуиной в качестве целевой платформы. Ввиду этого пришлось сделать свой шлейфик с использованием обжимных разъемов. Необходимую распиновку несложно прикинуть по схеме ниже:

Или использовать подготовленную мной табличку (номера по порядку проводников в шлейфе):

ISP-6pin ISP-10pin
1 9
2 2
3 7
4 1
5 5
6 8

Что получилось - на фотке ниже ... С одного из концов проводники приходится собирать "вразброс" - я обжал 6-ти контактный  классически (порядок проводов в шлейфе соответствует номерам контактов в разъеме), а в 10-ти контактом собрал их в соответствии с табличкой (выше).

Для работы с программатором USBasp можно использовать управляющую программу avrdude (имхо наиболее удобная и функциональная, а также гибко конфигурируемая). Или Khazama AVR - единственным преимуществом которой можно отметить лишь визуализацию и расшифровку значений битов конфигурации контроллеров (fuse-битов) а также наглядное отображение hex-дампа, в остальном она менее универсальна и более глючна ... Кстати, для удобства формирования fuse-битов (например, в случае использования avrdude) - можно воспользоваться следующим скриптом:

http://www.engbedded.com/fusecalc/ - Engbedded Atmel AVR® Fuse Calculator

Вот ...

Кстати, информацию по самостоятельной сборке такого программатора можно найти здесь.

MiGeRA (март 2012)

Обновление прошивки в донгле USBasp (дополнение).

Несмотря на то что проект USBasp уже давно заброшен разработчиком (последнее обновления комплекта файлов проекта датируется 2011 годом) - имеет смысл обновить прошивку в сём (описываемом) донгле, в нем она еще старее ... Забекапить что есть - не удавалось (читались симметричные паттерны, защита видать стоит - зачем? - для опенсорса то?). Но обновить прошивку можно. Посмотрев на схему оригинального проекта и поразглядывав сей черный донгл, потыкался, покликался ... Короче делаем так:

1. Замыкаем отверстия под джампер J2 булавкой (предварительно согнув ее пассатижами до V-образной формы и откусив ушко) - можно конечно и джампер впаять :-))

2. Коннектим наш ISP-кабель (самоизготовленный, см. выше) к другому программатору (я использовал Little-Wire) - и данные теперь пойдут в обратную сторону ;-)

3. Заливаем новую версию прошивки (в моем случае: usbasp.atmega8.2011-05-28.hex) в контроллер (ATmega8L) софтом, соответствующим программатору (в моем случае avrdude - при помощи команды: avrdude -v -pm8 -cusbtiny -Uflash:w:usbasp.atmega8.2011-05-28.hex).

4. Вот и все, кстати залитая прошивка успешно читается обратно ;-) И еще обратил внимание, что при работе теперь не только горит желтый диод D2 (при подключении к USB), но и мигает красный D3 при активности программатора (раньше вроде не мигал).

MiGeRA (июль 2014)



Комментарии

  • Обязательные для заполнения поля помечены знаком *.

Если у Вас возникли проблемы с чтением кода, нажмите на картинку с кодом для нового кода.
 
Заглавная » Радиоэлектроника » Arduino - Высокоуровневая платформа устройств на микроконтроллерах » USBasp - Программатор AVR