USB программатор AVR микроконтроллеров

Предлагаю вам свой вариант программатора AVR 910 USB. Я переработал схему от PROTOSSA (http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm) и получилось на мой взгляд очень недурно. Переработки: заменен модуль питания - я применил LDO стабилизатор на 3.3В, поставил LC-фильтры по цепям питания. Через него можно питать программируемое устройство, только следует учесть, что суммарный ток нагрузки на USB порт компьютера 500мА. Напряжение на 2-й ножке ISP-разъема будет меньше 5 вольт на величину падения напряжения на диоде D1.

Джампер JP1 – (MODify) служит для начального программирования управляющего МК программатора. При его замыкании (2-3), к разъему ISP подключается внешний программатор и производится загрузка в МК управляющей программы. После программирования управляющего МК программатора этот джампер необходимо разомкнуть и замкнуть джампер JP1 в положение (1-2) - NORMal.
С помощью джампера JP2 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом - пониженная. Переключать джампер можно на ходу, так как управляющая программа МК программатора проверяет состояние линии PB0 при каждом обращении к порту SPI. Не рекомендуется переключать джампер при запущенном процессе записи/чтения программируемого МК, т.к., скорее всего, это приведет к искажению записываемых/читаемых данных. Джампер J2 введен для возможности программирования МК AVR, тактируемых от внутреннего генератора 128 кГц.
Резисторы R8 - R12 предназначены для согласования уровней сигналов МК программатора и внешних, подключенных к программатору, цепей (программируемый МК или другой программатор).
Тактовая частота порта SPI МК программатора при разомкнутом джампере J3 равна 187,5 кГц. Это позволяет программировать контроллеры с тактовой частотой примерно от 570 кГц для ATtiny/ATmega, 750 кГц для 90S и 7,5 МГц для 89S. Контроллеры программируются от 10 до 30 секунд (при использовании утилиты AVRProg v.1.4 из пакета AVR Studio) вместе с верификацией в зависимости от объема FLASH памяти и тактовой частоты.
На вывод LED разъема ISP выведен меандр с частотой 1 МГц для "оживления" МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. Сигнал генерируется постоянно и не зависит от режима работы программатора.
Программатор тестировался с программами AVRProg v.1.4 (входит в пакет AVRStudio), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). Кроме того, программатор тестировался с программой AVRDUDE, однако, программа с данным программатором не совместима, так как не все команды протокола AVR910 отрабатывает корректно.
На данный момент с вышеперечисленными программами протестировано программирование контроллеров 89S53, 89S8252, 90S2313, 90S8515, ATtiny13, ATtiny26, ATtiny45, ATtiny2313, ATmega48, ATmega8, ATmega8515, ATmega8535, ATmega16, ATmega32, ATmega64, ATmega128, AT90CAN128.

Детали: Управляющий МК без переделки схемы можно заменить на ATmega8-16PU (Корпус PDIP-28). Можно так же использовать МК ATmega8-16 c другими буквенными индексами (корпуса TQFP или MLF). Но, следует помнить, что нумерация выводов у МК в корпусах TQFP и MLF отличается от нумерации выводов МК в корпусе PDIP-28. Все резисторы, конденсаторы, LED - ЧИП типоразмера 0805, резистор R4 - 1206 чип-перемычка (000). Я использовал панельку DIP-28 с загнутыми под 90 градусов ножками и паял ее как СМД компонент.

Прошивка FUSE-BITS: Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в "0") биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры , идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в "1").

Инсталляция: Прошить контроллер. Подключить свежеиспеченный программатор к РС через свободный разъем USB. Операционная система (ОС) найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к файлу prottoss.avr910.usb.inf. При предупреждении, что драйвер не имеет цифровой подписи, послать ОС в эротическое путешествие. Небольшие проблемы у меня возникли, когда, после установки, программа AVRProg v. 1.4 не смогла найти программатор, так как ОС присвоила ему номер COM9. После мониторинга портов оказалось, что AVRProg ищет устройство только на портах COM1 - COM4. Изменить номер порта можно, если зайти в диспетчере устройств в: AVR910 USB Programmer->Свойства–>Параметры порта->Дополнительноp->Номер COM-порта

Файлы проекта (проект Eagle Layout Editor 4.11, прошивка контроллера)

 
Hosted by uCoz