Программаторы микроконтроллеров AVR


23.02.2011

Неболшой обзор используемых на практике программаторов для микроконтроллеров AVR. AVR ISP Prorgammer и USB программатор AVR / 89S совместимый с AVR910.

AVR ISP Prorgammer

avr-progВнутрисхемный программатор для программирования микроконтроллеров фирмы ATMEL®, как в условиях серийного производства, так и в процессе разработки и отладки изделий.

Программатор поддерживает следующие семейства кристаллов:

TinyAVR

ATtiny11L, ATtiny11, ATtiny12V, ATtiny12L, ATtiny13, ATtiny15L, ATtiny2313, ATtiny26L, ATtiny26, ATtiny28V, ATtiny28L

AVR

AT90S1200, AT90S2313, AT90LS2323, AT90S2323, AT90LS2343, AT90S2343, AT90LS4433, AT90S4433, AT90LS8515, AT90S8515, AT90LS8535, AT90S8535

MegaAVR

ATmega48, ATmega88, ATmega168, ATmega8, ATmega16, ATmega32, ATmega64, ATmega640, ATmega128, ATmega1280, ATmega1281, AT90CAN128, ATmega103, ATmega161, ATmega162, ATmega163L, ATmega169, ATmega8515, ATmega8535, ATmega2560, ATmega2561, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega329, ATmega3290, ATmega649, ATmega6490

Отличительные особенности:

- внутрисхемное программирование (не требуются дополнительные переходные панели, при этом выводы программирования используются в проекте)

- поддержка программатора популярными компиляторами AVRstudio, IAR AVR, Image Craft AVR.

- автоматическая верификация (100% гарантия соответствия зашитого кода исходному)

- высокая скорость программирования, возможность прошивки серийного номера кристалла

я долгое время удачно пользовался и продолжаю пользоваться этим надежным и простым программатором, работающим через LPT порт.

Схема этого простого, но надежного программатора:

Схема avr-isp программатора

Двусторонняя плата помещается в разъем:

Мне понадобился второй программатор, а описанный ниже USB программатор не мог шить нужный мне микроконтроллер. Поэтому я решил повторить этот LPT программатор.

Скачать схему и плату здесь.

Компьютерные тенденции таковы, что LPT порт скоро исчезнет. Поэтому пора присмотреть альтернативу.

Программатор микроконтроллеров AVR / 89S совместимый с AVR910 (USB программатор)

Посетив несколько магазинов, понял, что цену на программаторы лупят не скромные, поэтому принял решение заморочиться и сделать программатор сам. Пробороздив просторы Интернета, нашел несколько реализаций совместимые по командам с оригинальным программатором AVR910 ATMEL.

Здесь http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm нашел наиболее подходящий вариант.

Убрав лишние детали,  немного переделал схему программатора под себя. Получился вот такой винегрет:

Минус такой переделки - отсутствие предохранителя. Хотя, как показала практика, USB порт кротким замыканием спалить вряд ли удастся. По крайней мере, на моём компьютере не вышло, но экспериментировать не стоит. Светодиод VL3 сигнализирует о подачи питания на программатор через порт USB. Светодиоды VL1, VL2 сигнализируют о чтении / записи программатора. Джампер J1 – (MODify) служит для программирования микроконтроллера в новом программаторе. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК программы. После этот джампер необходимо разомкнуть и замкнуть джампер J2 - NORMal. Больше мы его не трогаем. С помощью джампера J3 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом - пониженная. Примечательная особенность, на вывод LED разъема ISP выведен меандр с частотой 1 МГц для "оживления" МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. ОЧЕНЬ полезная штука!

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

Инсталляция Windows 2000/XP/Vista/Seven 32-bit

Прошить контроллер. Подключить свежеиспеченный программатор к РС через свободный разъем USB. Операционная система найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы. В архиве с прошивкой имеется папка "AVR910.Driver" в которой расположены три директории для разных вариантов операционных систем: -"2k_xp_32" - для операционных систем Windows 2000/XP 32-bit (используется штатный драйвер usbser.sys) -"vista_xp_32" - Для операционных систем Windows XP/Vista/Seven 32-bit(usbser.sys + lowbulk.sys[32-bit] от Osamu Tamura) -"vista_xp_64" - Для операционных систем Windows XP/Vista/Seven 64-bit(usbser.sys + lowbulk.sys[64-bit] от Osamu Tamura)

Особенности установки:

Windows 2000

В принципе, инсталляция не отличается от подобной для Windows XP, но есть одно НО - задержки в драйвере usbser.sys данной ОС портят цепочку команд от ПО на РС до программатора и, соответственно, цепь ответов обратно от программатора до ПО на РС... Проблему я пока не установил, но есть решение. Конечно не самое красивое, но работает надежно :-) Необходимо заменить файл usbser.sys в системных папках Windows 2000 на аналогичный от Windows XP. Это папки ...\winnt\system32\drivers\ и ...\winnt\system32\dllcashe\. Файл usbser.sys от Windows XP SP1 можно взять здесь. Естественно, что драйвер придется подменять загрузившись под другой ОС (например с загрузочного диска).

Windows XP/Vista/Seven 64 bit

Рекомендации по установке от Osamu Tamura (Recursion Co., Ltd.)

Чтобы использовать драйвера на 64 битной платформе, Вы должны отключить проверку цифровых подписей драйверов, нажимая функциональную клавишу F8 во время начала загрузки системы. Второй вариант, использование программы "Driver Signature Enforcement Overrider", которая подписывает драйвер как "testdriver" и активизирует "testmode", таким образом, Вы можете загрузить драйвер без реальной цифровой подписи. Вы можете найти более детальное описание на странице программы, пройдя по ссылке выше.

Установка: 1. Загрузить "Driver Signature Enforcement Overrider"; 2. Запустите DSEO (инсталляция не требуется). 3. Выберите "Sign a System File", нажмите кнопку "Next" и выберете файл avr910.usb.vista.xp.64.inf из директории ...AVR910.Driver/vista_xp_64/. 4. Выберите "Sign a System File" еще раз, нажмите кнопку "Next" и выберете файл lowbulk.sys из директории ...AVR910.Driver/vista_xp_64/. 5. Выберите "Enable Testmode"  и нажмите кнопку "Next". 6. Перезапустите свой компьютер.

Оригинальные драйвера для AVR CDC от Osamu Tamura можно взять здесь.

Автор разработки: Рыжков Андрей aka PROTTOSS. Новокузнецк.

Вот что получилось у меня:

  

Программатор использую с программами AVRProg v.1.4 из пакета AVRStudio. На Windows XP Работают безотказно.

Программатор устанавливается как виртуальный Com-порт. Единственно, что нужно учесть, AVRProg проверяет порты от 1 до 4. Придется в диспетчере устройств передвинуть на порт до COM4, либо в настройках AVRStudio указать по какой порт искать программатор.

Схему, плату, прошивку и драйвера можно скачать здесь.

P.S. Когда мне нужно было прошить PWM контроллеры (AT90PWM3) то пришлось это делать с помощью старого доброго AVR ISP Prorgammer (через LPT порт), AVRProg v.1.4 не знает AT90PWM3. Не определенная ситуация складывается и с ATmega64.  Поэтому, основным рабочим программатором у меня остается ЛПТешный AVR ISP Prorgammer.

P.S.P.S. Не так давно знакомый купил этот USBasp программатор

Драйвера и ПО для него смотри здесь: http://www.fischl.de/usbasp/ Работает, при этом обрадовало отсутствие багов, замеченных у AVR / 89S совместимого с AVR910 (USB) программатора.

В статье AVRDUDE Windows описано ПО для работы с этими и другими программаторами.

Удачи!

Смотри также:

Початківцям Схеми і прошивки
Коментарі:
Уlectronik говорить:
28.02.2012 23:22
Жду пока плата потравиться. Может будут вопросы:))

Electronik говорить:
29.02.2012 20:39
Спасибо большое автору за статью и особенно - разводку платы (мне кажется самая лучшая разводка, из всего нета). Собрал, всё замечательно заработало. 
1. Есть один небольшой недочет - лампочка чтения работает вполнакала, по сравнению с лампочки записи. Это у всех так или только у меня???
2. Ещё хотелось бы узнать, где можно почитать про фьюзы, чтобы не убить мегу (с ними первый раз работаю, до этого имел большой опыт с пиками) ???

DEN говорить:
20.05.2012 08:30
Собрал программатор в точности со схемой. Врубил и винда определила его как неизвестное устройство. Винда 7-ая, 64 бит. Сделал по инструкции с помощью программы Driver Signature Enforcement Overrider. Все также остался неизвестным устройством. В чем может быть проблема ? Что мне сделать чтобы программатор определился правильно ???

admin говорить:
21.05.2012 12:43
Проверьте правильность установленных фюзов (тактирование от внешнего кварцевого резонатора).

Андрей говорить:
06.12.2012 10:22
Добрый день.
Собрал программатор AVR910 , прошил.
Определяется как неизвестное устройство. Win7 64b. Фьюзы проверял и перепрошивал раз 10 - результат не меняется.
Подскажите, в какую сторону копать?
Спасибо.

Андрей говорить:
06.12.2012 10:26
Если это важно, прошиваю программатором - http://easyelectronics.ru/programmator-stk200300-dlya-mikrokontrollerov-avr.html, прошивал им другие меги, прекрасно работает.
Единственный момент, этим программатором прошивал на другом компе с XP 32b.

admin говорить:
06.12.2012 13:16
Добрый день.
Под Windows7 не тестировал.
1. Попробуйте для начала подключить к компьютеру с Windows XP.
2. Проверьте качество пайки. У меня один не хотел определяться, причина - плохая пайка.
3. Нет разницы каким программатором прошивать микроконтроллер.

Андрей говорить:
10.12.2012 03:25
Заработало! Пока настроил только под XP, но это уже хорошо.
У меня был целый набор траблов:
1. Всегда проверяйте, что вам дает продавец в магазине - в заказе перепутали и вместо кварца на 12 положили на 20.
2. Всегда проверйяте пайку - на глаз вроде все пропаяно, протыкал иголкой ножки МК, 3 не пропаяны.
3. Всегда отмывайте плату от флюса перед подключением.

Теперь остается вопрос выбора ПО, хочется программировать МК прям из редактора кода. После беглого изучения остановился на AVR studio 6, но как там настроить программатор и возможно ли это вообще?...

Виталий говорить:
11.12.2012 14:06
а в чем причина некоторых расхождений схемы и платы? например 29 в плате с резистором есть, а на схеме нет...или подключение кварца на схеме ноги 9-10, на плате 8-9.... что такое за деталь на картинке: 47 10L X9. я вот не понимаю немного.я только начал контроллеры изучать, так что если не сложно - поясните.

admin говорить:
11.12.2012 15:26
Микроконтроллеры могут быть в разных корпусах. В нашем случае фигурируют DIP(28 ног) и TQFP (32 ноги для поверхностного монтажа). Номера ног могут не совпадать. На схема ноги пронумерованы для DIP. Плата разведена под TQFP. Из за этого и отличия. 29 нога - это RESET. Его рекомендуется через резистор вешать на "+". Но если он будет в висячем состоянии -  ничего страшного. На плате он был добавлен "вдогонку". Деталь промаркированная "47 10L" - это танталовый конденсатор 47 мФ, 10В. Не обязательно ставить танталовый, можно электролитический.

Виталий говорить:
11.12.2012 15:40
большое спасибо.)

Виталий говорить:
11.12.2012 15:44
в таком случае как подключать USB? я купил простой 2.0А ... стандартный как на компах в общем.
не подскажете как его воткнуть? просто его проводами вывел.

Виталий говорить:
11.12.2012 16:50
Все сделал. подключил - не опознается.... в чем может быть причина. и если можно более подробно что ли скажите как дрова ставить на это чудо техники)

Андрей говорить:
19.01.2013 01:52
Доброго времени суток, уважаемый admin. Долго искал в сети нечто подобное и, благодаря Вам, нашел, наконец. Все классно и волшебно, единственное есть маленькое замечание - исправьте, пожалуйста, на схеме номиналы R1 и R2 согласно международным стандартам - 680. А то новичков это в заблуждение вводит. А в остальном - еще раз ОГРОМНОЕ спасибо и успехов Вам в дальнейших технических изысканиях.

admin говорить:
21.01.2013 08:49
Номиналы R1 и R2 - 68 Ом. На схеме они так и обозначены. На самом резисторе может быть написано 680. (см. <a href="http://www.avislab.com/blog/smd-resistors/" rel="nofollow">Маркировка SMD резисторов</a>)

Александр говорить:
09.03.2013 13:49
Сделал все как написано в статье. При запуске AVR Prog пишет "no supported board found". В чем может быть ошибка??

Додати коментар
Code
* - обов'язкові поля

Архіви