Вернуться на главную | Новости | Электроника | Программки | Дипломникам | Спутниковое телевидение | Отборные анекдоты | Вопросы и ответы | Обратная связь |
Как зашить AVR?
В устройствах на микроконтроллерах много достоинств: и простота схемы, и многофункциональность, и легкая апгрейдность… Можно долго продолжать, но начинающим радиолюбителям может быть просто нереально повторить конструкцию из-за отсутствия программатора. Как быть в таком случае? Надеюсь многим поможет эта статья.
В просторах инета можно найти множество различных программаторов для AVR. Я своего изобретать не стал, а собрал из нескольких один.
За основу был взят программатор предлагаемый фирмой Atmel в документации AVR910: In-System Programming. В этой схеме был заменен узел сопряжения с Com портом. Вместо транзисторного преобразователя уровня я поставил микросхему MAX232. Схема устройства приведена на рисунке.
Печатную плату в формате p-cad 2004 можно скачать здесь. Разъемы припаиваются к плате через шлейфы необходимой длины. Шлейф к микроконтроллеру рекомендуется делать длиной сантиметров двадцать. Но у меня вполне нормально работает и метровый. Питается программатор от прошиваемой схемы.
Назначение портов соответствует приведенным в документации AVR910. Для подключения программатора в случае внутрисхемного программирования следует ознакомиться с документацией AVR042. В ней предложено два варианта разъёма 6 и 10 контактные. Распиновка приведена на рисунке.
На мой взгляд 10 контактный вариант более удачен для разводки печатной платы, поэтому я использую именно такой вариант.
Прошивка которая предлагается с AVRStudio в файле avr910.asm умеет прошивать ограниченный тип микросхем. Поэтому был взят исходник с немецкого сайта. В этом исходнике следует поменять назначение выводов MOSI и MISO, чтобы сохранить совместимость со стандартной схемой. Также поменять настройку скорости UART для частоты кварца 4 МГц.
.equ LEDH = PB3 ; dual color LED output, anode green (output)
.equ LED = PB0 ; LED output, active low, dual color LED Kathode green (output)
.equ MISO = PB5 ; MISO pin of the target (input)
.equ MOSI = PB6 ; MOSI pin of the target (output)
.equ RESET = PB4 ; RESET pin of the target (output)
.equ SCK = PB7 ; SCK pin of the target (output)
.equ RXD = PD0 ; UART RXD line
.equ TXD = PD1 ; UART TXD line
;********* Baudrates for 4 Mhz Chrystal
.equ XTAL = 4000 ; XTAL frequency, Khz (4.000 Mhz)
;*********
;.equ BAUD = 38400 ; Data rate, bauds
;.equ N = 6 ; for 4.00 Mhz/38.400 Baud
;*********
.equ BAUD = 19200 ; Data rate, bauds
.equ N = 12 ; for 4.00 Mhz/19.200 Baud
Кроме этого эта прошивка рассчитана на применение в программаторе вместо AT90S1200 более мощного микроконтроллера AT90S2313.
Программа самого программатора AVRProg поставляется совместно с тем же AVRStudio. К сожалению, ее последняя версия 1.40, доступная мне не умеет пользовать ATTiny2313. Выход из этой ситуации я нашел, прошивая Flash и EEPROM, ставил тип микроконтроллера ATTiny26. Fuse биты микроконтроллера ATTiny2313 прошить этой программой нельзя. Стоить обратить внимание на программу avrdude. Эта программа работает из командной строки или в терминальном режиме. Пользоваться ею совместно с AVRStudio мне показалось неудобным, поэтому её я использую только для смены Fuse бит в ATTiny2313.
Как прошить AVR для программатора. Нужно воспользоваться другим программатором. Это может быть уже собранный, а можно собрать простую времянку для подключения к LPTпорту. Распайка такого программатора приведена в таблице.
Сигнал | LPT | н о г и1200/2313 | 8515 | mega103/603 |
---|---|---|---|---|
/RESET | D4(pin6) | 1 | 9 | 20 |
SCK | D6(pin8) | 19 | 8 | 11 |
MOSI | D5(pin7) | 17 | 6 | 2 (PDI) |
MISO | ACK(pin10) | 18 | 7 | 3 (PDO) |
XTAL1 | D3(pin5) | 5 | 19 | 24 |
Вернуться на главную | Новости | Электроника | Программки | Дипломникам | Спутниковое телевидение | Отборные анекдоты | Вопросы и ответы | Обратная связь |