Система реального времени (RTC)

RTC реализована во всех микроконтроллерах Megа. Таймер/счетчик RTC имеет отдельный предделитель, который может быть программным способом подключен или к источнику основной тактовой частоты, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели зарезервированы два вывода микросхемы. Внутренний осциллятор оптимизирован для работы с внешним "часовым" кварцевым резонатором 32,768 кГц.

AVR функционируют при напряжениях питания от 1,8 до 6,0 Вольт. Ток потребления в активном режиме зависит от величины напряжения питания и частоты, на которой работает микроконтроллер, и составляет менее 1 мА для 500 кГц,5 ... 6 мА для 5 МГц.

1.8.2. Сброс. Источники сброса

МК ATmega8515 располагает тремя источниками сигнала сброса:

Сброс по включению питания (Power-On Reset). MCU сбрасывается при подключении питания к выводам VCC и GND.

Внешний сброс (External Reset). MCU сбрасывается если низкий уровень присутствует на входе более двух циклов XTAL.

Сброс по сторожевому таймеру (Watchdog Reset). MCU сбрасывается если истекает период сторожевого таймера и сторожевой таймер разрешен.

В течение сброса все регистры I/O, за исключением регистра статуса MCU, устанавливаются в их начальные состояния и программа начинает работу с адреса $0000. По этому адресу должна находиться команда JMP - команда абсолютного перехода к подпрограмме обработки сброса. Если программа никогда не разрешает прерывания, то векторы прерываний не используются и по этим адресам могут располагаться коды программы.

 

Сброс по включению питания

Схема сброса по включению питания (Power-On Reset - POR) обеспечивает запуск микроконтроллера только по достижении напряжением Vcc безопасного уровня. Встроенный таймер, тактируемый встроенным генератором сторожевого таймера, удерживает запуск MCU на некоторое время после достижения граничного напряжения включения питания Vpot , не зависящее от скорости нарастания напряжения Vcc (см. Рис. 17).

Рис. 17. Начальный запуск MCU. Вывод RESET подключен к Vcc.

Внешнее управление сбросом

Внешний сброс формируется подачей низкого уровня на вывод RESET на время не меньше двух тактовых циклов кварцевого генератора. При достижении напряжением на выводе RESET уровня VRST запускается таймер, задерживающий запуск MCU на время t TOUT.

Рис. 18. Внешний сброс во время работы микроконтроллера

 

Сброс по сторожевому таймеру

По окончании времени, определяемого сторожевым таймером, таймер формирует короткий, длительностью в один цикл XTAL, импульс сброса. По падающему фронту этого импульса таймер задержки начинает отсчет tTOUT.

Рис. 19. Сброс по сторожевому таймеру во время работы микроконтроллера

1.8.3. Режимы энергосбережения (Sleep Modes)

AVR могут быть переведены программным путем в один из трех режимов пониженного энергопотребления.

Для перевода в любой из трех режимов энергосбережения бит SE в регистре MCUCR (в таблице 1 адрес $35($55)) должен быть установлен в состояние1. Биты SM1 регистра MCUCR и SM2 регистра MCUCSR (в таблице 1 адрес $34($54)) определяют какой из режимов Idle, Power Down или Standby будет запущен командой SLEEP.

При возникновении разрешенного прерывания во время нахождения MCU в режиме энергосбережения, MCU активируется, выполняет подпрограмму обработки прерывания и продолжает работу до следующей команды SLEEP. Если во время режима энергосбережения происходит сброс, MCU активируется и начинает работу по вектору сброса. Содержимое регистрового файла, SRAM и памяти I/O в процессе активации не изменяется. В Таблице 4 представлен выбор режима энергосбережения.

Отметим, что если для возврата из режима энергосбережения Power Down или Standby, используется запуск прерывания по уровню, то низкий уровень должен удерживаться несколько дольше, чем время задержки сброса tTOUT, иначе микроконтроллер не активируется.

 

Таблица 4. Выбор режима Sleep

SM2 SM1 Sleep Mode
Режим Idle
Режим Power Down
Зарезервировано
Режим Standby

Режим холостого хода (IDLE). Если биты SM2/SM1 находятся в состоянии 00 команда SLEEP переводит MCU в режим Idle, останавливая CPU но оставляя активными таймеры/счетчики, внутренний генератор синхросигналов, сторожевой таймер и систему прерываний. Ток потребления не превышает 2,5 мА на частоте 12 МГц. Это обеспечивает активацию MCU внешними прерываниями и такими внутренними прерываниями, как переполнение таймера и завершение приема USART. При активации MCU из Idle режима CPU начинает выполнять программу незамедлительно.

Режим микропотребления (POWER DOWN). При установке битов SM2/SM1 в состояние 01 команда SLEEP переводит MCU в режим Power Down. Сохраняется содержимое регистрового файла, но останавливается внутренний генератор синхросигналов, и, следовательно, останавливаются все функции, пока не поступит сигнал внешнего прерывания или аппаратного сброса. Пользователь может разрешить работу сторожевого таймера. Если сторожевой таймер разрешен, то активация MCU произойдет по завершении установленного в сторожевом таймере периода времени. Если внешний источник тактового сигнала подключен к выводу XTAL1, то активация MCU из режима Power Down может происходить без ATMEL задержки, обычно необходимой для стабилизации XTAL генератора. При включенном сторожевом таймере ток потребления в этом режиме составляет около 80 мкА, а при выключенном – менее 1 мкА. (Все приведенные значения справедливы для напряжения питания 5 В).

 

Режим ожидания (Standby). При установке битов SM2/SM1 в состояние 11 команда SLEEP переводит MCU в режим Standby. Этот режим доступен только при использовании генератора с внешним резонатором в качестве источника тактового сигнала. Данный режим полностью идентичен режиму Power Down, за исключением того, что тактовый генератор продолжает функционировать, поэтому переход в рабочий режим проходит быстрее – 6 машинных циклов.