Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221), страница 5
Текст из файла (страница 5)
Сторожевой таймер (WatchDogTimer) предназначен для предотвращения катастрофических последствий от случайных сбоев программы. Он имеет свой собственныйRC-генератор, работающий на частоте 1 МГц. Как и для основноговнутреннего RC-генератора, значение 1 МГц является приближенным и зависит прежде всего от величины напряжения питания микроконтроллера и от температуры.Идея использования стоpожевого таймеpа предельно проста исостоит в pегуляpном его сбpасывании под упpавлением пpогpаммыили внешнего воздействия до того, как закончится его выдеpжкавpемени и не пpоизойдет сбpос пpоцессоpа.
Если пpогpаммаpаботает ноpмально, то команда сбpоса стоpожевого таймеpа должнаpегуляpно выполняться, пpедохpаняя процессоp от сбpоса. Если жемикpопpоцессоp случайно вышел за пpеделы пpогpаммы (напpимеp,23от сильной помехи по цепи питания) либо зациклился на каком-либоучастке пpогpаммы, команда сбpоса стоpожевого таймеpа скоpее всего не будет выполнена в течение достаточного вpемени и пpоизойдетполный сбpос пpоцессоpа, инициализиpующий все pегистpы ипpиводящий систему в pабочее состояние.Аналоговый компаратор (AC). Аналоговый компаратор(Analog Comparator) сравнивает напряжения на двух выводах (пинах)микроконтроллера. Результатом сравнения будет логическое значение, которое может быть прочитано из программы. Выход аналогового компаратора можно включить на прерывание от аналогового компаратора.
Пользователь может установить срабатывание прерыванияпо нарастающему или спадающему фронту или по переключению.Присутствует у всех современных AVR, кроме Mega8515.Аналого-цифровой преобразователь (A/D CONVERTER).Аналого-цифровой преобразователь (АЦП) служит для получениячислового значения напряжения, поданного на его вход. Этот результат сохраняется в регистре данных АЦП.
Какой из выводов (пинов)микроконтроллера будет являться входом АЦП, определяется числом, занесенным в соответствующий регистр.Универсальныйпоследовательныйприемопередатчик(UART или USART). Универсальный асинхронный или универсальный синхронно/асинхронный приемопередатчик (Universal Synchronous/Asynchronous Receiver and Transmitter – UART или USART) –удобный и простой последовательный интерфейс для организацииинформационного канала обмена микроконтроллера с внешним миром. Способен работать в дуплексном режиме (одновременная передача и прием данных).
Он поддерживает протокол стандарта RS-232,что обеспечивает возможность организации связи с персональнымкомпьютером. (Для стыковки МК и компьютера обязательно понадобится схема сопряжения уровней сигналов. Для этого существуютспециальные микросхемы, например MAX232.)Последовательный периферийный интерфейс SPI.
Последовательный периферийный трехпроводный интерфейс SPI (SerialPeripheral Interface) предназначен для организации обмена даннымимежду двумя устройствами. С его помощью может осуществлятьсяобмен данными между микроконтроллером и различными устройствами, такими, как цифровые потенциометры, ЦАП/АЦП, FLASHПЗУ и др. С помощью этого интерфейса удобно производить обменданными между несколькими микроконтроллерами AVR. Кроме того,24через интерфейс SPI может осуществляться программирование микроконтроллера.Двухпроводной последовательный интерфейс TWI.
Двухпроводной последовательный интерфейс TWI (Two-wire SerialInterface) является полным аналогом базовой версии интерфейса I2C(двухпроводная двунаправленная шина) фирмы Philips. Этот интерфейс позволяет объединить вместе до 128 различных устройств с помощью двунаправленной шины, состоящей из линии тактового сигнала (SCL) и линии данных (SDA).Интерфейс JTAG.
Интерфейс JTAG был разработан группойведущих специалистов по проблемам тестирования электронныхкомпонентов (Joint Test Action Group) и был зарегистрирован в качестве промышленного стандарта IEEE Std 1149.11990. Четырехпроводной интерфейс JTAG используется для тестирования печатныхплат, внутрисхемной отладки, программирования микроконтроллеров. Многие микроконтроллеры семейства Mega имеют совместимыйс IEEE Std 1149.1 интерфейс JTAG или debugWIRE для встроеннойотладки. Кроме того, все микроконтроллеры Mega с флэш-памятьюемкостью 16 Кбайт и более могут программироваться через интерфейс JTAG.Тактовый генератор. Тактовый генератор вырабатывает импульсы для синхронизации работы всех узлов микроконтроллера.Внутренний тактовый генератор AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешнийкварцевый резонатор, внутренняя или внешняя RC-цепочка).
Минимальная допустимая частота ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера и указывается Atmel в его характеристиках, хотя практически любой AVR-микроконтроллер с заявленной рабочей частотой, например, в 10 МГц при комнатной температуре легко может быть «разогнан» до 12 МГц и выше.Система реального времени (RTC).
RTC реализована во всехмикроконтроллерах Mega и в двух кристаллах «classic» AT90(L)S8535.Таймер/счетчик RTC имеет отдельный предделитель, который можетбыть программным способом подключен или к источнику основнойтактовой частоты, или к дополнительному асинхронному источникуопорной частоты (кварцевый резонатор или внешний синхросигнал).Для этой цели зарезервированы два вывода микросхемы. Внутреннийосциллятор оптимизирован для работы с внешним «часовым» кварцевым резонатором 32,768 кГц.25ПитаниеAVR функционируют при напряжениях питания от 1,8 до 6,0 В.Ток потребления в активном режиме зависит от величины напряжения питания и частоты, на которой работает микроконтроллер, и составляет менее 1 мА для 500 кГц, 5...6 мА для 5 МГц и 8...9 мА длячастоты 12 МГц.
AVR могут быть переведены программным путем водин из трех режимов пониженного энергопотребления.Режим холостого хода (IDLE). Прекращает работу только процессор и фиксируется содержимое памяти данных, а внутренний генератор синхросигналов, таймеры, система прерываний и сторожевой таймер продолжают функционировать. Ток потребления не превышает 2,5 мА на частоте 12 МГц.Стоповый режим (POWER DOWN). Сохраняется содержимоерегистрового файла, но останавливается внутренний генератор синхросигналов, и, следовательно, останавливаются все функции, покане поступит сигнал внешнего прерывания или аппаратного сброса.При включенном сторожевом таймере ток потребления в этом режиме составляет около 80 мкА, а при выключенном – менее 1 мкА.
(Всеприведенные значения справедливы для напряжения питания 5 В).Экономичный режим (POWER SAVE). Продолжает работатьтолько генератор таймера, что обеспечивает сохранность временнойбазы. Все остальные функции отключены.В микроконтроллерах существует специальный режим – сброспри снижении напряжения питания (BOD). Схема BOD (BrownOut Detection) отслеживает напряжение источника питания. Еслисхема включена, то при снижении питания ниже некоторого значенияона переводит микроконтроллер в состояние сброса. Когда напряжение питания вновь увеличится до порогового значения, запускаетсятаймер задержки сброса. После формирования задержки внутреннийсигнал сброса снимается и происходит запуск микроконтроллера.Программирование микроконтроллеровПроцесс разработки прикладного программного обеспечения (ПО) устройств на основе однокристальных микроконтроллероввключает следующие этапы (рис.
4):− разработки алгоритма и структуры программы;− написания исходного текста программы;− получения выполняемой программы;− тестирования и отладки программы;− получения загрузочной программы.26Разработка алгоритма иструктуры программыНаписание исходноготекста программыПолучение выполняемойпрограммыТестирование и отладкапрограммыПолучение загрузочнойпрограммыРис.
4. Последовательность разработки ПО для микроконтроллеровНа этапе разработки алгоритма и структуры программы выбирается метод решения задачи и разрабатывается алгоритм его реализации. Алгоритм – это набор правил или описание последовательности операций для решения определенной задачи или достижения некоторой цели. Графическим изображением алгоритма является схемаалгоритма (flowchart), выполняемая в соответствии с ГОСТ 19.701–90«Единая система программной документации.
Схемы алгоритмов,программ, данных и систем. Условные обозначения и правила выполнения».На этапе написания исходного текста программы разработанный алгоритм записывается в виде программы на исходном языке(ассемблере или языке высокого уровня).Языком ассемблера называется язык программирования, в котором каждой команде процессора или совокупности команд процессора соответствует сокращенная символическая запись (мнемоника).Использование символического обозначения команд, а также адресоврегистров и ячеек памяти, переменных, констант и других элементовпрограммы существенно облегчает процесс составления программпо сравнению с программированием на уровне машинных кодов.Символические обозначения элементов обычно отражают их содержательный смысл. Язык ассемблера обеспечивает возможность дос27тупа ко всем ресурсам программируемого микропроцессора (микроконтроллера) и позволяет создавать программы, эффективные как побыстродействию, так и по объему занимаемой памяти.