Страницы курса:

Уроки

Задания


index.htm
01.htm
02.htm
03.htm
04.htm
05.htm
06.htm
07.htm
08.htm
09.htm


z1.htm
z2.htm
z3.htm
z4.htm
z5.htm
z6.htm
z7.htm
z8.htm
z9.htm
z10.htm
z11.htm

New! - ФОРУМ!

Совет - умейте правильно находить информацию!


Добавить страницу в закладки:

- стр. 7 -

Чем и как "прошить" МК AVR ?
Как загрузить программу в микроконтроллер.
Как запрограммировать микроконтроллер AVR.

 

Напоминаю: Об основах и тонкостях электроники и схемотехники читайте в настольной книге электронщика:  П.Хоровиц, У.Хилл. Искусство схемотехники на РУССКОМ языке.   

Я советую прошивать микроконтроллер прямо из программатора встроенного в компилятор CodeVisionAVR через простейший адаптер - буквально "пять проводков" соединяющих принтерный порт ПК с прошиваемым микроконтроллером AVR.

ПОДРОБНО: Результат написания и компиляции программы - файл-прошивку с расширением .hex (и возможно файл с содержимым для
EEPROM
МК) нужно записать ("зашить") в МК .
МК AVR многократно программируются прямо в устройстве в котором будут работать - такое программирование называют - "ин систем программинн" или ISP. 

Для этого установите на плате вашего устройства 6 контактов,  а лучше 6-ти штырьковый разъем для ISP

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

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


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

Для "5 проводов" этот вывод не подключается. Для программирования достаточно 5 контактов. Соответственно и разъем который вы будете использовать может быть любым удобным для размещения на плате и имеющий минимум 5 контактов. Все контакты ISP разъема подсоединяются к  ножкам  МК в соответствии с названиями.

     
 

ВНИМАНИЕ !  в ATmega64 и ATmega128 выводы MOSI и MISO не применяют для ISP  Внимательно смотрите ДатаШит !     Например для ATmega128 сигналы MISO подключают к ножке PE1,  MOSI подключают к ножке PE0

 
     


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

Вы можете в компиляторе CodeVisionAVR открыть меню "Проджект -> Конфига -> Афта Мэйк"  и отметить чек бокс  "Program the chip" затем ОК. Еще нужно в меню "Сеттинс  -> Программер" выбрать ваш адаптер (подробней ниже) для программирования. Теперь после безошибочной компиляции программы вам будет доступна кнопка "Program" - нажмите на нее и произойдет программирование МК - т.е. файл .hex будет загружен в память программ МК. Затем МК будет "сброшен" (на ножку RESET будет подан лог. 0 а затем опять "1") и начнет выполнять только что прошитую (загруженную в него) программу. Вам даже не нужно будет отсоединять адаптер программирования от вашего устройства  если вы не используете в устройстве последовательный интерфейс SPI.  ... и так до окончательной отладки устройства.

     
 

В А Ж Н О !  В диалоге настройки программирования не трогайте галочки установки фьюзов МК если не разобрались четко что они делают! Иначе вы можете отключить режим ISP или внутренний RC-генератор и для следующего программирования вам понадобится ставить кварц с конденсаторами или даже искать Параллельный программатор для AVR. Но популярному ATtiny2313 даже параллельный программатор не поможет!  

 
     

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

З а п о м н и т е : 

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

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

Пример: Чтобы включить в ATmega16 внешний кварцевый резонатор с частотой от 3 до 8 МГц с конденсаторами (по схеме рис. 12 ДШ) найдите в ДШ раздел "System Clock".

В таблице 2 указаны комбинации фьюзов для разных источников тактового сигнала. Далее написано что с завода МК поставляется с такой комбинацией фьюзов

SKSEL   0001     SUT  10       CKOPT   1


По таблице 4  находим :

Для кварца с частотой от 3 до 8 МГц 
нужны конденсаторы от 12 до 22 пФ и  вот  такая  комбинация  фьюзов :

SKSEL   1111     SUT  10       CKOPT   1

Установка фьюзов в программаторе компилятора  CVAVR


Для прошивания МК нажмите кнопку "Program All"

Для использования ATmega16 (и других мег) с внешним кварцевым или керамическим резонатором на частотах выше 8 МГц вам нужно установить фьюзы как в примере выше но запрограммировать CKOPT  - значит сделать его "0". Т.е. вам нужна такая комбинация:

SKSEL   1111     SUT  10       CKOPT   0

CKOPT   - нужен и тогда когда вы хотите подключить к XTAL2 другой микроконтроллер или тактируемый прибор.

Фьюзы  SUT   - определяют запуск генератора тактового сигнала, в большинстве случаев их установку можно оставить "как с завода"  -   SUT  10   -  более детально это описано в даташите в таблицах до 12.
  Для соединения компьютера с ISP разъемом устройства на AVR Советую сделать адаптер от STK200  - это "правильные 5 проводков" с микросхемой буфером снижающим вероятность случайного повреждения порта ПК. В установках компилятора CodeVisionAVR интерфейс "5-проводков" называется  "Канда системз STK200+/300"



Программа узнаёт адаптер STK200 по перемычкам на разъеме параллельного порта к которому он подключается - должны быть соединены двумя перемычками пары выводы: 2 и 12,  3  и 11. 

 

     
 

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

 
     

 

Попробуйте поискать полезную инормацию в Гугле - ее там море !  Учитесь искать!

Если в МК нет внутреннего генератора тактового сигнала (например старые AVR серии AT90sXXXX или мега побывавшая в чьих то шаловливых руках изменивших фьюзы до того как попасть к вам) то нужно подключить кварц  на 1 - 8 МГц и два конденсатора от 15 до 33 пФ. Либо подать тактовый сигнал 1-1.5 МГц от внешнего источника - например генератора на микросхеме 74hc14 или на таймере LM555.

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

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

 Еще очень советую поставить подтягивающий резистор 10 кОм от ножки Reset МК на питание VCC и конденсатор 0.01-0.33 мкФ (в апноутах AVR040 и AVR042 рекомендуют 0.01 мкФ) от Reset на GND  -  как в схеме к задаче 7 курса.

 

     
 

Я использую самый простой вариант адаптера STK200 - "для самых ленивых"   - пять поводков соединяющих линии параллельного (LPT) порта ПК и AVR так же как на схеме STK200 выше, но без микросхемы буфера. Лучше все же токоограничительные резисторы от 150 до 270 ом впаять Проводки не более 15 см длиной !

 
     

 

 



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

     
 

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

 
     

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

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

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

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

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

     
 

ВНИМАНИЕ!  Всегда старайтесь первыми соединить "земли" устройств, а затем питание и потом уже сигнальные линии.

 
     


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

 

     
 

Если вы хотите использовать ножки МК SCK, MOSI, MISO в вашем устройстве то подключайте другие компоненты к ним через резисторы 4.7 КОм - чтобы не мешать программированию. Так рекомендовано в апноуте AVR042 Для Мега64, -128, -256 вместо MOSI и MISO используются другие ножки для ISP программирования !

 
     

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

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

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

Вот топик об успешной сборке этого интерфейса для программирования на ATmega8. Это новый вариант платы для него. Архив с разводкой платы Внимание !  Этот программатор выдает тактовый сигнал 1 МГц и меньше для прошивки МК без кварца и с выключенным внутренним генератором. тактовый сигнал выводится на контакт "LED". Его нужно подвести к ножке XTAL1.

     
 

Существуют специальные программы "бутлодеры" которые записываются в микроконтроллер способами перечисленными выше и после этого микроконтроллер может сам, при включении, закачивать в себя программу (например из ПК через адаптер UART rs232 COM port - схема в задаче 4 курса) и запускать ее выполнение. Есть много бесплатных загрузчиков

 
     

 

Программатор AVR микроконтроллеров. LPT программатор.

Кликни чтобы увеличить
 
Принципиальная схема программатора на LPT порт показана на рисунке. В качестве шинного формирователя используется микросхема 74HC244 (К1564АП5), 74LS244 (К555АП5) либо 74ALS244 (К1533АП5), хотя может использоваться любой другой неинвертирующий шинный формирователь с тремя состояниями (в этом случае может потребоваться соответствующее изменение схемы).

Светодиод VD1 индицирует режим записи микроконтроллера,
светодиод VD2 - чтения,
светодиод VD3 - наличие питания схемы.

Напряжение, необходимое для питания схема берёт с разъёма ISP, т.е. от программируемого устройства. Эта схема является переработанной схемой программатора STK200/300 (добавлены светодиоды для удобства работы), поэтому она совместима со всеми программами программаторов на PC, работающих со схемой STK200/300. Для работы с этим программатором используйте программу CVAVR


Программатор можно выполнить на печатной плате и поместить её в корпус разъёма LPT, как показано на рисунках:

Для работы с программатором удобно использовать удлинитель LPT порта, который несложно изготовить самому (к примеру, из кабеля Centronix для принтера), главное "не жалеть" проводников для земли (18-25 ноги разъёма) или купить. Кабель между программатором и программируемой микросхемой не должен превышать 20-30 см.

Файлы:

 

AVR miniICE -  

Это профессиональное средство для программирования и  отладки программы МК ATmega фирмы Atmel в реальном устройстве. Он полностью совместимый с оригинальным AVR JTAG ICE.

Автор данного устройства Milan Kostomlatsky kosta@mcu.cz
Оригинальное описание находится здесь

Пример реализации: на макетке

 

Добавить страницу в закладки:

<---Назад                              Дальше..--->

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rating All.BY Rambler's Top100 МЕТА - Украина. Рейтинг сайтов


2009-2015 123avr.com