|
- страница 7 -
Всё о прошивке
AVR Чем и как "прошить" МК AVR, ATmega, ATtiny. Как загрузить программу в микроконтроллер. Как запрограммировать микроконтроллер AVR. Я советую прошивать микроконтроллер AVR из удобного интерфейса программирования встроенного в компилятор CVAVR CodeVisionAVR Можно через простейший адаптер - буквально "пять проводков" (схема ниже) соединяющих принтерный порт ПК с прошиваемым микроконтроллером AVR. Но более удобны программаторы подключаемые в USB или COM порты ПК - особенно в USB.
Книги по электронике и микроконтроллерам скачать в библиотеке Страницы курса : заглавная 1 2 3 4 5 6 7 8 9 Задачи-упражнения курса по
AVR -
там Скачать весь курс по AVR одним архивом на заглавной странице курса.
Электрический ток. Закон Ома
Результат написания и компиляции программы - файл-прошивку с расширением .hex (и возможно файл .epp или .bin с содержимым для EEPROM МК) нужно записать ("зашить", "загрузить", "прожечь") в МК AVR.
МК AVR
можно (пере-) программировать
не менее 10000 раз, при чем это можно делать прямо в устройстве в
котором они будут работать -
такое программирование называют "в системе" - "ин
систем программин" или ISP. Например 6 штырьков для ISP
прошивания AVR
Все контакты ISP разъема подсоединяются к ножкам МК в соответствии с названиями сигналов ! Исключения указаны ниже.
Я использую и считаю это очень удобным 6 штырьков расположенные в 1 ряд, в том порядке как расположены ножки программирования у ATmega16 ( рисунок есть на страничке 6 ) - при этом разводка линий программирования получается простейшей. Такой разъем легко применять и для 28 выводных AVR ATmega8 ATmega48 ATmega88 ATmega168 ATmega328 только сделать отдельный проводник для подключения к контакту RESET.
Трудно сразу написать правильно работающую программу, даже после прогона и отладки в софт эмуляторе - симуляторе VMLAB или PROTEUS ваше реальное устройство с реальным AVR может делать не то, что вы от него ожидаете. Значит в программу нужно будет вносить изменения, перекомпилировать и снова зашивать в МК AVR, и так раз 20-40 и более поэтому разумно использовать отличный программатор AVR в уже имеющемся у вас CVAVR в котором вы правите программу.
В меню CVAVR "Сеттинс -> Программер" вам надо выбрать ваш адаптер (подробней про адаптеры ниже!) для программирования.
Вариант 1. Только если вы понимаете что такое фьюзы и знаете как правильно их установить !!! Вы можете в компиляторе CodeVisionAVR открыть меню "Проджект -> Конфига -> Афта Мэйк" и отметить чек бокс "Program the chip". Появится окно программирования-прошивания AVR
В этом окне надо установить параметры программирования - фьюз биты и лок биты - об этом подробней написано ниже. После установки параметров программирования нажмите ОК.
Теперь после компиляции программы без ошибок в окне с результатами компиляции вам будет доступна кнопка "Program" - нажмите на нее и, если все подключено правильно, произойдет программирование МК - т.е. файл .hex будет загружен в память программ МК и (если используется в программе) файл EEPROM будет в нее загружен. Затем МК будет "сброшен" (на ножку RESET будет подан лог. 0 а затем опять "1") и AVR начнет выполнять уже новую, только что прошитую (загруженную в него) программу. Вам даже не нужно будет отсоединять адаптер программирования от вашего устройства если вы не используете в вашем устройстве последовательный интерфейс SPI. ... и так до окончательной отладки устройства.
Вариант 2. Если вы не устанавливали чек бокс "Program the chip" или Если вы хотите без компиляции прошить с помощью CVAVR готовые файлы прошивки .hex и возможно содержимое EEPROM в микроконтроллер AVR
1) запустите программатор CVAVR кнопочкой
"МИКРОСХЕМА" правее "красного
2) Откройте меню "File" затем "Load FLASH" - выберете файл прошивки .hex который нужно прошить в AVR (CVAVR поддерживает и другие форматы, а не только .hex) и щелкните "Открыть". 3) Если у вас есть информация для загрузки в EEPROM AVR то откройте меню "File" затем "Load EEPROM" - выберете файл .epp (CVAVR поддерживает и другие форматы) и щелкните "Открыть". Если вы не используете EEPROM или не меняете ее содержимое - поставьте галочку у "Preserve EEPROM" - это ускорит прошивание. 4) Установите параметры программирования - фьюз биты и лок биты. Лок биты устанавливают уровень защиты вашей программы от чтения из памяти AVR - это актуально для коммерческих изделий. Для защиты прошивки отключите отладочные интерфейсы JTAG или "уан вая" и установите "Programming and Verification disabled".
ГЛАВНОЕ это правильная установка фьюз битов - fuse AVR ... 5) Запрограммируйте AVR не кнопкой "Program All", а через меню "Program" - Стереть, потом FLASH, потом EEPROM и если надо и если вы уверены в их установке то и фьюзы. После прошивания, если вы сделали все правильно, AVR начнет выполнять уже новую программу.
в ATmegaXXX с завода включен внутренний
RC генератор
Если вам нужна другая частота
или нужно включить внешний кварцевый или керамический резонатор -
вам нужно при программировании МК установить фьюзы (Fuses)
по таблицам из ДШ (
Даташит
AVR на русском языке
) или по таблице
фьюзов на стр. 2
или по таблице
установки фьюзов ниже :
ЗАПОМНИТЕ :
ЗАпрограммированный
фьюз
0 Пример: Чтобы включить в ATmega16 внешний кварцевый резонатор (говорят просто - "кварц") с частотой от 3 до 8 МГц с конденсаторами ( по схеме рис. 12 ДШ ) найдите в ДШ раздел "System Clock" - "системный тактовый сигнал". В таблице 2 указаны комбинации фьюзов для разных
источников тактового сигнала.
CKSEL 1111 SUT 11 CKOPT 1 Вот скриншот с такой установкой фьюзов в программаторе компилятора CVAVR
НЕ НАЖИМАЙТЕ кнопку "Program All" - она прошивает и фьюзы не смотря на отсутствие галочки.
Обязательно !!! Прочитайте текущую комбинацию фьюзов в микроконтроллере - "Read" -> "Fuse bit(s)" и скопируйте ее в окно фьюзов. теперь при случайном нажатии кнопки "Програм ол" в МК прошъется та же комбинация фьюзов которая есть сейчас.
Реклама недорогих радиодеталей почтой:
Вначале "Erase chip" - стереть чип. Затем "FLASH" - прошить программу в МК И если надо то "EEPROM" - прошить в EEPROM.
Для использования
ATmega16 (и других мег) с внешним кварцевым или керамическим резонатором
на частотах выше 8 МГц вам нужно установить фьюзы как в примере выше, но
запрограммировать CKOPT CKSEL 1111 SUT 11 CKOPT 0
CKOPT 0
- нужен и тогда когда вы хотите взять с
XTAL2 тактовый сигнал для другого
Фьюзы SUT - определяют
быстроту запуска генератора тактового сигнала,
Интерфейс программирования AVR - Адаптер для соединения МК с ПК при прошивании. Для соединения компьютера с ISP разъемом устройства на AVR Советую сделать адаптер от STK200 - это "правильные 5 проводков" с микросхемой буфером снижающим вероятность случайного повреждения порта ПК. В установках компилятора CodeVisionAVR интерфейс "5-проводков" называется "Канда системз STK200+/300". Меню "сеттингс" - "программер". В этом же диалоге можно понизить частоту с которой программатор будет обмениваться с прошиваемым МК увеличивая множитель задержки. Частоту тактирования сигнала SCK программатором при прошивании можно установить в диалоге программирования в CVAVR.
Либо
подать тактовый сигнал 0.8-1.5 МГц от внешнего источника
- Вот как сделать простой генератор тактовой частоты :
Адаптер "5-проводков" прекрасно работает с компилятором CVAVR CodeVisionAVR.
Я проверял "проводки"
при питании МК ATmega64L от 3,0 до 5,3 вольт, а так же с
ATmega16, ATmega48, ATtiny26, ATtiny261, ATtiny13,
ATtiny2313
- программирует всегда без сбоев!
Всё о прошивке AVR Прошивка
AVR PIC прошивки Программирование PIC и
AVR
- сетевым адаптеры от бытовых устройств понизив напряжение до 5 вольт. Желательно питать устройство от ПК! В этом случае "земля" вашего устройства будет соединена с корпусом ПК и можно будет безопасно подключать и отключать разъем программирующего адаптера.
А я предупреждал !
Поставщики AVR
говорят что
ATTiny2313 поступают с завода с настройкой
внутреннего RC-генератора на 4МГц (в даташите указано 8 МГц) с делителем
частоты на 8
- т.е. частота тактирования всего 500 КГц. Значит частота на линии SCK, формируемая программатором,
не должна быть выше 120..125кГц.
AVReal тоже.
Если у вас
нет LPT порта сделайте
Прошитый микроконтроллер для сборки USB программатора AVR вы можете заказать по почте.
Назад на стр. /06.htm - задачи управжнения по AVR
Cписок Апноутов для AVR примеры применения микроконтроллеров.
И много полезной информации ! |
|
|
AVR miniICE
Это профессиональное средство для
программирования и
отладки программы МК ATmega фирмы Atmel в
реальном
устройстве. Он полностью совместимый
с оригинальным AVR JTAG ICE.
Автор данного устройства Milan Kostomlatsky kosta@mcu.cz Оригинальное описание находится здесь
Характеристики:
Поддерживаемые микроконтроллеры (AVR Studio ver. 4.xx):
Прошивка AVR miniICE
обновляется из новых версий AVR Studio
Вы скачиваете новую версию и через меню
перепрошиваете
AVR miniICE и получаете поддержку новых чипов.
Детали:
| Кол. | Тип | Обозначение |
| 2 | 470R | R1, R2 |
| 1 | 10K | R3 |
| 2 | 22p | C7, C8 |
| 6 | 100n | C1,C2,C3,C4,C5,C6 |
| 1 | LED-G | D1 |
| 1 | LED-R | D2 |
| 1 | ATmega16L | DD1 |
| 1 | MAX3232 | DD2 |
| 1 | 7.3728 MHz | Q1 |
Программирование (обновление программного обеспечения):
Все ! AVR miniICE готов к работе !
Пример реализации: на макетке
AVRminiICE собран и готов к работе
Прилагаемые файлы:
Печатная плата в формате P-CAD 2002
Дополнение:
Можно сразу залить в ATmega16 готовую прошивку (не надо прошивать через бутлодер)
|
Настройка программатора PonyProg в картинках !



| Программатор AVR микроконтроллеров. LPT программатор. | ||||
Принципиальная схема программатора на LPT порт показана на рисунке.
В качестве шинного формирователя используйте микросхему 74AC244
или 74HC244 (К1564АП5), 74LS244 (К555АП5) либо 74ALS244 (К1533АП5).
Светодиод VD1 индицирует режим записи микроконтроллера, светодиод VD2 - чтения, светодиод VD3 - наличие питания схемы. Напряжение, необходимое для питания схема берёт с разъёма ISP, т.е. от программируемого устройства. Эта схема является переработанной схемой программатора STK200/300 (добавлены светодиоды для удобства работы), поэтому она совместима со всеми программами программаторов на PC, работающих со схемой STK200/300. Для работы с этим программатором используйте программу CVAVR
|
|
АпНоуты - примеры применения микроконтроллеров МК - Схемы, исходники,
компоненты.
|
8051 - Application Notes AN MCS-51
Примеры для микроконтроллеров MCS-51 8051
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ARM AN AT91SAM 32-bit ARM - Application Notes
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||