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

Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Описание оригинальной схемы программатора можно взять в Application Note AVR910: In-System Programming, а список поддерживаемых команд можно посмотреть в Application Note AVR109: Self Programming

Конструкция


Схема программатора приведена на рисунке ниже. Предохранитель F1 служит для защиты линий питания порта USB от случайного замыкания по цепям питания программатора. Диоды VD1, VD2 — обычные выпрямительные, с прямым падением напряжения ~0,6…0,7В, предназначены для понижения питания микроконтроллера DD1 до 3,6 В. Согласно документации ATMEL на ATmega8(L), микроконтроллер может работать при таком напряжении питания до частоты немногим выше 14 МГц. Светодиоды VL1("RD”), VL2("WR”) сигнализируют о текущих действиях программатора, и, соответственно, обозначают режимы чтения и записи. Светодиод VL3("PWR”) предназначен для сигнализации подачи питания на программатор.



Джампер J1 — (MODify) служит для начального программирования управляющего МК программатора. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК управляющей программы. После программирования управляющего МК программатора этот джампер необходимо разомкнуть и замкнуть джампер J2 - NORMal.
С помощью джампера J3 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом - пониженная. Переключать джампер можно на ходу, так как управляющая программа МК программатора проверяет состояние линии PB0 при каждом обращении к порту SPI. Не рекомендуется переключать джампер при запущенном процессе записи/чтения программируемого МК, т.к., скорее всего, это приведет к искажению записываемых/читаемых данных. Джампер J3 введен для возможности программирования МК AVR, тактируемых от внутреннего генератора 128 кГц.
Резисторы R10 - R14 предназначены для согласования уровней сигналов МК программатора и внешних, подключенных к программатору, цепей (программируемый МК или другой программатор).
Тактовая частота порта 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.

Я рекомендую повторять схему один-в-один, так как выкидывание "лишних" деталей из схемы может привести либо к неправильному функционированию программатора, либо к возможному выходу из строя USB порта на РС, за что, естественно, я ни какой ответственности не несу.

 

Детали

Управляющий МК без переделки схемы можно заменить на ATmega8-16PU (Корпус PDIP-28). Можно так же использовать МК ATmega8-16 c другими буквенными индексами (корпуса TQFP или MLF). Но, следует помнить, что нумерация выводов у МК в корпусах TQFP и MLF отличается от нумерации выводов МК в корпусе PDIP-28.
Диоды VD1 и VD2 — любые выпрямительные малогабаритные с прямым падением напряжения ~0,6…0,7В.
Светодиоды типа АЛ307БМ.
Конденсатор С5 — электролитический, с номинальным напряжением не менее 10 вольт. Остальные конденсаторы — обычные малогабаритные керамические.
Резисторы — МЛТ-0,125.
Разъем USB — типа USBB-1J (Разъем USB(м) на плату. Тип В).
Разъем ISP — типа BH-10 (Двурядный разъем IDC-Вилка 2х5 на плату.
Прошивка FUSE BITS

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

 

Инсталляция

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

Этих операционных систем, к сожалению, пока в распоряжении не имею, по этому не гарантирую работу драйвера. Вот мой перевод рекомендаций по установке от Osamu Tamura (Recursion Co., Ltd.)
Windows Vista 64-bit не принимает драйверы привилегированного режима без цифровой подписи. Чтобы использовать данный драйвер на 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 можно взять здесь. Просьба: в случае удачной установки и нормальной работы, а так же если обнаружили ошибки в переводе сообщить мне
Настройка

Как правило, правильно собранный, программатор с правильно запрограммированным МК в настройке не нуждается. Есть единственное замечание — если у программируемого МК вход RESET подтянут к напряжению питания резистором, то номинал резистора не должен быть ниже 10 кОм — это связанно с пониженным напряжением питания управляющего МК программатора и введением ограничительных резисторов на шине ISP-разъема.

Если возникли проблемы
Проверить схему на отсутствие ошибок, обрывов и коротких замыканий.
Проверить напряжение питания на выводах питания (7, 8) МК программатора — оно должны быть в пределах 3,5 — 3,8 вольт.
Проверить, запустился ли кварцевый генератор МК. Это можно сделать с помощью осциллографа, подключив его к выводу 10 МК. Если нет осциллографа, то можно определить запуск генератора и с помощью обычного светодиода. Для этого к выводу 10 МК через токоограничительный резистор номиналом 330 — 510 Ом подключается светодиод, анодом к МК, катодом на землю. При подаче питания светодиод должен слабо светиться. Следует заметить, что программатор не будет определяться ни одной ОС, если номинальная частота кварца отличается от 12 МГц. Это связанно с особенностями работы USB — тактовая частота передачи данных по USB для Low Speed Device равна 1, 5 МГц — тактовая частота управляющего МК программатора должна быть ровно в 8 раз выше.
Проверить, запустилось ли внутренняя программа в МК программатора. На контакте LED ISP-разъема должен присутствовать меандр частотой 1 МГц. Наличие меандра так же можно проконтролировать с помощью осциллографа. Если нет осциллографа, можно произвести проверку при помощи светодиода. Светодиод подключается анодом к контакту LED, катодом к любому контакту GND ISP-разъема. При подаче питания светодиод должен светится в «полнакала». При замыкании пинцетом ножек кварцевого генератора светодиод должен либо засветится в «полный накал», либо свечение должно отсутствовать.
Файлы

Все архивы содержат файл прошивки, установочный inf-файл и схему в формате Adobe pdf. Кроме этого старые версии содержат описание в виде старой html страницы.

 Версия от 16.12.2006. Добавлено подключение внутреннего pull-up резистора ко входу MISO МК программатора во время программирования таргета. Возможно, будет полезно при чтении плат с пониженным напряжением питания, да и вообще, думаю, положительно скажется на надежности чтения программируемого МК… Обновлен драйвер для Windows XP/Vista 32/64-bit.

 Версия от 17.01.2007. Добавлен джампер J3 LOW SCK для понижения тактовой частоты порта SPI программатора. Обновлен драйвер для Windows XP/Vista 32/64-bit. В настоящий момент самая свежая версия прошивки

 

 Исходники версии 1.05. Заточено и обкатано на IAR v.4.10B

все неактивные ссылки можно найти на авторском сайте (см. ниже)

==============================================================================

Авторский вариант закончился, теперь варианты пользователей


Для минимизации размеров печатной платы было решено применять ATMega8 в корпусе TQFP. Изменилась также разводка ISP коннектора (мне так удобней). Добавлена возможность питать программируемое устройство от программатора (от USB). Для этого перед программированием нажимаем кнопку SELF POWER. Перемычки J3 LOW SCK и MODIFY / NORMAL заменены кнопками. Так красивее и удобнее.

Печатная плата в формате Sprint-Layout v5.0 можно скачать тут (Downloads: 1 595). На плате продублирован выход LED / XTAL для удобства пользования.

 

USB программатор AVR

Внимание!!! Печатная плата обновлена. подтягивающий резистор на RESET был неправильно разведён и конденсаторы по питанию отсутствовали.

Прошивал этот программатор следующим образом:

- подключил к USB (питание МК осуществляется от USB)

- подключил его к программатору STK200/300 (он у меня был собран давно), 

- нажал кнопки SELF POWER и MODIFY. (Тем самым подаём питание на STK200/300 и соединяем вывод RESET с колодкой программирования) кнопка SELF POWER для питания ПРОГРАММИРУЕМЫХ устройств, в том числе и программатора, который туда подключен, а не наоборот.

- с помощью PonyProg залил прошивку. Им же выставил FUSES. Должно получиться вот так:



Остаётся лишь добавить, что этот программатор успешно работает у меня на 3-х ноутбуках. Собирал его из-за отсутствия LPT и COM портов в этих самых ноутах.

Вот что получилось:



Ссылка на источник

============================================================================

Скачать печатку ,в dip корпусе, от пользователя zaa-1978 фото :




 

Скачать [63,5 Kb] (cкачиваний: 552) печатную плату от  Fermer12


Источник

   
Василий # 1
 
 
А на какой вывод микросхемы по даташиту нужно подключать вывод LED если неправильно запрограмировались фьюзы?


   
zaa-1978 # 2
 
 
хтал1 вместо кварца. и можно без кварца.обично когда програмируеш под внешний кварц. в схемах для програмируемых контроллеров можно сразу задействовать лед. и неиспользовать кварц для прошивки.


   
k56603 # 3
 
 
Доброго времени суток. Подскажите а можно ли этим программатором прошить PIC16F676??


   
Nikolai4 # 4
 
 
этот программатор для avr ! для pic не подходит


   
Leosis # 5
 
 
Люди добрые помогите!
Может кто промаркировать в lay все детали (я про SMD вариант)
Я в конец запутался на фото автора одно напмсано другое а на "оригинальной схеме" третье…
Даж не знаю что делать
Да и, тип корпуса должен быть 0805 (2012)?
И еще одно, Хотелось бы список деталей
Вот список по "оригинальной схеме"
0,1mF -3шт
22pF -2шт
22mF -1шт
68 -1шт
330 -9шт
1,5К -1шт
1М -1шт
10К -1шт
100 -1шт
1N4007 -2шт
F1 0.1A -1шт
12MHz -1шт

ЗАРАНЕЕ СПАСИБО!



   
Nikolai4 # 7
 
 
Leosis учись, разбирайся! а отклонение в ту или иную сторону сопротивлений не критично!
и не засоряй коментарии, обсуждения на форуме!


   
Leosis # 8
 
 
Можно подумать что я один тут засоряю..
темболее это актуальный вопрос!
И никто не поможет новичку?


   
Nikolai4 # 9
 
 
Да помогу я тебе! только на форуме в следующий раз создавай тему если такие вопросы(или в личку мне пиши), вот так с каждым и борюсь, а толку, а потом сами же будете читать по 15 страниц коментариев в поиске ответа - собирать схему или нет. фото к статье прикреплю!


   
sporeon # 10
 
 
ыыыы. у меня такой. вещь супер!


   
Kiv # 11
 
 
здравствуйте , у меня вопрос о том как правильно установить драйвера . дело в том что при установке драйверов система просит ещо найти файл lowcdc.sys. ( у меня стоит ХР_32 bit) насколько понимаю этот файл lowcdc.sys нужно установить для ОС --ХР или виста 64 bit
как сделать так чтобы система не запрашивала этот файл?


   
zaa-1978 # 12
 
 
при подключении он будет просить драйвер вот и укажи ему где ты ево держиш! тоисть сначала тибе нужно скачать драйвер и сохранить у себя но компьютере! biggrin да и незабудь розархивировать еначе виндовс неувидит!


   
Kiv # 13
 
 
да я так и делал , но он просит это файл lowcdc.sys. если я укажу от куда его взять то сразу через 2 секунды комп вырубывается ..и перезагружается … а если игнориравать установку файла lowcdc.sys. то сразу прекращается дальнейшая установка драйверов…

по ходу дела я сам накосячил…первый раз указал установку драйверов с папки vista_xp_32 а надо было 2k_xp_32…
пробивал подключать к ноутбуку и указал от куда брать драйвера с какой папки а именно 2k_xp_32 и установка произошла успешно -программатор опредилился..



   
Kiv # 14
 
 
установил так :
вкладка :Мастер установки оборуд, ....и так далее потом вкладка .задайте параметры установки : ( я отметил -( я сам выберу драйвера ) потом выбрал вкладку: установка с диска , потом указал с кокого диска именно ( но не с диска а с папки с драйверами 2k_xp_32) .


   
shnirick # 15
 
 
друзья тут в схеме есть ошибка перепутаны резисторы R4 и R5 местами


   
Stasmor # 16
 
 
Программер собран, прошит, подключение виндой есть, однако, оно определяется как неизвестное устройство, и указанные драйвера не ставятся, говорит что необходимый драйвер не найден…=(
Что посоветуете?


   
lawyer # 17
 
 
Собрал прогер - отлично работает, плата получилась крохотная. Выложил разводку платы в DipTrace 2.0 и фотки готового устройства на "радио коте" если кому надо - скачивайте:
http://radiokot.ru/forum/download/file.php?id=74504


   
radiomen # 18
 
 
А на какой вывод микросхемы по даташиту нужно подключать вывод sck?


   
Nikolai4 # 19
 
 
а смотря какую ты микросхему (микроконтроллер) будешь программировать, ищешь в нете на нее даташит и смотришь куда подключать


   
gosha437 # 20
 
 
Здравствуйте все.
Собрал данный девайс, прошил МК ( как не странно, всё получилось с первого раза, ну или почти с первого), втыкнул сие чудо в USB, комп увидел AVR910 Prog...., но не могу установить драйвер. У меня ОС-WIN7, какую папку с драйверами мне использовать?


   
Nikolai4 # 21
 
 
gosha437,vista


   
gosha437 # 22
 
 
Да, это всё, конечно, хорошо, но ранее я по не знанию указал путь к файлу 2к.хр.
Оно мне выдало "…бла, бла, бла…запуск устройства не возможен. Ошибка-код 10"
И теперь при новом подключении к РС не запрашивает путь к драйверу, а сразу пишет
"Запуск не возможен, ошибка код 10"
И как мне быть, и, что делать? И если вдруг мне кто-нибудь поможет, то какой мне драйвер ставить, vista32, или 64?


   
Nikolai4 # 23
 
 
gosha437,
смотря какая система у тебя стоит 32 или 64 битная

подключи устройство, зайди в диспетчер оборудования найди там свое устройство и обнови ему драйвер или сделай "подключение нового устройства"


   
gosha437 # 24
 
 
Спасибо Nikolai4, всё получилось, Выбрал устросйтво правой клавишей мыши-свойства-
-драйвер-обновить, а вот дальше выбирал вариант "Обновить с диска" и указывал путь к файлу. В общем, технология, как у Kiv. И наконец, заветные слова "Устройство работает нормально!"
Теперь-бы ещё научиться работать с программой "CodeVisionAVR", было-бы вообще великолепно. Случайно нет какой-либо информации по работе с прогой?
Буду очень признателен.


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


   
abondarew # 26
 
 
Здравствуйте. Подскажите, 48 мегу вместо 8 тут использовать можно?


Обновления

Сообщения ФорумаОтветов
3D Модели для Авто0
Бакометр 2335
Touch Start-Stop Engine.587
Кодграберр17
Исправляем AVR фьюзы при помощ …109
Бакометр - измеритель остатка…4
IR конструктор на PIC12F62977
Универсальное зарядное устройство103
бaкoмeтр1974
Двунаправленный автомобильный…2
Программатор GENIUS G8401
Светодиодный тахометр34
Индикаторы ГРИ ИН1 - ИН141
Multiprog1
Управляющая программа LED CUB959
Универсальное зарядное устройство9
Изготовлю печатные платы29
Простой автоматический выключа…25