Это устройство поддерживает пословную и постраничную запись, используемую при программировании МК семейства AVR, и побайтную запись для МК AT89S53 и AT89S8252 семейства AT89S. Таким образом, с помощью программатора можно программировать все ныне существующие МК семейства AVR и МК AT89S53 и AT89S8252 семейства AT89S при поддержке этих МК со стороны управляющего программного обеспечения, установленного в компьютере. Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Рекомендую повторять его точно по схеме, показанной на рисунке. Удаление «лишних», на первый взгляд, деталей может привести либо к неправильному функционированию программатора, либо к выходу из строя порта USB компьютера.
Программатор был успешно протестирован и с программами ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP. Были запрограммированы МК AT89S53, AT89S8252, AT90S2313, AT90S8515, ATtiny13, ATtiny26, ATtiny45, ATtiny2313, ATmega48, ATmega8, ATmega8515, ATmega8535, ATmega16, ATmega32, ATmega64, ATmega128, AT90CAN128. Программа AVRDUDE оказалась с данным программатором несовместимой, она не все команды протокола AVR910 отрабатывает корректно. При первом подключении изготовленного программатора с правильно запрограммированным МК DD1 к компьютеру операционная система найдет новое устройство — AVR910 USB Programmer. Необходимо заметить, что этого не произойдет, если номинальная частота резонатора ZQ1 в программаторе отличается от 12 МГц. Это связано с особенностями работы USB и программы МК DD1. От предложения системы автоматически найти драйвер нужно отказаться и указать ей путь к файлу prottoss.avr910.usb.inf. Предупреждение, что драйвер не имеет цифровой подписи, следует проигнорировать. У меня возникли проблемы, когда после установки программатора в системе программа AVRProg v. 1.4 не смогла его обнаружить.
Оказалось, что операционная система выбрала для программатора виртуальный порт СОМ9, а программа AVRProg способна работать только с портами СОМ 1-COM4. Изменить номер порта можно с помощью «Диспетчера устройств» Windows, пройдя по пути «AVR910 USB Programmer->Свойства->Параметры порта->Дополнительно->Номер->СОМ-порта». Инсталляция программатора в системе Windows 2000 не отличается, в принципе, от описанной выше для Windows XP, но есть одна особенность: задержки в драйвере usbser.sys данной ОС искажают формируемые компьютером команды программатору и посылаемые программатором ответы на них. В чем дело, я пока не выяснил, но надежный способ устранения проблемы нашел. Достаточно заменить в системных папках Windows 2000 ..\winnt\system32\drivers\ и ..\winnt\ system32\dllcashe\ файл usbser.sys одноименным из Windows XP. Естественно, его придется подменять, загрузившись под другой ОС (например, с загрузочного диска). Как правило, правильно собранный программатор с правильно запрограммированным МК DD1 в налаживании не нуждается. Единственное замечание: вход RESET программируемого МК может быть соединен с плюсом питания резистором номиналом не менее 10 кОм. Это связано с пониженным напряжением питания МК DD1 и наличием ограничительных резисторов в цепях управляющих сигналов.
Если программатор не работает, прежде всего следует убедиться в отсутствии ошибок монтажа, обрывов и замыканий на его плате. Затем измерить напряжение между выводами питания МК DD1 (7 и 8). Оно должно находиться в пределах 3,5…3,8 В. Далее проверьте, работает ли тактовый генератор МК. Это можно сделать с помощью осциллографа, подключив его к выводу 10 DD1. Если осциллографа нет, подключите между выводом 10 и общим проводом через ограничительный резистор 330…510 Ом обычный светодиод (катодом к общему проводу). Если генератор работает, светодиод будет слабо светиться. Остается проверить, запустилась ли загруженная в МК DD1 программа. Один из признаков ее работы — наличие импульсов частотой 1 МГц на контакте 3 разъема Х2. Это можно сделать с помощью осциллографа или светодиода по методике, описанной выше. При замыкании пинцетом выводов кварцевого резонатора ZQ1 слабо светящийся светодиод должен случайным образом либо увеличивать яркость, либо гаснуть вовсе.
Программа для прошивки микроконтроллера
Автор:А. Рыжков, г. Новокузнецк.