Курс AVR123.nm.ru


Electronic Banner Exchange (ElBE)
 


 

 
         
 

- стр. 7 -

 

Чем и как "прошить" МК AVR ?

КОРОТЕНЬКО:  прямо из компилятора CodeVisionAVR используя "пять проводников" от принтерного порта ПК к вашему МК устройству.

 

 

Напоминаю:


поиск   GOOGLE   по 
Краткому Курсу AVR

 

об основах и тонкостях электроники и схемотехники
читайте в настольной книге электронщика:  

П.Хоровиц, У.Хилл. Искусство схемотехники - общепризнанная 
библия электронщика на РУССКОМ языке.    Уже 5-е издание.

 

 

 


ПОДРОБНО:

Результат написания и компиляции программы - файл-прошивку
с расширением .hex нужно "зашить" в МК

Это можно сделать прямо из  CodeVisionAVR 

 

МК AVR перепрограммируются прямо в устройстве в котором он работает - такое программирование называют - "ин систем программинг" или ISP. 


Вам нужно лишь на плате вашего устройства
установить 6-и штырьковый разъем:

вид сверху платы на штырьки. 
выводы подсоединить к МК в соответствии с указанными названиями.

Подробней по ISP посмотрите Апликейшн Ноут AVR910

Вывод 2 нужен если вы собираетесь использовать программатор
питающийся от вашего же устройства - например фирменный ISP AVR. 


Для программирования достаточно 5 контактов

Соответственно и разъем который вы будете использовать может
быть любым имеющим не менее чем 5 контактов.

 

Все контакты ISP разъема подсоединяются
к  ножкам  МК в соответствии с названиями!

 

     
 

В ATmega64 и ATmega128 выводы MOSI и MISO 
не применяют для ISP

Внимательно смотрите ДатаШит!    

Используются другие выводы МК  !

 
     


Я советую вам пользоваться  опцией программирования встроенной 
в компилятор CodeVisionAVR и конечно же в нем разрабатывать 
программу для МК. 

Дело в том, что вам вряд ли удастся сразу написать программу без ошибок, даже после прогона в софт эмуляторе ваше устройство может делать не то, 
что вы от него ожидаете - значит в программу нужно будет вносить 
изменения и снова зашивать в МК, и так раз 100 (именно сто!).  

Вы можете в компиляторе CodeVisionAVR открыть меню "Проджект -> Конфига -> Афта Мэйк"  и отметить чек бокс "Program the chip" затем ОК.

Еще нужно в меню "Сеттинс  -> Программер" выбрать ваш адаптер (подробней ниже!) для программирования.

Теперь после безошибочной компиляции программы вам будет доступна кнопка "Program" - нажмите на нее и произойдет программирование МК. Затем МК будет "сброшен" (на ножку RESET будет подан лог. 0) и начнет выполнять только что прошитую программу с начала.

Вам даже не нужно будет отсоединять адаптер программирования от вашего устройства!  и так до окончательной отладки устройства.

 

     
 

В А Ж Н О !  

В диалоге настройки программирования не трогайте галочки установки фьюзов МК если не разобрались четко что они делают! 

Иначе вы можете отключить режим ISP или внутренний RC-генератор и для следующего программирования вам понадобится ставить кварц с конденсаторами или даже искать параллельный программатор.

 
     

 

в ATmega с завода включен внутренний RC генератор на частоте 1 МГц (уточните это по ДШ) - если вам нужна другая частота или нужно включить внешний кварцевый резонатор - вам нужно будет запрограммировать некоторые фьюзы по таблицам из ДШ или по таблице фьюзов на стр. 2

Напомню  что: 

НЕ запрограммированный  фьюз = 1

ЗАпрограммированный   фьюз = 0

 

О фьюзах я уже рассказывал на стр. 2 курса. 

А подробней вы можете прочитать о них конечно в ДШ, 
а по-русски в переводе ДШ.


 

 

     
 

Помни товарищ !  Есть живая конференция где быстро и правильно подскажут как делать.

 
     

 


 

Для соединения компьютера с ISP разъемом устройства на AVR Советую сделать адаптер от STK200  - эта схема в установках компилятора CodeVisionAVR он называется "Канда системз STK200+/300"



Программа узнаёт адаптер STK200 по перемычкам на разъеме
параллельного порта к которому он подключается. 

должны быть соединены двумя перемычками 
пары выводы: 2 и 12,  3  и 11
. 


     
 

Внимание!   Для программирования к МК должно быть подключено питание. Например +4...+5 вольт ко всем выводам VCC МК и 0 вольт ко всем выводам GND (это "общий" провод).

 
     


 
Если в МК не
т внутреннего генератора тактового сигнала (например старые МК серии AT90sXXXX ) то нужно подключить кварц на 1 - 8 МГц и два конденсатора от 22 до 33 пФ. Либо подать тактовый сигнал от внешнего источника.

подробней смотрите в ДатаШите.



Программа AVReAl может программировать
МК
без кварца и без конденсаторов !

Она выводит тактовый сигнал на выв. 5 LPT его нужно подать на ножку XTAL1 МК и добавить в командной строке AVReAL специальный ключ  "-o0".

 

Тактовый сигнал генерирует и программатор
на USB по ссылке в низу этой страницы !

 

Еще нужны (может не понадобится на некоторых AVR - но  не помешает точно) резистор 10 кОм от ножки Reset МК на VCC, и конденсатор 0.1 мкФ от Reset на GND  -  как в схеме к задаче 7 курса.

 


     
 

Я использую самый простой вариант адаптера
STK200 - "для самых ленивых"   

пять поводков соединяющих линии параллельного (LPT) порта ПК и AVR так же как на схеме STK200 выше, но без микросхемы буфера. 

Лучше все же токоограничительные резисторы от 150 до 270 ом впаять

Береженого бог бережет !

 
     

 

 



Адаптер "5-проводков" прекрасно
работает с компилятором CodeVision



2005_01 проверил "проводки" при питании МК ATmega64L
от 3,0 до 5,3 вольт - программирует без сбоев!
  


     
 

Советую для изготовления адаптера взять " принтерный" шнур - он длинный и экранированный, а не экранированные проводки не стоит делать более 10-15 см.

 
     

 
Для питания устройства при программировании и отладке можно кроме сетевого адаптера использовать: 

- батарейку на 6 вольт с 2 диодами последовательно для понижения напряжения... 

- можно три батарейки по 1,5 вольт последовательно соединить 


... а можно +5 вольт взять с вывода 1 гейм
порта компьютера или осторожно из гнезда USB.


Желательно питать устройство от ПК!  В этом случае "земля" вашего устройства будет соединена с корпусом ПК и можно будет безопасно подключать и отключать разъем программирующего адаптера.


 

     
 

ВНИМАНИЕ! 

Всегда старайтесь первыми соединить "земли" устройств, а затем питание и потом остальные, сигнальные линии.

 
     

 

 


Не поленитесь:  спаяйте адаптер STK200 на микросхеме буфере - так как LPT порт компьютера более нежен чем COM - соответственно его спалить проще...   

спалите LPT и будете меня ругать! 

А  я  предупреждал !

 

 

В документации на  Tiny2313 есть неточность.

По умолчанию, т.е. новый МК с завода, внутренний RC-генератор
настроен на 4МГц с пред-делителем на 8  - т.е. частота 500 КГц. 

Значит частота на SCK, формируемая программатором
не должна быть выше 120..125кГц. 



Программатор встроенный в CodeVisionAVR
позволяет настроить эту частоту правильно.

 

AVReal  тоже.  

 

 

Если у вас нет LPT порта сделайте
Аналог  "5 проводков" для COM-порта.

 

 


Или соберите простой, дешевый
USB программатор для AVR


 

 

Или соберите похожий
USB
 программатор AVR и AT89s
 

Вот топик об успешной сборке этого интерфейса для программирования
на ATmega8. Это новый вариант платы для него. Архив с разводкой платы

Внимание !  Этот программатор выдает тактовый сигнал для прошивки МК без кварца и с выключенным внутренним генератором. тактовый сигнал выводится на контакт "LED".

 

 

 

Назад              Дальше...

 

 


AVR раз, два, три...   это просто!

действительно Краткий Курс !

МикроКонтроллеры AVR Начинающим "с нуля" 


 

 

 

 

 

 

 

 

 

 

 

 

ключевые слова: программирование микроконтроллеров, как написать программу для микроконтроллера, обучение программированию микроконтроллеров, микроконтроллеры atmega128, как запрограммировать микроконтроллер, как прошить микроконтроллер, отладка программы для AVR, моделирование работы электронных схем, электронные проекты, хобби, язык си для микроконтроллеров, язык программирования си
AT76C712 , AT76C713 , AT90CAN128 , AT90CAN128 Automotive , AT90CAN32 , AT90CAN64 , AT90PWM2 , AT90PWM3 , AT90S1200 , AT90S2313 , AT90S2323 , AT90S2343 , AT90S4433 , AT90S8515 , AT90S8535 , ATmega128 , ATmega1280 , ATmega1281 , ATmega16 , ATmega161 , ATmega162 , ATmega163 , ATmega164 , ATmega165 , ATmega168 , ATmega168 Automotive , ATmega169 , ATmega2560 , ATmega2561 , ATmega32 , ATmega323 , ATmega324 , ATmega325 , ATmega3250 , ATmega329 , ATmega3290 , ATmega406 , ATmega48 , ATmega48 Automotive , ATmega64 , ATmega640 , ATmega644 , ATmega645 , ATmega6450 , ATmega649 , ATmega6490 , ATmega8 , ATmega8515 , ATmega8535 , ATmega88 , ATmega88 Automotive , ATtiny11 , ATtiny12 , ATtiny13 , ATtiny15L , ATtiny2313 , ATtiny25 , ATtiny26 , ATtiny28L , ATtiny45 , ATtiny85

 

 

Hosted by uCoz