Avr910 usb программатор распиновка
Один из главных вопросов, который стоит перед начинающими программировать микроконтроллеры, - это выбор хорошего программатора.В своё время я тоже столкнулся с этой проблемой, перерыл кучу материала, и выбор пал на два простых программатора: программатор из пяти проводков и резисторов и AVR910 usb (можно приобрести у нас). Так как на тот момент мне хотелось побыстрей сделать "hello world" (помигать светодиодом), я сделал программатор из пяти проводков. Как собрать читаем в етой статье
Этот простой программатор - по-моему, лучшый вариант для быстрого старта начинающему. Однако он обладает и минусами: работает только через com- или lpt- порты, скорость заливки прошивки относительно небольшая.
Поигравшись, мне захотелось сделать что-нибудь более практичное и удобное.
AVR910 usb был моим следующим программатором. Его схема:
Данную схему можно собрать на макетке или использовать печатную плату
Джампер j1 необходим для начального программирования управляющего МК программатора. При его замыкании к разъёму ISP подключается внешний программатор (я использовал программатор из 5 проводков). После прошивки управляющего МК программатора этот джампер необходимо разомкнуть и замкнуть джампер J2.
Джампер J3 используется для понижения тактовой частоты порта SPI МК программатора до ~20 кГц. Это необходимо для программирования МК AVR, тактируемых от внутреннего генератора 128 кГц. Нельзя переключать джампер в процессе прошивки
На ножку LED выведен меандр частотой 1 Mhz для оживления МК с ошибочно зашитыми fuse-битами, которые отвечают за источник тактирования МК
В данной версии программатора предусмотрена перемычка J5 для питания прошивающего контроллера. Если ее разомкнуть, то необходимо будет на прошивающий МК подавать внешнее питание
Программатор тестировался с программами AVRStudio, ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP, AVRDUDE
Итак, за дело. Для сборки нам понадобится:
После сборки схемы нам нужно запрограммировать управляющий МК программатора. Для этого берем программатор из пяти проводков, подключаем к ISP порту, переключаем джампер на J1. Качаем прошивку и заливаем ее. Для этого я использовал программу CodeVisionAVR как самую простую, на мой взгляд.
устанавливаем fuse-биты, как показано на рисунке
нажимаем Program All
Распиновка разьема ISP программатора Всё, теперь наш программатор готов к использованию, и мы можем приступать к первому проекту на микроконтроллерах (мигания светодиодом)
Также имеются альтернативные прошивки для превращения avr910 usb в Stk500 или USBAsp
Вы чтото напутали. Я работаю им в CodeVision, все прекрасно работает без проблем. Разберитесь с настройкой COM портов.
В описании данного программатора то ли случайно то ли специально внесены неточности . Перемычка J5 отсутствует - питание на ISP от USB - не подаеться .. соответственно при программировании чип не будет запитан от USB . На других сайтах где описываеться схема подобного устройства вывод 2 разьема ISP находиться под питанием . Вывод - принципиальная схема - правильная - печатная плата - не верна - при повторении программируемый контроллер не будет запитан от USB . Прошу прощения если это некропост но может комуто пригодиться .
В моей версии программатора я не установил выводной электролитический конденсатор на 22 мкФ, который устанавливается со стороны противоположной дорожкам и паяется в отверстия, которые находятся возле разъёма USB. Возможно потребуется установить дополнительный электролитический конденсатор ёмкостью 10-50мкФ параллельно впаянному керамическому конденсатору 0.1 мкФ, возле зелёного светодиода PWR. Ниже на картинке, от руки показаны места подключения.
Для работы программатора необходим микроконтроллер способный работать до 16 МГц. AVR AtMega8 выпускается в двух сериях, работающих до 8 МГц (серия L), они нам не подходят, так как проект работает от кварца на 12 МГц. Есть и обычная версия, которая работоспособна вплоть до частоты 16 МГц. Это то, что нам нужно. Ниже представлен кусочек даташита AVR AtMega8, в котором вычеркнуты версии микроконтроллеров которые не буду работать в данном программаторе, и выделены зелёной рамкой версии микроконтроллеров которые будут работать в данном проекте.
Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Описание оригинальной схемы программатора можно взять в Application Note AVR910: In-System Programming, а список поддерживаемых команд можно посмотреть в Application Note AVR109: Self Programming
Джампер 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 порта на РС, за что, естественно, я ни какой ответственности не несу.
Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в "0") биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры , идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в "1").
Windows 2000/XP/Vista/Seven 32-bit
Прошить контроллер. Подключить свежеиспеченный программатор к РС через свободный разъем USB. Операционная система найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы. В архиве с прошивкой имеется папка AVR910.Driver в которой расположены три директории для разных вариантов операционных систем:
Особенности установки:
Windows XP/Vista/Seven 64 bit
Чтобы использовать драйвера на 64 битной платформе, Вы должны отключить проверку цифровых подписей драйверов, нажимая функциональную клавишу F8 во время начала загрузки системы.
Второй вариант, использование программы "Driver Signature Enforcement Overrider", которая подписывает драйвер как "testdriver" и активизирует "testmode", таким образом Вы можете загрузить драйвер без реальной цифровой подписи. Вы можете найти более детальное описание на странице программы, пройдя по ссылке выше.
Оригинальные драйвера для AVR CDC от Osamu Tamura можно взять здесь.
Как правило, правильно собранный, программатор с правильно запрограммированным МК в настройке не нуждается. Есть единственное замечание – если у программируемого МК вход RESET подтянут к напряжению питания резистором, то номинал резистора не должен быть ниже 10 кОм – это связанно с пониженным напряжением питания управляющего МК программатора и введением ограничительных резисторов на шине ISP-разъема.
Если возникли проблемы
Все архивы содержат файл прошивки, установочный inf-файл и схему в формате Adobe pdf. Кроме этого старые версии содержат описание в виде старой html страницы.
avr910_usb_programmer.files.ver.1.04.rar Версия от 16.12.2006. Добавлено подключение внутреннего pull-up резистора ко входу MISO МК программатора во время программирования таргета. Возможно, будет полезно при чтении плат с пониженным напряжением питания, да и вообще, думаю, положительно скажется на надежности чтения программируемого МК. Обновлен драйвер для Windows XP/Vista 32/64-bit.
avr910_usb_programmer.files.ver.1.05.rar Версия от 17.01.2007. Добавлен джампер J3 LOW SCK для понижения тактовой частоты порта SPI программатора. Обновлен драйвер для Windows XP/Vista 32/64-bit . В настоящий момент самая свежая версия прошивки
avr910_usb_programmer_source.v.1.05.rar Исходники версии 1.05. Заточено и обкатано на IAR v.4.10B
Это устройство поддерживает пословную и постраничную запись, используемую при программировании МК семейства AVR, и побайтную запись для МК AT89S53 и AT89S8252 семейства AT89S. Таким образом, с помощью данного USB программатора можно программировать все ныне существующие МК семейства AVR и МК AT89S53 и AT89S8252 семейства AT89S при поддержке этих МК со стороны управляющего программного обеспечения, установленного в компьютере. Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Рекомендую повторять его точно по схеме, показанной на рисунке. Удаление "лишних", на первый взгляд, деталей может привести либо к неправильному функционированию программатора, либо к выходу из строя порта USB компьютера.
Разъем Х1 соединяют стандартным кабелем с одним из имеющихся в компьютере гнезд порта USB. Плавкая вставка FU1 служит для защиты линий питания этого порта от случайного замыкания по цепям программатора. Диоды VD1 и VD2 - обычные выпрямительные с прямым падением напряжения 0,6. 0,7 В - предназначены для понижения питания микроконтроллера DD1 до 3,6 В. Согласно документации, он может работать при таком напряжении питания с тактовой частотой вплоть до 14 МГц или немногим более.
Разъем Х2 соединяют с разъемом ISP программируемого устройства или с панелью программируемой микросхемы, напряжение питания на которую необходимо подать отдельно. На контакт 3 разъема Х2 выведены прямоугольные импульсы с частотой 1 МГц для "оживления" МК, у которого были ошибочно запрограммированы разряды конфигурации (fuses), отвечающие за тактирование. Этот сигнал генерируется постоянно и не зависит от режима работы программатора. Светодиоды HL1 и HL2 сигнализируют о текущих действиях программатора - соответственно о чтении информации из памяти программируемого микроконтроллера и о записи в нее. Светодиод HL3 включен, когда на программатор подано питание. Резисторы R11- R15 предназначены для согласования уровней сигналов МК DD1 с действующими во внешних цепях.
Перемычку S1 при начальном программировании МК DD1 устанавливают в положение "Мод." (противоположное ее положению на схеме). Подключив к разъему Х2 внешний программатор, выполняют загрузку управляющей программы в МК. После этого перемычку следует вернуть в показанное на схеме положение "Норм.". Для нормальной работы загруженной программы необходимо, чтобы в МК DD1 были запрограммированы (установлены в 0) разряды конфигурации SPIEN, CKOPT, SUT0 и BODEN, а остальные оставлены установленными в 1. Обычно в МК АТmega8, полученных непосредственно от изготовителя, разряд SPIEN уже запрограммирован.
Установив перемычку S2, возможно понизить тактовую частоту интерфейса SPI МК DD1 приблизительно до 20 кГц. Это необходимо для программирования МК семейства AVR, тактируемых от внутреннего генератора частотой 128 кГц. При отсутствующей перемычке S2 интерфейс SPI работает с частотой около 187,5 кГц. Это позволяет программировать МК с минимальной тактовой частотой 570 кГц (семейств ATtiny и ATmega), 750 кГц (семейства AT90S) и 7,5 МГц (семейства AT89S). Снимать и устанавливать перемычку S2 можно "на ходу", потому что при каждом обращении к интерфейсу SPI программа МК DD1 проверяет ее наличие. Не рекомендуется этого делать лишь при запущенном процессе записи/чтения программируемого МК, что может привести к искажению записываемой или читаемой информации.
Программирование МК при использовании утилиты AVRProg v.1.4 из пакета AVR Studio занимает вместе с верификацией 10. 30 с в зависимости от объема памяти и тактовой частоты. Программатор был успешно протестирован и с программами 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 отрабатывает корректно.
При первом подключении изготовленного USB-программатора с правильно запрограммированным МК 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 слабо светящийся светодиод должен случайным образом либо увеличивать яркость, либо гаснуть вовсе.
Официальный сайт проекта - там сможете найти актуальное ПО, прошивки, драйвера
USBasp - простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.
Особенности программатора:
- работа под любой платформой: Windows, Linux и Mac OS X
- какие-либо специальные компоненты или smd не нужны
- скорость программирования до 5 кБ/сек
- SCK-джампер позволяет программировать низкоскоростные контроллеры ( < 1.5МГц)
- в планах: последовательный интерфейс (например для отладки)
Схема программатора
Схема предназначена для программирования только 5В кристаллов. В других случаях, уровни должны быть преобразованы!
Заливка прошивки
Установки джамперов
J1 - источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
J2 - обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
J3 - если программируемый МК низкоскоростной
Установка драйверов под Windows
Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку "bin/win-driver". Windows установит драйвер.
Теперь можно запустить avrdude, к примеру:
1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hex
Сборка их исходников (под Linux)
Компиляция прошивки:
1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
2. Войдите в директорию firmware/
3. Выполните команду "make main.hex"
4. Прошейте "main.hex" ATMega(4)8. Например при помощи uisp или avrdude (используйте
Makefile с опцией "make flash"). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
с опцией "make fuses").
Программы для работы с программатором
-
- поддерживается USBasp начиная с версии 5.2 - поддерживается USBasp начиная с версии 1.11.9.6 - Windows XP/Vista GUI приложение для USBasp и avrdude - программа Windows GUI для USBasp
Последнюю версию всегда можно взять на официальном сайте USBasp
Печатные платы
Под данный программатор разработано более 10 различных вариантов разводки печатной платы, которые можно скачать ниже, либо на страничке официального сайта.
Читайте также: