Простой программатор AVR910
Как для геолога - карта,
Как для пилота - штурвал..
Есть несколько устройств, которые входят в комплект необходимого для разработчика оборудования. Основа основ: программатор. Существует множество различных устройств позволяющих слить все плоды нашего творчества, в чип, который после этого должен... ну не суть как важно, что он должен. Главное, что устройство позволяющее прошить свою простенькую программу в свой простенький чип не должно стоить как реактивный самолет! Но оно должно быть надежным как пудовая гиря, и простым как пять копеек. Лучше всего чтобы 3-4 детали, и паять не долго. И, как говорят классики - Такая партия есть!
За основу возьмем программатор, описанный в Master Kit как NM9211 его достоинства это простота конструкции и "стандартность" (совместимость с AVR ISP) иными словами вам не нужно искать никакого дополнительного софта. Недостаток - использование внешнего источника питания и COM-порта, а также небольшой список прошиваемых микросхем. Вывод - надо все упростить и по возможности доработать. Самим ничего придумывать не нужно. Необходимо заменить питание и COM- порт устройством из статьи "Простой переходник с USB на UART TTL", добавить прошивку, полученную авторами набора NM9211 путем адаптации материала с сайта немецких товарищей, и убрать много лишних деталей.
Лучше всего собрать такое устройство на монтажной плате. Нам понадобится: две кроватки, кварц, два конденсатора приблизительно 30 пик, электролит конденсатор примерно 1-2 микрофарад, резистор 1- 100 килоом. Ну и микроконтроллер AT90S2313. Сей несложный набор найдется в любой барахолке. Можно применить пришедшую на смену микросхему ATtiny2313. Это позволяет выкинуть из схемы кварц и два конденсатора (выкидывая эти детали не забудьте всеже о том что соединять выводы 4 "Xtal2" обеих микросхем - необжодимо!). Однако при этом необходимо помнить что при применении внутреннего генератора нужно установить его на частоту 8 Мгц (ни в коем случае не на 4Мгц!!- ибо этот генератор глючит со страшной силой), и выключить внутренний делитель. (CKSEL=0100, SUT=10, CKDIV8=1) Скачивать соответственно прошивку для кварца 8 Мгц.
Итак, выковыриваем из кучи барахла необходимые детали. И собираем примерно такую схему.
В общем если есть макетная плата, то должно получиться нечто вроде этого. Как видно эта схема занимает совсем немного места и проста в сборке.
Если есть желание, то можно, конечно, добиться некоторой законченности конструкции приобретя набор NM9211 и получив в результате за 500 рублей то, что можно собрать за 70. Но, как говорится: красота требует жертфф. Тем более что с покупкой такого набора отпадает необходимость в первичном программировании используемого в устройстве микроконтроллера. Ниже представлены два варианта - с обычным портом, и с переходником на USB. Как видим, в случае с USB деталей используется на много меньше.
Если лениво и в облом то можно сделать еще более простой вариант: две панельки шнур и кусок макетной платы вот и все что необходимо для счастья.
Теперь можно перейти к самому главному - программе микроконтроллера. Исходная программа есть на немецком сайте AVR910 - Programmer. Однако есть ньюансы. Кое что придется подкорректировать:
Особое внимание следует обратить на то, что в данной схеме линии MOSI и MSIO расположены "накрест" тогда как в "первоисточнике" они идут прямо - то есть нога 17 соединяется с 17 а 18 с 18. Это тонкий момент - необходимо скорректировать исходную программу, учитывая это. В тексте программы необходимо «поменять» порты вывода PB5 и PB6.
;-------------------------------> original pin-out
;.equ MISO = PB6 ; MISO pin of the target (input)
;.equ MOSI = PB5 ; MOSI pin of the target (output)
;-------------------------------> N9211 pin-out
.equ MISO = PB5 ; MISO pin of the target (input)
.equ MOSI = PB6 ; MOSI pin of the target (output)
Теперь поговорим о выборе кварца. Вот таблица с вариантами частот кварцев, скоростей обмена и коэффициентов деления. Рекомендуемая скорость 115200. Для вывода К.дел. можно воспользоваться формулой К=(Fкварц/(Скор*16))-1
Частота кварца (герц) |
Коэффициент деления |
Скорость (Бод) |
Прошивка MN9211 |
Прошивка AVR190 |
11 059 000 |
5 |
115200 |
||
7 373 000 |
3 |
115200 |
||
|
11 |
38400 |
||
|
23 |
19200 |
||
3 686 000 |
1 |
115200 |
||
8 000 000 |
12 |
38400 |
||
|
25 |
19200 |
||
|
51 |
9600 |
||
4 000 000 |
12 |
19200 |
||
|
25 |
9600 |
В расчете частот можно применить программу AvrAssistant
В моем случае это был кварц на 11 мегагерц и скорость 115200. Тоесть
;********* Baudrates for 11 Mhz Chrystal
.equ XTAL =11059 ; XTAL frequency, Khz (11.000 Mhz)
;*********
.equ BAUD =115200 ; Data rate, bauds
.equ N = 5 ; for 11.06 Mhz/115.200 Baud
Подкорректированную таким образом программу можно откомпилировать и прошить в микроконтроллер AT90S2313 для этого проще всего обратится к друзьям, имеющим программаторы, в институт (в любом приличном техническом вузе оно должно быть). Можно также собрать простейший программатор на LPT порт, или все-таки купить вышеуказанный набор. Если параметры ваших деталей отличаются скачайте исходный код программы и измените необходимые значения.
ВСЕ. Программатор готов к работе. Теперь осталось только скачать софтину, которая "поймет" этот девайс в стиле франкенштайн форевер. Из личного опыта могу порекомендовать вот эту программу AvrOspII. скачать ее можно вот по этой ссылке. Скачивать лучше именно с нашего сайта, так-как в архив добавлены файлы позволяющие работать с фьюзами без установки AvrStudio4. Не забудьте также установить драйверы USB переходника. О том, как это делается, смотрите статью "Простой переходник USB - UART TTL"