Смекни!
smekni.com

Разработка системы теплоснабжения (стр. 10 из 11)

EEPROM блок электрически стираемой памяти AVR предназначен для хранения энергонезависимых данных, которые могут изменяться непосредственно на объекте. Это калибровочные коэффициенты, различные установки, конфигурационные параметры системы. EEPROM-память имеет меньшую емкость (от 64 байт до 4К байт), но имеет возможность побайтной перезаписи ячеек, которая может происходить как под управлением внешнего процессора, так и под управлением собственно AVR-микроконтроллера во время его работы по программе.

В энергонезависимой памяти AVR имеется несколько специализированных битов [7].

LOCK-биты (LB1, LB2) предназначены для защиты программной информации, содержащейся во FLASH-памяти. Возможные режимы защиты перечислены в таблице 4.1. Запрограммировав биты защиты, стереть их можно лишь во время очистки FLASH -памяти, которая уничтожает и всю программу.

Таблица 4.1

Режимы защиты программы

Состояние Lock-бит
Режим LB1 LB2 Тип защиты
1 1 1 Защита отсутствует
2 0 1 Запрет программирования Flash
3 0 0 Запрет как программирования, так и чтения Flash.

FUSE-биты позволяют задавать некоторые конфигурационные особенности микроконтроллера (см. таблицу 4.2).

Микроконтроллеры AT90S1200 имеют FUSE-биты SPIEN и RCEN. Все остальные типы classicAVR конфигурируются при помощи FUSE-битов SPIEN и FSTRT. MegaAVR имеют четыре FUSE-бита: SPIEN, SUT0, SUT1 и EESAVE.

Три энергонезависимых Signature-байта служат для идентификации типа кристалла, программируются на фабрике и доступны только для чтения.

Таблица 4.2

Назначение FUSE-битов

Fuse-бит(значение поумолчанию) Значение Режим работы AVR
0 AVR тактируется внутренним RC-генератором. (работа AVR без каких-либо внешних элементов)
RCEN (1) 1 Тактирование при помощи внешнего кварцевого резонатора или генератора.
0 Разрешение последовательного программирования через SPI интерфейс
SPIEN (0) 1 Запрещение последовательного программирования через SPI интерфейс
0 Задержка старта AVR после сброса ~ 0.25мс
FSTRT (1) 1 Задержка старта AVR после сброса ~ 16 мс
00 Задержка старта AVR после сброса ~ 5 мс
01 Задержка старта AVR после сброса ~ 0.5 мс
SUT 0/1 (11) 10 Задержка старта AVR после сброса ~ 4.0мс
11 Задержка старта AVR после сброса ~ 16 мс
0 EEPROM не стирается во время цикла очистки энергонезависимой памяти
EESAVE (1) 1 EEPROM стирается во время цикла очистки энергонезависимой памяти

Разнообразные способы программирования AVR-микроконтроллеров обеспечивают простой и удобный доступ к внутренней энергонезависимой памяти во всех возможных ситуациях программирования кристалла.

Для энергонезависимых FLASH и EEPROM блоков AVR предусмотрены параллельный и последовательный способы программирования, которые выполняются под управлением внешнего процессора, а для EEPROM-памяти также возможен способ программной перезаписи под управлением AVR. LOCK-биты могут программироваться как параллельно, так и последовательно. FUSE-биты у младших моделей AVR могут программироваться только последовательно, а у старших - и параллельно, и последовательно.

Параллельное программирование энергонезависимой памяти использует большое число выводов микроконтроллера и выполняется на специальных программаторах. Такое программирование удобно, когда при массовом производстве необходимо "прошивать" большое количество кристаллов.

Последовательное программирование может выполняться прямо в микропроцессорной системе (In System Programming) через последовательный SPI-интерфейс, который использует всего четыре вывода AVR-микроконтроллера. Эта новая возможность является очень важной, так как позволяет обновлять программное обеспечение в уже функционирующей микропроцессорной системе.

4.3. Рекомендации по отладке

Подготовка программы для AVR-микроконтроллера выполняется на персональном компьютере и состоит из следующих этапов:

– создание текста программы;

– трансляция текста в машинные коды и исправление синтаксических ошибок;

– отладка программы, то есть устранение логических ошибок;

– окончательное программирование AVR-микроконтроллера.

Каждый из этапов требует использования специальных программных и аппаратных средств. Ниже перечислены наиболее доступные из них на сегодняшний день.

Базовые программные средства фирмы Атмел распространяются бесплатно, в то время как аппаратные средства имеют свою стоимость.

Следует отметить, что кроме бесплатных программных средств фирмы Атмел, позволяющих программировать только на языке ассемблера, фирмами IAR SYSTEMS, CMX CORPORATION, KANDA SYSTEMS Ltd. и другими разработаны средства поддержки программирования на языках высокого уровня С и BASIC, а также операционные системы реального времени. Эти более сложные и дорогостоящие продукты мы не обсуждаем, но информацию о них и демонстрационные версии можно получить в фирме ЭФО или в Корпорации "Точка Опоры".

Рассмотрим более подробно этапы подготовки программы для AVR Если Вы работаете в среде MS-DOS, то для выполнения первого и второго этапа Вам придется воспользоваться различными средствами. Для создания текста программы подойдет любой текстовый редактор DOS, который формирует на выходе ASCII-файлы, например, встроенный редактор Norton Commander, редактор Multi Edit и т.п. Для трансляции текста программы в коды фирмой Атмел предлагается DOS-версия программы-транслятора AVRASM.

Для работы в среде Windows 3.11/95/NT фирмой Атмел предлагается программа WAVRASM, которая позволяет выполнить создание текста программы и его трансляцию внутри одной оболочки и обеспечивает дополнительный сервис для быстрого поиска синтаксических ошибок в тексте программы.

Результатом Вашей работы на первом этапе является файл <имя_файла>.asm, который содержит текст программы (расширение имени файла обычно указывает на язык программирования) и является входным для программ-трансляторов, которые, в свою очередь, создают четыре новых файла: файл листинга (<имя_файла>.lst), объектный файл (<имя_файла>.obj), файл-прошивка FLASH-памяти (<имя_файла>.hex), файл-прошивка EEPROM-памяти (<имя_файла>.eep).

Файл листинга - это отчет транслятора о своей работе. В нем приводится транслируемая программа в виде исходного текста, каждой строке которого сопоставлены соответствующие двоичные коды. Кроме того, листинг содержит сообщения о выявленных ошибках.

Объектный файл используется в дальнейшем как входной для программы-отладчика AVRSTUDIO и имеет специальный формат. Файлы прошивки FLASH и EEPROM блоков памяти предназначены для работы с любыми последовательными и параллельными программаторами AVR и имеют стандартные форматы.

Следующим этапом подготовки программы является ее отладка, которая может выполняться двумя основными способами: на персональном компьютере при помощи программы-симулятора или в реальной микропроцессорной системе. Два эти способа взаимно дополняют друг друга.

Программа-симулятор AVRSTUDIO отображает на экране компьютера Вашу программу и состояние внутренних регистров AVR. Таким образом, становится возможным наблюдать изменения переменных, которые происходят внутри микроконтроллера при выполнении тех или иных команд программы. Отметим, что в реальной системе при помощи осциллографа невозможно просмотреть состояние внутренних регистров. Использование симуляторов эффективно при отладке подпрограмм, которые выполняют численную обработку внутренних данных.

В то же время, отладку подпрограмм, связанных с какими-либо внешними элементами, удобно выполнять непосредственно в рабочей системе. Например, если микроконтроллер генерирует ШИМ-сигналы, управляющие яркостью свечения светодиодов, то оценить игру красок Вы сможете только глядя на реальный макет.

Для отладки программы в рабочей системе, кроме программных средств, требуются также и аппаратные. Ниже приведены представлены различные варианты построения отладочной системы, отличающиеся своей стоимостью и возможностями.

Наиболее быстрый, не требующий пайки способ построения микропроцессорной системы на основе AVR - это приобретение комплекта AVR STARTER KIT фирмы Атмел, который содержит плату DEVELOPMENT BOARD, книгу "Development tool user's guide", дискеты с программным обеспечением, CD-ROM с полной документацией на все типы AVR и многочисленными примерами прикладных программ для AVR (содержимое дискет и CD-ROM диска можно также найти на данной web-странице). Плата DEVELOPMENT BOARD содержит панельки для подключения базовых типов AVR-микроконтроллеров в DIP-корпусах; источник питания; последовательный программатор, узел интерфейса RS-232 для связи с компьютером по асинхронному последовательному каналу; наборы из 8 светодиодов и из 8 кнопочных переключателей, которые можно подключать к выводам портов микроконтроллера; разъемы, через которые при помощи гибких кабелей можно наращивать микропроцессорную систему. Универсальность DEVELOPMENT BOARD удобна для обучения и для макетирования новых разработок.

Вместе с тем, для многих конкретных проектов может не подойти конструктивная реализация DEVELOPMENT BOARD или избыточным будет использование на этой плате источника питания, последовательного программатора и панелей под различные типы корпусов. В таком случае выполняют специализированную разработку, удовлетворяющую требованиям конкретной задачи.

Одним из важнейших достоинств AVR-микроконтроллеров является то, что все его аппаратные ресурсы "спрятаны" внутри, и поэтому схема включения AVR очень проста. Такая простота и миниатюрность позволяет во многих конкретных приложениях не выносить цифровую часть на отдельную плату, а помещать AVR непосредственно внутри аналогового блока. Для обучения технологии программирования AVR Вы можете собрать макет схемы за 15 минут.