→ Программатор Громова. Микроконтроллеры для начинающих. Делаем COM программатор для AVR микроконтроллеров Модель со встроенным редактором

Программатор Громова. Микроконтроллеры для начинающих. Делаем COM программатор для AVR микроконтроллеров Модель со встроенным редактором

Для людей, которые любят конструировать радиоэлектронные приборы, рано или поздно возникает необходимость использовать в своих разработках микроконтроллеры. Применение этих устройств открывает огромные возможности перед радиоинженером. Микроконтроллеры выпускают всего несколько фирм, лидерами являются - Microchip Technology, ATMEL, ARM Limited. Особенностью таких устройств является необходимость их прошивки. Вот для этого и требуются программаторы. Существует много типов этих приборов, можно приобрести фирменный, а можно сделать своими руками. Если вы выбрали второй вариант, лучше всего воспользоваться готовым и проверенным решением, таким как программатор Громова. Устройство достаточно простое, собрать его под силу даже новичку.

СОМ(AVR)-программатор Громова

СОМ-программатор несложен в изготовлении. При условии применения альтернативного режима «СОМовского» порта Bitbang становится ненужным преобразование в SPI, который необходим для программирования. Останется только согласовать уровни сигналов в СОМ-порте, от -12В, +12В к 0В и +5В. Для этого и предназначена схема программатора для AVR-контроллеров. На фото ниже показан программатор Громова.

Для того чтобы приступить к сборке прибора, нам понадобятся:


Как видите все очень просто, этим и ценится программатор Громова.

Для работы этого устройства необходима программа и тестовая прошивка микроконтроллера.

По такому же принципу можно собрать и программатор usb, но схема такого устройства несколько сложнее.

Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь. Так как данный метод не очень стабилен, возможны сбои при прошивке , длина проводков ограничена двадцатью сантиметрами (если больше, то будет глючить), поэтому придется шариться в комповой заднице. Да и LPT порт спалить проще простого . В общем не рулез.

Шарясь по инету, я нашел отличный программатор, работающий через RS232 он же COM порт. А также удобную программу для прошивки контроллера UniProf от Николаева. Схему программатора придумал Громов, создатель Algorithm Builder.

Для сборки программатора потребуется:

  • Три диода, любых из маломощных. Например 1N4148.
  • Семь резисторов на 1кОм. У меня резисторы типоразмера 1206
  • Если будешь делать по моей печатной плате, то можешь еще купить 3 резистора на 0 ом — перемычки, они же пофигисторы.

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

Разьем DB9, что на фотке, я поставил для удобства. У меня туда подключаются разные прошивающие шнуры либо вот такой вот адаптер:


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

Запускай UniProf.exe и выбирай номер СОМ порта к которому у тебя подключен программатор. Сразу же должен определиться тип контроллера и высветиться над левым окном кода.

Не получилось? Тут три варианта:

  • Программатор спаян криво.
  • Дохлый контроллер.
  • Неправильно припаял проводки к микроконтроллеру.

Еще раз все досконально проверяешь и пробуешь снова. Должно получиться.

Дальше, если до этого ты никогда не работал с контроллерами, тебе возможно потребуется тестовая программа. Она не будет делать ничего полезного, зато позволит тебе точно быть уверенным, что все что ты сделал до этого ты сделал правильно.

Скачиваешь Atmel AVR Studio — это официальная среда для разработки программ под микроконтроллеры AVR . Студия поддерживает все микроконтроллеры семейства Atmel AVR . Найти ее последнюю версию можно на сайте Atmel.com

Далее создавай новый проект, в качестве языка программирования выбирай Assembler и укажи папку и имя где будет располагаться твой проект. В качестве отладчика бери AVR SIMULATOR и укажи с каким именно контроллером ты будешь работать. После чего забивай в текстстовое окно простейшую программу.

Вот ее примерный текст:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 .INCLUDE "m16def.inc" ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; "AVR Tools\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу.

INCLUDE "m16def.inc" ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; "AVR Tools\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу.

Далее жми на кнопку компиляции (или F7 ) и лезь в папку своего проекта. Там тебя уже должен поджидать ****.hex файл с прошивкой.
Запускай UniProf.exe , жми на кнопочку с открытой папкой и надписью HEX . Выбирай свой свежескомпиленный проект и жми ок.
Вторым окном UniProf попросит тебя ввести данные EEPROM , у нас EEPROM не используется, поэтому нажимай отмену .
Все, теперь можно прошивать. Жми на красную стрелку с надписью Prog и жди. По окончании можешь нажать чтение и поглядеть что записалось в твой контроллер — должно показать то же самое, что и было уже загружено в окно.

Теперь тебе остается подать питание на свой микроконтроллер и посмотреть что появилось на портах. Увидел «гребенку» из высоких и низких уровней напряжения? Отлично! Ты прошил свой первый в жизни контроллер! Теперь ты можешь с головой занырнуть в изучение микроконтроллеров AVR.

Если не заработало, то вот возможные грабли и пути решения.

  • Современные компьютеры, с гигагерцовыми процессорами, новомодными Вистами и Семерками очень плохо дружат с этим программатором. Мало того, что у вас может банально не обнаружиться COM порта, а если и будет так еще не факт что все заработает как надо. Рекомендую собрать себе для радиотехнических опытов из подручного хлама что то вроде PIII 800/Windows’98. Бесплатно нарыть такое чудо проблем не составит и сжечь не жалко, если что не так
  • Данная схема не работает через переходники USB-COM или работает, но ОЧЕНЬ медленно. Скажем прошивка одного микроконтроллера может длиться часа полтора.
  • Питание, на первый раз, лучше всего брать с блока компа . Меньше вероятность что либо сжечь или ошибиться
  • Проверяте схему по 3-4 раза! Т.к., судя по комментам, большая часть проблем из-за кривого монтажа.
  • Перед запуском программы в МК НУЖНО ОТКЛЮЧИТЬ ПРОГРАММАТОР и подать на вход RESET +5 вольт через резистор в 1..10кОм. С подключенным программатором ничего работать не будет, т.к. он прижимает RESET и не дает кристаллу стартовать.
  • Если UniProf не определяет МК, возможно у вас слишком быстрый компьютер. Для компенсации этого «недостатка» нужно включить галочку «Тормоз» Она показывается если отключить снятием галки EEPROM панель отображения данных EEPROM.
  • Если галка Тормоз не помогла, то пробуйте на другом компе. Т.к. тут СОМ порт обрабатывается в нештатном режиме, а значит не факт, что ваш СОМ порт поймет все правильно.
  • На худой конец, если ничего не помогает, попробуйте программатор из 5 проводков или другую прошивающую программу, например avrdude. Провода делайте как можно короче! 10-15 сантиметров это МАКСИМУМ!
  • Читайте комменты к записи . Там многие косяки уже были разобраны. Возможно и ваш окажется среди них.

Дополнение от Outsider :
1. Если сзади у компа нет разъема COM-порта, то это не на 100% означает, что такого порта нет на материнской плате в принципе. Пока еще на матерях встречаются разъемчики с 9 штырьками в два ряда — подробнее нужно смотреть документацию к материнской плате. Я на своей ASUS P5K SE нашел и успешно заюзал.

2. Да, +5 и GND это не земля и контакт из COM-порта, а именно внешнее питание. Проще всего его добыть в компе — +5 есть в красном проводе на любом из разъемов, питающих жесткие диски. А GND — на корпусе самого компа. Или на черном проводе того же разъема.

3. Если с UniProf что-то не срастается, то можно попробовать avrdude. Чтобы это сделать, нужно прописать в avrdude.conf следующее:

programmer
id = «nikolaew»;
desc = «serial port banging, reset=dtr sck=rts mosi=txd miso=cts»;
type = serbb;
reset = 4;
sck = 7;
mosi = 3;
miso = 8;
;

А затем запустить avrdude со следующими параметрами:

avrdude -n -c nikolaew -P com1 -p m16

Если все в порядке, то программа скажет:
avrdude: AVR device initialized and ready to accept instructions

Дополнение от Riko
Эксприменатально было выяснено, что для правильной работы этого программатора напряжение питания МК должно быть не ниже 5 вольт (но не выше 5.5!!!). То есть если МК подключен к трем пальчиковым батарейкам, то вы обламываетесь, так как там 4.5 вольта! Запитывайте от компа!!!

Дополнение от SLY_DEr
Не работало. Сменил резисторы с 3к (не было на 1к) на 460ом’ные — заработало, но с ошибками.
Решил чисто ради спортивного интереса снизить скорость ком-порта в диспечере устроиств и о, чудо, все заработало как надо. Скорость порта снизил с 9600к до 4800к и плюс убавил буфер приема и передачи (там же) до значений 4 и 6 соответственно.

Если что непонятно, то не стесняйся спрашивать у меня в комментах.

З.Ы.
Если не получается ну никак, то может быть ваша материнска плата не поддерживает столь нестандартное обращение с COM портом и стоит попробовать другие программаторы? Например, или . Они хоть и сложней, но зато работают более корректно, без извратов.

Программатор Громова - это устройство, которое предназначено для считывания информации. На сегодняшний день с его помощью можно записывать данные с различных запоминающих накопителей. Работать программаторы способны на различных платформах. Тип подключения устройства зависит от используемой платы.

К основным элементам программатора можно отнести адаптер и модулятор. По характеристикам они могут довольно сильно отличаться. Тестировать микроконтроллеры при помощи программатора есть возможность. Блоки-редакторы для устройств подходят различные. Их основной задачей является корректировка данных.

Схема простого программатора

Схема программатора включает в себя адаптер саморегулируемого типа. Модулятор чаще всего используется многоканальный. За счет этого форматы устройство способно поддерживать разнообразные. Микросхемы использоваться могут различных конфигураций. Их пропускная способность должна составлять минимум 5 мк. Дополнительно следует учитывать, что в устройстве имеется преобразователь. Ширина пропускания в данном случае зависит от мощности резисторов. Конденсаторов в системе чаще всего используется два. Устанавливаются они, как правило, у модулятора, и играют роль контактного входа.

Как сделать программатор?

Чтобы сделать программатор Громова своими руками, потребуется использовать адаптер, а также модулятор. Для быстрого считывания информации резисторы необходимо подбирать мощные. Нагрузку они должны выдерживать на уровне 4 А. Показатель номинального напряжения в цепи обязан составлять 20 В. Чтобы уменьшить частоту помех, некоторые устанавливают аналоговые конденсаторы. Емкость их зависит от типа используемого модулятора.

Если рассматривать саморегулирующуюся модель, то вышеуказанный параметр обязан находиться на отметке 4 Ом. Для того чтобы запись данных была стабильной, преобразователи подбираются с операционным усилителем. Все это также позволит повысить частоту устройства. В последнюю очередь важно припаять порты для подсоединения программатора к персональному компьютеру.

Модель со встроенным редактором

Для корректировки различных данных на носителях используют именно такой программатор. Инструкция его установки очень проста. Для выполнения стандартных функций устройство необходимо подсоединить к персональному компьютеру. Чтобы использовать его для тестирования микроконтроллеров, потребуется дополнительное гнездо. Порты на таких моделях чаще всего устанавливаются параллельного типа.

Однако встречаются и исключения. Модуляторы используются обычно многоканального типа. В свою очередь, адаптер подходит только средней мощности. Пропускная способность его обязана составлять 3 мк. Все это позволит параметр порогового напряжения держать на уровне 15 А.

Устройства с аналоговыми адаптерами

Простой программатор с аналоговым адаптером позволяет успешно справляться с низкочастотными колебаниями. Использоваться для тестирования микроконтроллеров он может. Также его часто применяют для чтения данных на основе двоичного кода. Модуляторы в таких устройствах используются только инвертирующие. Пропускная способность их в среднем равняется 5 мк. Дополнительно следует отметить, что напряжение они способны выдерживать примерно 4 В. К недостаткам таких устройств следует отнести малый параметр напряжения. Связано это с резким повышением частоты прибора на входе.

Функции современных программаторов

Современные программаторы отличаются высокой мощностью. Обрабатывать они способны двоичный код довольно просто. Также следует отметить, что платформы для них используются разнообразные. Некоторые модели специально созданы для записи данных. В данном случае функция обработки информации у них находится на втором месте. Если говорить про тестирование, то все программаторы могут использоваться для этого. Модели с операционными усилителями способны работать с программами, у которых предусмотрено расширение DDS.

Микроконтроллеры с плоским диффузом

Микроконтроллеры для начинающих данного типа отличаются повышенной полосой пропускания. При этом вводная частота в устройстве может достигать 33 Гц. Используются такие модели для чтения данных с различных носителей. Подсоединение микроконтроллера осуществляется через линейные порты. Еще одна особенность таких устройств заключается в использовании низкочастотных адаптеров.

Все это позволяет быстро считывать данные. К недостаткам можно отнести большую амплитуду колебаний. В связи с этим для некоторых платформ данные устройства не подходят. Дополнительно следует упомянуть, что резисторы в них используются только кассетного типа. Параметр отрицательного сопротивления в данном случае зависит от емкости конденсаторов.

Модели с двоичным кодом

Программатор Громова данного типа способен похвастаться высоким параметром порогового напряжения. Если рассматривать модели с аналоговыми адаптерами, то этот показатель доходит до 15 В. В свою очередь, саморегулируемые элементы устанавливаются довольно редко. Для повышения показателя чувствительности некоторые применяют многоканальные модуляторы.

Для пятиэлектродных усилителей они подходят идеально. Чтобы отрицательное сопротивление в цепи поддерживать на отметке в 4 Ом, некоторые специалисты используют в устройствах модельные резисторы. В свою очередь конденсаторы применяются, исходя из параметра номинальной частоты. Подключение программатора осуществляется через USB-порт.

Цифро-аналоговые микроконтроллеры

Данные микроконтроллеры для начинающих на сегодняшний день активно используются для чтения программ с расширением DDS. Порты в этом случае устанавливаются линейного типа. Модуляторы по параметрам довольно сильно отличаются. Если подбирать устройства на 5 Гц, то микросхема устанавливается многоканального типа. Для соединения портов применяется коаксиальный кабель, который отличается хорошей пропускной способностью. Параметр порогового напряжения в таких устройствах достигает 30 В.

Адаптеры чаще всего используются полупроводниковые. Для усиления инвертации они подходят хорошо. Однако следует учитывать, что с низкочастотными колебаниями они справляются довольно плохо. Таким образом, чтение информации на некоторых платформах может быть затруднительным. Отрицательное сопротивление в таких устройствах обычно колеблете в районе 4 Ом. Нагрузку микроконтроллер обязан выдерживать в таком случае на уровне 6 А. Операционные усилители для программаторов данного типа используются довольно редко.

Двухпроводные программаторы

Программатор Громова данного типа работает на базе импульсного адаптера. Модуляторы в устройствах используются различные. Пропускная способность их должна составлять минимум 4 мк. При этом параметр отрицательного сопротивления в среднем находится на уровне 5 Ом. Резисторы чаще всего используются широкополосные. За счет этого номинальное напряжение устройства способны выдерживать 30 В. Для тестирования микроконтроллеров такие приборы подходят плохо. Однако для записи они используются довольно часто.

Также следует отметить, что они хорошо подходят для большинства платформ. Электромагнитные колебания, как правило, в системе возникаю малые. Выходные триоды на программатор Громова устанавливаются редко. Однако для стабильной работы часто специалистами применяются пятиэлектродные усилители. За счет них удается повысить параметр проводимости сигнала до нужного уровня.

Использование векторных резисторов

Векторные резисторы на программатор Громова устанавливаются довольно часто. Параметр пропускной способности у них колеблется в районе 5 мк. За счет этого считывание данных с жестких дисков происходит довольно быстро. Для тестирования микроконтроллеров программаторы на вышеуказанных резисторах применяться могут.

Также следует отметить, что модуляторы в данном случае устанавливаются мультисистемные. Параметр порогового напряжения у них достигает 5 В. Степень искажения у представленных устройств незначительная. Чтобы уменьшить амплитуду колебаний, дополнительно в некоторых моделях установлены емкостные конденсаторы. Порты для таких устройств используются разнообразные.

Использование стрикционных преобразователей

Стрикционные преобразователи в программаторах встречаются довольно редко. Связано это с тем, что пропускная способность у них малая. Также они в значительной степени затормаживают процесс перекрытия сигнала. В данном случае приходится использовать различные усилители. На основных платформах такие устройства работать способны. Резисторы для преобразователей подбираются вспомогательного типа. Напряжение они максимум обязаны выдерживать в 4 В.

За счет этого параметр отрицательного сопротивления в цепи может достигать 6 Ом. Модуляторы для преобразователей подбираются разных типов. В данном случае многое зависит от производителя. Если рассматривать модели для тестирования микроконтроллеров, то модуляторы чаще всего используются диодные. Параметр проходимости сигнала у них доходит в среднем до 5 мк.

Программаторы на микросхеме РР202

Программатор для прошивки данного типа является довольно распространенным. Модуляторы для таких устройств подходят только импульсного типа. В свою очередь, адаптеры можно подбирать разные. В данной ситуации важно добиться высокой стабильности устройства. Резисторы чаще всего устанавливаются высокоомные. За счет этого чувствительность устройства значительно повышается.

При этом параметр проводимости сигнала зависит от типа конденсаторов. В некоторых моделях они используются аналогового типа. За счет этого параметр порогового напряжения удается поддерживать в системе на уровне 30 В. Однако показатель отрицательного сопротивления зависит от скорости обработки данных.

Модели на микросхеме РР300

Универсальный программатор данного типа способен работать на платформах SSW. За счет этого на сегодняшний день он пользуется большим спросом. Преобразователи в нем используются довольно редко. Однако исключения все же бывают. Особой стабильностью такие модели не выделяются. В среднем параметр отрицательного сопротивления у приборов составляет 3 Ом.

Все это говорит о том, что процесс обработки данных происходит довольно быстро. Резисторы чаще всего используются с операционными усилителями. Все это необходимо для повышения полосы пропускания. Минимум этот параметр в устройствах составляет 4 мк.

Устройства с последовательным портом

Первый универсальный программатор с последовательным портом был изготовлен не так давно. Проблема его заключается в слабой чувствительности. За счет этого электромагнитные колебания в сети бывают довольно значительные. Все это в конечном счете отображается на качестве чтения данных с носителей. На сегодняшний день эта проблема была решена производителями за счет усиления пропускной способности.

Резисторы в устройствах обычно устанавливаются вакуумного типа. Для повышения промежуточной частоты используются коммутируемые конденсаторы. Параметр отрицательного сопротивления в системе зависит от мощности модулятора. Если рассматривать многоканальные аналоги, то у них вышеуказанный параметр способен доходить до 3 Ом. В таком случае операционные усилители использовать не обязательно.

Узнаем что такое ISP-интерфейс, разберемся с недорогим и удобным программатором USB ISP. Рассмотрим принципиальные схемы простейших программаторов для AVR микроконтроллеров с использованием COM и LPT портов компьютера. Данной информации вполне хватит чтобы прошить большинство моделей AVR микроконтроллеров не только в Linux, но и в других ОС.

Интерфейс внутрисистемного программирования ISP

Для того чтобы записать программу в AVR микроконтроллер вам понадобится программатор.

Программатор - это небольшая электронная схема, которая позволяет подключить микроконтроллер к одному из портов компьютера (COM, LPT, USB) для последующего считывания и записи прошивки (программирования).

Существует достаточно много разнообразных конструкций программаторов для AVR микроконтроллеров, которые подключаются к разным портам компьютера.

Наиболее надежный и удобный вариант - это программатор что подключается к USB-порту, поскольку в новых настольных компьютерах и ноутбуках уже не устанавливают COM и LPT порты.

В готовых устройствах программатор подключается к микроконтроллеру посредством интерфейса ISP (In System Programming) - интерфейс внутрисистемного программирования. ISP интерфейс представляет собою несколько проводников по которым поступает тактовый сигнал и данные для связки программатора с микроконтроллером.

Как правило ISP интерфейс размещают на платах в виде десяти или шести штырьков, к которым посредством подходящего коннектора через шлейф подключается программатор.

Рис. 4. ISP интерфейс на плате.

Назначение пинов в ISP интерфейсе:

  1. VCC - плюс питания, как правило +5В;
  2. GND - минус питания, земля (Ground);
  3. MOSI - вход данных (Master Out Slave In);
  4. MISO - выход данных (Master In Slave Out);
  5. SCK - тактовый сигнал (Serial Clock);
  6. RST - дла подачи сигнала сброса (Reset).

Для внутрисхемного программирования микроконтроллера достаточно всего 4 пина, поскольку питание микроконтроллера может осуществляться от самой схемы где он установлен.

Как подключить программатор к микросхеме-микроконтроллеру AVR если он не впаян в схему? - очень просто, используя те же пины ISP интерфейса, при необходимости запитав при этом микроконтроллер от источника питания.

Программатор USB ISP ASP

Для работы с AVR чипами я приобрел недорогой USB ISP программатор по цене примерно 10$. Такое устройство есть сейчас в продаже во многих отечественных и зарубежных интернет-магазинах, так что с покупкой проблем не должно возникнуть.

Рис. 5. USB ISP - программатор со шлейфом для внутрисхемного программирования AVR микроконтроллеров фирмы ATMEL.

Данный программатор безопасен в использовании, имеет небольшие размеры и поддерживается большинством программ для прошивки микроконтроллеров AVR. USB ISP работает под операционными системами Linux, Mac OS X и Windows. Для Linux никаких драйверов устанавливать не нужно, после подключения программатора к USB порту устройство сразу же определится и будет готово к использованию.

Ниже приведу распиновку коннекторов программатора USB ISP - она нам потом пригодится при подключении к микроконтроллеру.

Рис. 6. Расположение пинов на разъеме USB ISP (распиновка).

Рис. 7. Расположение контактов в гнездах коннектора подключенного к программатору USB ISP.

Что делать если нет возможности купить программатор USB ISP ? - можно программировать микроконтроллеры используя несложные самодельные программаторы что подключаются к COM или LPT порту, но лучше самому изготовить USB ISP при этом один раз запрограммировав микросхему-микроконтроллер для него простым самодельным программатором через COM или LPT порт.

Рис. 8. Принципиальная схема самодельного программатора USB ASP ISP.

Подробную информацию по изготовлению USB ASP, а также печатные платы, драйвера и прошивку для микроконтроллера можно найти на официальном сайте: http://www.fischl.de/usbasp/

К тому же в интернете достаточно много ресурсов по данному свободному программатору, есть много готовых разводок печатных плат, в том числе и в программе SprintLayout, поэтому подробно в данной статье останавливаться на этом не будем.

Программатор с использованием COM-порта

Этот программатор еще называют "программатором Громова", в честь того кто придумал эту схему, создателя программы Algorithm Builder (графическая среда для программирования AVR под Windows используя алгоритмический язык) - Г.Л. Громова.

Данный программатор позволяет программировать AVR чипы используя COM порт компьютера - интерфейс RS232. Для сборки такого программатора потребуется минимум деталей - 3 диода, 7 резисторов, разъем DB-9 или DB-25(в зависимости от того какой ответный разъем установлен у вас в компьютере) и коннектор ISP для подключения к микроконтроллеру (или же просто несколько проводников к чипу). Диоды в схеме можно использовать любые маломощные.

Рис. 9. Принципиальная схема программатора AVR микроконтроллеров через COM порт компьютера.

Для полноты информации ниже приведу распиновку портов RS-232 для вариантов DB-9 и DB-25.

Рис. 10. RS232 - COM Port, DB-9 расположение выводов.

Рис. 11. RS232 COM Port DB-25 - расположение выводов на разъемах.

Программатор с использованием LPT-порта

Как мы знаем, LPT порт компьютера предназначен для подключения локального принтера (Local Printer Port), но тем не менее его часто используют для подключения различных устройств и самоделок. В данном случаем мы можем его использовать для программирования AVR микроконтроллеров, собрав для данной цели очень простую схему что приведена ниже.

Рис. 12. Принципиальная схема программатора для AVR микроконтроллеров с использованием LPT порта компьютера.

Как видим, схема еще проще чем в варианте с , здесь нам нужны всего лишь 4 маломощных резистора и разъем (папа, со штырьками) для подключения к LPT порту компьютера.

Рис. 13. Расположение пинов для разъемов LPT-порта.

Все детали и соединения можно разместить в корпусе LPT-разъема, а для подключения к микроконтроллеру вывести шлейф с коннектором под ISP-интерфейс или же просто необходимые проводники для подключения к микро-чипу.

Программное обеспечение и заметки

Подключив COM или LPT программатор к микроконтроллеру нужно не забыть подать питание на сам микрочип. В качестве источника питания микроконтроллера можно использовать батарейки или блок питания со стабилизатором, это будет наиболее безопасно как для порта компьютера, так и для чипа. О том как использовать мы уже рассматривали.

Под Linux есть очень мощная программа которая умеет работать с USB ASP, COM и LPT программаторами - это программа AVRDUDE , о ней будет идти речь в следующих разделах.

Для прошивки AVR чипов под Windows с использованием данных COM и LPT программаторов нужна программа UniРrof от Николаева, которая представляет собою универсальный программатор для AVR (avr.nikolaew.org).

ВНИМАНИЕ! Будьте предельно внимательны и осторожны при сборке и использовании программаторов с использованием COM или LPT порта компьютера, простой ошибкой можно запросто подпалить эти порты. Для нормальной работы таких программаторов нужно стараться использовать по возможности максимально короткие проводники от разъема к схеме программатора и микроконтроллеру. Микропроцессор компьютера желательно чтобы имел частоту не более 1-2 ГГц, а в качестве ОС для программирования чипов желательно использовать Win2000 или WinXP.

Также важно знать что переходники USB-RS232 (USB-COM Port) скорее всего не будут работать с программатором Громова, заработают возможно только те у которых стоят более новые микросхемы, так что лучше искать машину с родным COM-портом.

Заключение

Программаторы что рассмотрены в статье - это всего лишь несколько наиболее доступных и простых решений из большого списка программаторов для AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, программаторы на FTDI и другие.

Теперь в любом случае вы сможете собрать доступный вам программатор и прошить хотя бы одну микросхему, на основе которой можно собрать другой более удобный программатор или же какое-то устройство.

В следующей статье мы разберемся как подключить разные модели AVR микроконтроллеров к программатору, узнаем где брать информацию о распиновке микроконтроллеров.

Для того чтобы прошить микроконтроллер в 95% случаев хватает последовательного программатора. Самым простым является «5 проводков» для LPT порта. Но схема эта не надежна. Но самым большим минусом этого программатора является отсутствие LPT порта на новых компьютерах.

Программатор Громова — это практически теже 5 проводков, только для COM-порта. Схема эта в десятки раз надежнее,. Автором этого программатора является Генадий Громов, создатель Algorithm Builder . Вот его схема:

И так надо 3 диода,любые, например кд522 или 1N4148. 7 резисторов на 1 кОм.

вот пример платы, сразу скажу что там резисторы на 10кОм, но все равно работает, вам все таки рекомендую делать по схеме.

ну еще я использую щуп для корпусов SO8

Для программирования используется программа UniProf от Николаева

UNIPROF – это ISP (in system programming) программатор для AV R микроконтроллеров (смотрите список слева). Имеет встроенные модули отладочного обмена, позволяющие при помощи того же самого шлейфа, при помощи которого программировали, производить realtime отладку программы (подробнее об отладке). (далее – просто программатор). Программатор позволяет:

  • Читать/писать/сравнивать FLASH память программ и EEPROM;
  • Чтение/запись/сравнение FLASH возможно в указанных границах;
  • Читать/писать fuse и lock биты;
  • Читать настроечные байты OSCCAL и при необходимости помещать их в буфер EEPROM или FLASH;
  • Вручную корректировать содержимое окна EEPROM и перемещать блоки FLASH;
  • Работает с файлами в форматах HEX, BIN и generic;
  • Возможна подача любой команды протокола обмена “вручную”;
  • Режим “тормоз” для низких тактовых;

Схема программатора и программа ниже во вложении

Вложения

 

 

Это интересно: