Вид сверху
Так как у многих уже давным давно нет ни COM ни LPT порта, то я решил выложить схему USB программатора для AVR. Это будет широко известный в узких кругах USBASP. Схема простая как три копейки, но COM или LPT порт все же потребуется — для того, чтобы прошить управляющий контроллер. Так что можешь сходить к другану. Программатор строится на контроллере ATMega48 или ATMega8. Нужна именно 8 или 48, без всяких индексов L. Так как у нас требуется частота выше чем 8 Мгц.
Схема USBASP
Так как я стараюсь не выкладывать непроверенные решения, то я повторил этот программатор. Чисто для себя, поприколу. Подобрал наиболее компактную схему и перевел ее в формат Sprint Layout. Изготовил печатную плату, стравил. Засверловал и напаял компоненты. Микросхему рекомендую ставить на панельку.
Печатная плата
Вид снизу
Сборка
Прошивка программатора
Далее замыкаем перемычку J1 и J2 и подключаем к разьему стандартный последовательный программатор, да хоть тот же программатор Громова. Программатор должен иметь свое питание, иначе нужно подать его на схему.
И заливаем в проц прошивку. Для ATMega8 одна прошивка, для ATmega48 другая. Дальше нужно выставить биты конфигурации.
Для ATMega48:
Старший байт FUSE выставляется как 0хDD, младший 0xFF. На картинке я привел скриншот из UniProf с правильно расставлеными битами конфигурации для контроллера ATMega48.
Если применяется контроллер ATmega8, то байты FUSE таковы:
Старший 0xC9, младший 0xEF
Настройка в работу
После прошивки нужно снять перемычку J1 и все, можно втыкать в комп. Сразу же должно обнаружитсья USB
устройство. Скармливаем ему дрова и у нас в системе появляется новый
девайс — USBAsp. Если система ругается на драйвера, говорит, что это не
драйвер, а фуфел какой то. Значит контроллер либо криво прошился, либо
ты забыл снять перемычку J1.
Перемычка J3 используется для прошивки контроллеров у которых частота не превышает 1.5 МГц. Я ее поставил, без нее у меня мега 8 не хотела определяться. Потом подправил меге Fuse биты, чтобы она заработала на 8 Мгц, перемычку не снял, но работает. Слышал, что подправили и теперь перемычку можно не дергать туда сюда.
Красный светодиод показывает, что программатор подключен к USB и запитан. Зеленый, что идет обращение к прошиваемому контроллеру.
Прошивающий софт
Все, теперь можно подключать к программатору провод и тыкать им в прошиваемые контроллеры.
Единственная софтина которая поддерживает этот программатор это
AVR-чувак, она же дудка, она же AVRDUDE. Мощнейший консольный
программатор. Не стоит пугаться его консольности, во первых батники
никто не отменял, а во вторых не него существует несколько оболочек.
ВНИМАНИЕ! В той GUI оболочке что находится в архиве ИНВЕРСНЫЕ FUSE!!! То есть если в даташите написано, что дефолтные SCKEL3..0 = 0100 то тут будет показан 1011!!! Короче, как в PoniProg. Чего эти утырки так вертят эти несчастные FUSE я понять не могу, хоть бы предупреждали, а то бы залочил кристалл нахрен.
Вот, пример командной строки для прошивки через USBAsp — Записываем main.hex во флеш ATmega8:
avrdude -c usbasp -p atmega8 -U flash:w:main.hexВ архив usbasp.rar я сложил все файлы необходимые для этого программатора:
- Прошивка для ATMega 48 и ATMega 8
- Драйвер для винды
- Схема
- Печатная плата в формате Sprint Layout
- Фотки
- AVRDUDE
- GUI к AVRDUDE
UPD:
Для тех у кого вдруг пишет, что архив битый, я выложил то же самое в ZIP -USBASP.ZIP
Проверено — работает! Пользуйтесь :)
Страничка разработчика GUI оболочки для AVRDude
!!!WARNING!!!
Тут появилась подтвержденная инфа, что новая прошивка (с оригинального
сайта автора) может не работать на некоторых компах. У меня в архивах
лежит старая прошивка, от 2007 или даже 2006 года. Она может не работать
на самых новых компах. Короче, не работает — попробуй другую версию
прошивки. С сайта автора или из моего архива.
З.Ы.
Также существует программатор AVR910, работающий также через USB
и имеющий практически идентичную конструкцию. Чем он лучше/хуже я не
знаю. Но можете попробовать сделать его. А я в скором времени выложу
описание изготовления и использования JTAG адаптера для внутрисхемной отладки AVR.
Конфигурирование Fuse для Mega48
Fuses для Mega8
Программатор должен появится в диспетчере устрйств
GUI Оболочка на AVRDUDE