Логотип

Программирование AVR микроконтроллеров для начинающих

материалы в категории

Программирование с помощью CodeVision AVR

В предыдущей статье Программирование для начинающих. часть 2 было рассказано как прошивать микроконтроллер при помощи программы PONY PROG, здесь мы рассмотрим как прошить AVR микроконтроллер при помощи программы  CodeVision AVR.

Скачать программу CodeVision AVR можно у нас на сайте в разделе радиолюбительский софт (бесплатно, конечно-же!)

В общем-то сам процесс программирования микроконтроллеров при помощи CodeVision AVR не сильно отличается от PONY.

Итак: запускаем программу

CodeVision AVR

Сначала нам нужно настроить порт, заходим в меню Settings -> Programmer.


Откроется окошко, все настройки выставляем как на рисунке ниже

 

Нажимаем ОК.
Сейчас нужно выбрать тип микроконтроллера. Для этого заходим в меню Tools -> Chip Programmer


Откроется вот такое окошко:


Ничего лишнего в этом окошке не трогаем, галочки не ставим и ничего не переключаем.

Выбираем нужный нам микроконтроллер из выпадающего меню, (на примере выбран ATmega8). Если у вас в названии микроконтроллера после ATmegaX стоит буква, к примеру V или L,  то в списке выбирайте такой же МК, с такой же буквой.

Теперь нам нужно открыть файл прошивки, в этом окошке нажимаем File -> Load FLASH


Откроется окно, где нужно будет выбрать файл прошивки с расширением .hex, кстати, не забудьте внизу из выпадающего меню "Тип файлов" выбрать этот тип файла.

 

Файл EEPROM выбираем точно так-же, для этого нажимаем меню File -> Load EEPROM, расширение этого файла .eep, если к вашему проекту такой файл не прилагается, значит нужно прошивать только FLASH т.е. .hex.

Имейте ввиду, что процессы прошивки программы, фьюзов
и ПЗУ (EEPROM) это самостоятельные отдельные процедуры.
И рекомендуется шить сначала программу, затем ПЗУ, затем фьюзы, в принципе что у нас и происходит, когда мы загружаем все файлы для прошивки, и выставляем фьюзы в окошке.

 Итак, файлы прошивки загрузили, теперь нам нужно выставить фьюзы, Для моего проекта фьюзы следующие: BOOTSZ1, BOOTSZ0, SUT1, CKSEL3, CKSEL2, выставляем их.

Затем ставим галочку Program Fuse Bit(s), если вы не поставите галочку – фьюзы не будут записываться.

Чтобы проверить, видит ли наша программа программатор, подключенный к LPT порту, нажимаем кнопку Reset Chip, на программаторе должны мигнуть светодиоды чтения/записи. Если светодиоды не мигают, значит нам нужно проделать операции после пункта 6, описанные в предыдущей части статьи.

Теперь можно прошить МК, нажимаем кнопку Program All, и начнется процесс прошивки.

Если вы загружали только файл прошивки FLASH, .hex, то по ходу прошивки программа предложит загрузить файл EEPROM, жмем NO, т.е. НЕТ.


После чего пробегут еще 2 полоски и процесс прошивки завершится

 

Во время прошивки МК нельзя выключать или перезагружать ПК!


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

Решение некоторых проблем при программировании AVR микроконтроллеров

C разными программаторами, и с разными программами возникают разные ошибки, но некоторые ошибки между собой очень похожи, и устраняются одинаково.
Во первых микроконтроллеры подключайте строго к указанным выводам: RESET, VCC, GND, MOSI, MISO, SCK. Если  спутаете вывода, или забудете припаять один из контактов, МК не прошьется. Случайно МК в панельку можно поставить спутав вывода, т.е. задом на перед, от этого МК не сгорит, но и не прошьется конечно тоже.  Напомню еще раз, что у некоторых МК, например в ATmega 64 и 128 вывода MOSI и MISO не применяются для ISP программирования, вместо них вывода MOSI подключают к ножке PE0, a MISO к PE1. Напряжение питания не должно быть ниже чем нужно, иначе МК не будет программироваться, программы будут выдавать ошибки о том, что не могут обнаружить МК.

Записывать левые программы, например программу, предназначенную для ATmega8 в ATmega48 нельзя.  Бывает, что вы запрограммировали МК и файлы прошивки удалили с компьютера, а найти прошивку чтобы прошить другой МК не можете найти. В таких случаях просто считываете программу с микроконтроллера, например с помощью CVAVR и сохраняете его на ПК, затем этой прошивкой прошиваете другой МК.

Если вы случайно запрограммировали какой то фьюз, после чего МК залочился, вспомните, что это был за фьюз, некоторые МК с неправильно зашитыми фьюзами удается восстановить, есть несколько способов как это сделать. На К155ЛА3 можно собрать генератор чтобы восстановить МК с запрограммированным RSTDSBL, если вы выставили фьюзы на работу от внешнего генератора, подавая сигнал на вывод XTAL1 некоторые умудряются таким способом восстановить МК. Также фьюзами можно выставить тактирование от внешней RC цепочки. В таком случае придется собрать RC цепочку, чтобы опять запустить МК. Ещё есть фьюзы DWEN, SPIEN..., установив которые, вы отключите возможность пользоваться ISP программатором, тут поможет только параллельный программатор, другие программаторы (к примеру тритон) или приборы, которые встречаются на просторах интернета:например этот, или ATmega Fusebit Doctor

источникhttp://cxem.net/

Почта сайта