Простой программатор 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 деталей используется на много меньше.

NM9211

Если лениво и в облом то можно сделать еще более простой вариант: две панельки шнур и кусок макетной платы вот и все что необходимо для счастья.

Теперь можно перейти к самому главному - программе микроконтроллера. Исходная программа есть на немецком сайте 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

p_11_115

n_11_115

7 373 000

3

115200

p_7_115

n_7_115

 

11

38400

p_7_38

n_7_38

 

23

19200

p_7_19

n_7_19

3 686 000

1

115200

p_3_115

n_3_115

8 000 000

12

38400

p_8_38

n_8_38

 

25

19200

p_8_19

n_8_19

 

51

9600

p_8_9

n_8_9

4 000 000

12

19200

p_4_19

n_4_19

 

25

9600

p_4_9

n_4_9

В расчете частот можно применить программу 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"

 

Обсудить статью можно здесь.

 

   Муравьев Юрий