Простой программатор для прошивки AVR контроллеров.

Простой программатор для прошивки AVR контроллеров

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


Я не берусь утверждать, что мое мнение единственно верное и даже не претендую на оригинальность, но для того, чтобы попробовать силы в искусстве программирования и расширить свои возможности с помощью микроконтроллеров необходимы четыре очевидных вещи; микроконтроллер, программатор, программное обеспечение и конечно компьютер.

Сейчас на рынке можно найти много разных микроконтроллеров с разрядностью от 8 до 64 бит. Более того в России тоже есть свой 8-разрадный микроконтроллер КР1878ВЕ1 выпускаемый заводом «Ангстрем». Но если присмотреться к этому изобилию получше и учесть то, что для реализации подавляющего большинства радиолюбительских проектов хватит и 8-ми битных микроконтроллеров, оказывается, что достойную и не дорогую, а то и вообще бесплатную, поддержку осуществляют не многие. То из всего изобилия остаются две компании Atmel (AVR) и Microchip (PIC).

Так все же с какого контроллера начать? По моему мнению для начала лучше всего взять ATmega8 в PDIP корпусе. Этот AVR контроллер оснащен практически всей возможной периферией, обладает достаточным количеством памяти, может работать в большом диапазоне частот (до 16МГц) и имеет три порта ввода/вывода. Также AVR микроконтроллеры выгодно отличаются от PIC тем, что используют расширенную систему команд, 32 регистра общего назначения и RISC ядро выполняющее большинство команд за один такт. А еще контроллеры AVR хороши тем, что для их программирования, по большому счету, вообще не нужен программатор для них нужно всего «пять проводков».

А что же еще нужно для начала изучения микроконтроллеров? Еще, чтобы не делать разные платы, лучше приобрести гнездовую макетную плату, сделать несложный программатор, о котором мы поговорим дальше и установив две программки на старенький компьютер, вооружившись разной литературой, например М.Б Лебедев «CodeVision AVR пособие для начинающих», начать постигать азы программирования.

Почему «старенький» компьютер? Потому что, во-первых, в топовых моделях компьютеров LPT порт отсутствует как класс, а чтобы сделать USB программатор, надо уже иметь возможность прошивать микроконтроллеры, а во-вторых, будет очень неприятно потерять современный комп из-за того, что что-то пошло не так и LPT порт приказал долго жить. Более того все необходимые для прошивки программы хорошо работают под ХР и не требуют мощного железа или W10.

PonyProg для работы программатора и CodeVision AVR для написания программ можно свободно скачать в инете, а разобраться в них вообще никакой сложности не представляет. Вообще-то СV_AVR платная, но для начала можно пользоваться ее бесплатной (обрезанной) версией, а потом найти на торрентах бесплатный вариант.

Строго говоря универсальная среда для программирования AVR контроллеров - Atmel Studio. Она бесплатна и позволяет делать все что только придет вам на ум при создании программ. Но это очень мощная программа, занимающая много места и требовательна к железу. Как по мне, то для любительских поделок Atmel Studio сильно избыточна. Но если вы собираетесь серьезно заниматься программированием МК, то лучше начинать разбираться в ней.

Но вернемся к программатору. STK200-300 своей схемой не далеко ушел от «пяти проводков». Но так как «пятью проводками» спалить LPT порт как нефиг делать, то чтобы не случилось беды были приняты меры по установки буфера между портом и программируемым микроконтроллером. Этим буфером служит SN74HC244N на Руси известная как КР1564АП5.

В этой схеме программатора нет ничего сложного и она не сильно отличается от классической схемы, вдохновившей меня собрать это устройство. Резисторы R1…R6 можно не устанавливать. Но мне с ними спокойней. Когда я делал этот программатор я еще не умел обращаться с планарными элементами и поэтому реализовал свой программатор на выводных, да еще и микросхему вставил в панельку, чтобы ее можно было быстро заменить если сильно накасячу и умудрюсь спалить.

Вот фотграфии этапов сборки.

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

Ну а если по каким-то причинам специальные разъемы на плате сделать не удается всегда можно подпаяться к ножкам контроллера.


В прилагаемых файлах схема в формате .spl7 и плата в формате .lay6. О сборке програматора "пять проводков" можно почитать в моих уроках по программированию. Также если есть желаняе сделать этот программатор с помощью планарных элементов, то можно посмотреть реализацию на сайте "Easy Electronics", или еще один радикальный способ здесь.


А на сегодня всё. Удачи.

31.01.16


Если вдруг найдете в статье неточности или заблуждения. Напишите мне об этом. Я подправлю.

Приложение:
Скачать схему и плату.