Необходимость в USB программаторе для микроконтроллеров AVR возникла из-за отсутствия в нетбуке Asus Aspire One RS232 и LPT- портов.
Программатор предельно прост - требуется всего-навсего один микроконтроллер ATMEGA8-16PU, хотя ему и присущ один недостаток - его самого нужно предварительно запрограммировать. Еще одним огромным плюсом программатора, то что его не нужно отключать от программируемого устройства. В режим программирования микроконтроллер вводится только когда нужно что-то с него считать или на него записать.
Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Описание оригинальной схемы программатора можно взять в Application Note AVR910: In-System Programming, а список поддерживаемых команд можно посмотреть в Application Note AVR109: Self Programming
Три светодиода сигнализируют об режимах чтения и записи, а также подаче питания на программатор. Питание программатора осуществляется от самого порта USB. Так как напряжение сигналов USB составляет 3.3 вольта, а напряжение питания, питающее программатор составляет 5 вольт, в схему введены два, последовательно включенных диода 1N4007 (подходят любые кремниевые диоды, в том числе и советские КД522). Прямой переход каждого диода "гасит" около 0.6-0.8 вольта, что в сумме дает около 3.6-3.8 вольт питания микроконтроллера. Можно поставить LDO стабилизатор LM1117 на 3.3 вольт, или в крайнем случае простой параметрический стабилизатор на стабилитроне. Тока по идее должно хватить.
Другим способом согласовать уровни, а точнее понизить уровень сигналов от микроконтроллера до 3.3-3.6 вольта, при этом оставив напряжение питания самого микроконтроллера 5 вольт, можно добавлением на сигнальные линии USB пары стабилитронов на 3.6 вольт, но об этом я напишу в следующей статье. И соответственно в следующей версии программатора.
В оригинальной схеме программатора в цепи питания стоит предохранитель. Как показывает практика, современные материнки сами в состоянии определить короткое замыкание или перегрузку в линии USB и отключится. Проверял на своем нетбуке. Просто появляется сообщение о превышении допустимого тока, после устранения достаточно нажать кнопочку в сообщении и питание восстанавливается.
Также из схемы (на плате он есть) убран джампер для ввода программатора в режим обновления прошивки, при нужде низкий уровень на 1-ю ножку микроконтроллера можно подать вручную или предусмотреть отдельный провод к ней от дополнительного программатора. Но так как текущая версия прошивки датирована 2007-м годом, ожидать частой его смены не стоит. При желании можно добавить на печатную плату дополнительный 5-ти выводной разьем программирования.
Вид программатора со стороны монтажа
Размеры программатора подходят для размещения его в корпусе от MiniDV видео-кассеты.
Для программирования был приспособлен программатор для COM-порта и программа UniProf
В момент программирования все запитывалось по стандартной схеме от USB-порта (при этом не нужно обращать внимания на сообщения Windows XP о найденном и неопознанном устройстве).
Файл прошивки контроллера, оригинальную схему и драйвера для Windows 2000/XP/Vista можно взять здесь.
После прошивки контроллера нужно прошить FUSE BITS: Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в "0") биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры , идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в "1").
Установки для "чистого" МК
Нужные нам изменения.
Учтите, что некоторые программы показывают fuse bits инверсно, для этого и приложен рисунок с установкой битов в чистом микроконтроллере.
В следующих статье я расскажу о программах, которые поддерживают этот программатор и о том как ими пользоваться, а так-же о сборке более компактной версии программатора.
хорошая железяка )))
ОтветитьУдалитьЭто была первая конструкция. Уже собрана вторая, в габаритах флешки, скоро расскажу о ее конструкции.
ОтветитьУдалитьсобрал. но при установке прогера в оборудовании он с ошибкой: запуск этого устр невозможен (код 10). винд ХР его определяет и сразу ставит свой драйвер без вариантов. удалил и насильно вручную поставил драйвер. и никак
ОтветитьУдалитьLED write read на PD6 и PD7 подключены на управление плюсом - это не ошибка? нагрузочная способность порта при 1 же низкая?
ОтветитьУдалитьО низкой нагрузочной способности при высоком уровне на выходе первый раз слышу. 40 мА может выдать на каждую ногу и 60 на порт
ОтветитьУдалитьОшибки появляются при неправильной прошивке или монтаже. Фьюзы если не прошить нужные. Программатор должен работать на частоте 12 МГц, очень жесткие тайминги. А за определение виндовсом отвечает резистор R3, даже если остальной схемы не будет. Смотри правильно ли на усб разводка + и - не перепутаны?
ОтветитьУдалитьошибку нашел как только сравнил со схемой протосса. вместо 4 ноги у тебя по схеме дата+ идет на 6. перепаял и сразу винд предложил поставить драйвер без проблем. теперь пытаюсь что нибудь запрограммировать. пока еще никак
ОтветитьУдалитьСхему поправил, цыферка неправильная получилась...
ОтветитьУдалитьне хочет все равно программировать. АВР прог не видит совсем а CV пишет AVRprog error entering programming mode
ОтветитьУдалитьМогу посоветовать программировать с постоянно включенным LOW CLK - если программируется новая мега8, то у нее низкая частота внутреннего генератора - 1МГц.
ОтветитьУдалитьЗЫ: такие ошибки у меня были, уже в компактной версии, когда был плохой контакт на линии RESET.
Около 30-ти таких программаторов собрал в габаритах флешки, раздарил, распродал остался 1 мой.
ОтветитьУдалитьну ка поподробней за сколько продаешь?)и может подскажете где детальки на него в питере купить? а то юнону облазили и купили тока мега 8 и диодов немного(((
ОтветитьУдалитьнапишите какие программы использовать для этого программатора.....
ОтветитьУдалитьЯ программирую на CodeVisionAVR C компилятором. В нем удобно сразу прошивать встроенным программатором.
ОтветитьУдалитьКроме того, если вы например пользуетесь другими компиляторами Си, в них как правило есть встроенные программаторы, с поддержкой AVR910 протокола. В крайнем случае можно использовать программатор ChipBlasterAVR программатор - это практически тот-же самый программатор, что встроен в CodeVisionAVR, но в виде отдельной утилиты.
Есть еще программатор из комплекта программ самого ATMEL - AVRProg (я пользуюсь версией 1.37, а на сайте есть уже что-то около 1.42, но мне лень тянуть весь пакет из за программы в пру сотен килобайт)
подскажите как и куда установить драйвер для программатора, чтобы потом он его нашел то я новичок в этом!спс
ОтветитьУдалитьДрайвер представляет собой по сути один-единственный inf-файл, в котором находится название устройства и информация что оно делает...
ОтветитьУдалитьДанный программатор представляет собой (с точки зрения виндовса) преобразователь USB-RS232 (COM-порт).
Виндовс сама найдет ему место куда устанавливать.
дайте ссылку откуда скачать драйвер inf то чего то я не могу его нарыть не де
ОтветитьУдалитьвсе нашол установил все что надо вроде работает,может подскажете где найти информацию CodeVisionAVR на русском что бы быстрей освоить ее!
ОтветитьУдалитьподскажите avrstudio устанавливается только на виндовc xp (sp2)? и почему ?
ОтветитьУдалитьВот текст файла avr910.usb.2000.xp.inf
ОтветитьУдалитьСохранить в файл и использовать
===================================
;
; PROTTOSS AVR910 USB Programmer Setup File
; Powered by PROTTOSS, mail to: prottoss@mail.ru.
; All Right Reserved
;
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%COMPANY%
DriverVer=17/06/2009,1.0.0.1
LayoutFile=layout.inf
[Manufacturer]
%MFGNAME% = ManufName
[DestinationDirs]
DefaultDestDir=12
[ManufName]
%Programmer% = Programmer, USB\VID_16C0&PID_05E1
;------------------------------------------------------------------------------
; Windows 2000/XP Sections
;------------------------------------------------------------------------------
[Programmer.NT]
CopyFiles=USBProgrammerCopyFileSection
AddReg=Programmer.NT.AddReg
[USBProgrammerCopyFileSection]
usbser.sys,,,0x20
[Programmer.NT.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[Programmer.NT.Services]
AddService=usbser, 0x00000002, DriverService
[DriverService]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
[Strings]
COMPANY="PROTTOSS"
MFGNAME="PROTTOSS"
Programmer="AVR910 USB Programmer"
SERVICE="PROTTOSS AVR910 USB Programmer"
===================================
По поводу AVRStudio - я пускал только на ХП и 98-й, люди рассказывают об успешных запусках под вистой. Под семерку пытаются...
ОтветитьУдалитьХотя по идее компилеры должны работать, вот программаторы, из-за специфического способа доступа к портам могут глючить
не знаю что делать у меня даже инсталяция не запускается на averstudio, ку да шо сохранять не могу понять (((.
ОтветитьУдалитьПо поводу установки AVRStudio - вы вероятно пытаетесь ставить Service Pack для AVRStudio. Сам AVRStudio весит более 100мб
ОтветитьУдалитьтак а на ноутбуке работать программатор будет или нет? уж очень надо!!!!
ОтветитьУдалитьПожалуйста ктонибудь подкинте совет!!! У меня комп программатор опознаёт как неизвесное юсби устройство!!! Соответственно я не могу драва установить!!! Схема собрана правильно!!!! Что можно сделать чтоб избавиться от этой проблемы????????????????
ОтветитьУдалитьНа ноутбуке работать будет. Если внимательно почитаете начало статьи, то сама цель создания данного устройства была в этом :)
ОтветитьУдалитьЕсли система опознает программатор как неизвестное устройство и вы уверены в правильности монтажа, тогда дело в неправильной прошивке. Или не выставленных или неправильно выставленных фузах...
Подскажите, для того чтобы все это работало как надо, нужно ли сначала в совершенно другом программаторе установить фьюзы управляющей меги???
УдалитьСпасибо SergK!!! Скорее всего так!!! Ток я уже всяко разно его шил!!! Попробую ещё пару раз!!! Да куплю новый проц а то мож в нём ещё дело!!!=)))
ОтветитьУдалитьЯ как-то тоже так бился, ну не работает и все... Думал что контроллер сгорел, но он у меня был впаянный, что оказалось хорошо, т.к. оказалось что таки дело не в микроконтроллере, а таки в монтаже.
ОтветитьУдалитьконтролер прошит нормально
ОтветитьУдалитьфюзы тоже
код 10 появляется
SergK, а не скажете, какие у вас были проблемы? У самого схема опознаётся как PROTOSS AVR910 USB очень редко, сама микросхема-то не очень стабильно заводится. Думаю, может, дело в том, что я сразу за ATmega8-16AU взялся (всмысле что это TQFP). Может надо, как в оригинальной схеме, кондёров навтыкать?
ОтветитьУдалитьВозможно проблема с напряжениями. В данной версии программатора применена несколько кривоватая схема сопряжения напряжения питания МК (5В) и сигналов USB (3.3В), для этого в линию питания МК добавлены два диода, падение напряжения на каждом 0.8В и в результате получается приемлемый уровень сигнала.
ОтветитьУдалитьПроверяй напряжения питания на МК, должно быть около 3,4-3,6. Из-за такого низкого напряжения не все МК могут работать стабильно, можно немного поднять напряжение, вольт так до 4, некоторые мамки нормально относятся к повышенным уровням сигнала по USB
Спасибо за статью!
ОтветитьУдалитьСкажите пожалуйста мне как начинающему: микроконтроллер ATMEGA8A-16PU подойдет, т.е. я его могу без опасений поставить вместо обычной 8-ой меги?
Заранее спасибо за ответ!
доброго времени суток всем кто на этом форуме!
ОтветитьУдалитьвот решил первый раз прошить мконтроллер ATMEGA 8 16 PU читаю статейку и понимаю так:
сначала прошиваем hex файл и потом ставим галочки на FUSE и нажимаем программировать ? так получается в количестве два раза нажимать кнопку программировать я правильно понел? открываем hex файл и нажимаем program all и после прошивке ставим FUSE и нажимаем кнопку program all, ребята я правильно понел ?
Сергей дайте ссылку на статью где описан программатор с 5вольтовым питанием мк
ОтветитьУдалить