В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве

текст еще



Раздел 14:

Модуль часов реального времени

Часы реального времени (real-time clock - RTC) - двоичный таймер, который хранит информацию о текущем времени дня и формирует субсекундные прерывания системы. RTC состоит из каскадно включенных 32- разрядного и 8- битного счетчиков импульсов, которые содержат количество секунд (общей суммой около 136 лет) и субсекунд (с разрешением 1/256 секунды) соответственно. 8- битный субсекундный счетчик увеличивается с частотой 256 Гц, сформированной из 32.768 кГц синхроимпульсов. Отдельный субсекундный счетчик аварийной сигнализации с перезагрузкой может использоваться для формирования запросов на прерывания с периодом до 1/256 секунды. 32-разрядный счетчик секунд увеличивается при каждом переполнении 8- битного субсекундного счетчика. 32-разрядный счетчик может использоваться в качестве программируемого однодневного аварийного таймера событий. Для первоначальной записи данных в регистр RTC должен быть остановлен, но, будучи один раз запущенными, RTC работают все время, пока они активны и не требуется их остановки для чтения регистра счетчика. Также RTC поддерживают цифровую настройку хода, что позволяет использовать их в тех приложениях, в которых требуется высокая точность.

Прикладная программа осуществляет к RTC через восемь периферийных регистров. 16-разрядный регистр управления RTC (Control register - RCNT) обеспечивает управление и содержит информацию о состоянии RTC, включая управления доступом чтения - записи RTC, выбор/контроль синхроимпульсов, активизацию RTC, активизацию выхода прямоугольного сигнала, активизацию аварийной сигнализации (будильника) и их флаги прерывания. Информация об отсчитанных секундах содержится в 16- битных регистрах RTSH и RTSL. Аналогично, количество отсчитанных субсекундных импульсов содержится в 8- битном регистре RTSS, который может использоваться для установки и инициализации субсекундного счетчика. Ежедневный будильник программируется через пару регистров RASH:RASL, а интервал срабатывания задается данными в регистре RSSA. Данные о цифровой настройке хода хранятся в регистре RTRM.

На рисунке 47 приведена функциональная схема полного модуля часов реального времени. Некоторые микроконтроллеры семейства MAXQ могут быть оснащены "урезанным" модулем RTC. Подробнее о составе имеющегося в микроконтроллере модуля часов реального времени можно узнать в техническом описании этого микроконтроллера.

Функциональная схема модуля RTC
Рисунок 47. Функциональная схема модуля RTC

Работа "будильника" RTC

RTC имеет функции ежедневного и субсекундного источников аварийной сигнализации - так называемых "будильников". Если ежедневный будильник активен, то он срабатывает, когда совпадают младшие 20 бит регистра RTC (RTSH:RTSL) и регистров (RASH:RASL). Работа субсекундного интервального будильника обеспечивается таймером с перезагрузкой, который управляется от некорректируемого источника 256 Гц синхроимпульсов.

Ежедневный будильник

Регистры ежедневного будильника RTC RASH и RASL обеспечивают программируемую 20- битную функцию ежедневного будильника. Формирование аварийного сигнала происходит при совпадении младших 20 бит этих регистров и 20 младших битов регистров RTC. Самые младшие 16 бит будильника содержатся в регистре RASL, а старшие 4 бита будильника - в младших четырех битах регистра RASH. Будильник может быть запрограммирован на срабатывание с интервалом от 1 секунды до 12 суток с разрешением в 1 секунду. Перед изменением содержимого регистров ежедневного будильника он должен быть отключен. ежедневный будильник устанавливает флаг ALDF в 1, когда происходит переполнение RTSS и совпадение младших 20 бит пары регистров RTSH и RTSL с младшими 20 битами пары регистров RASH и RASL. Если биты ADE и глобального разрешения прерывания установлены, то установка бита ALDF формирует запрос на прерывание.

Субсекундный будильник

Регистр субсекундного будильника RTC (RSSA) используется для хранения субсекундного интервала срабатывания. Регистр RSSA не зависит от счетчика RTC и имеет настраиваемую разрядность до 16 бит. По умолчанию регистр RSSA имеет 8- битную разрядность, что позволяет ему формировать интервалы от 1 секунды до приблизительно 3.9 миллисекунд (1/256 Гц). Перед изменением значения интервала срабатывания субсекундный интервальный будильник должен быть остановлен (ASE = 0 и BUSY = 0).

При установки интервального субсекундного будильника возникает интервал неопределенности первого срабатывания, не превышающий одного периода субсекундных синхроимпульсов (1/256 Гц = ~3.9 мс). Но только первый интервал будильника имеет этот интервал неопределенности. Обратите внимание, что активизированный субсекундный будильник ( ASE = 1) с нулевым значением интервала формирует максимально возможный интервал сигнализации (1 секунда в случае, если регистр RSSA имеет 8- битную разрядность).

Субсекундный интервальный счетчик тактируется синхроимпульсами с частотой 32 кГц/128, которые взяты до узла цифровой подстройки хода. Это сделано для того, чтобы избежать изменения интервала при срабатывании модуля цифровой настройки хода.

"Пробуждение" системы от ежедневного и субсекундного будильников

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

Функция цифровой настройки хода RTC

Точность хода некорректируемых часов реального времени зависит от кварцевого резонатора (и температурного дрейфа его характеристик). Чтобы обеспечить требования некоторых систем, часы реального времени содержать модуль цифровой настройки хода. Модуль цифровой настройки хода может добавлять или исключать 256 Гц синхроимпульсы. Пять битов настройки (TRM4:0) используются для определения величины цифровой настройки хода, а знаковый бит (TSGN) определяет, должны ли импульсы быть добавлены (TSGN = 0) или удалены (TSGN = 1) из синхросигнала. Каждые 16 секунд пять битов настройки добавляются к предыдущему значению. Всякий раз, когда формируется импульс добавления фазы происходит подмена 256 Гц импульсов на 512 Гц импульсы, добавляя 128 дополнительных внешних 32 кГц импульсов. Если выбрана отрицательная подстройка, то происходит маскирование 256 Гц импульса, что позволяет вычесть 128 32 кГц импульсов. Путем установки битов FT и SQE можно вывести на внешний вывод 1 Гц или 512 Гц прямоугольные импульсы. На рисунке 49 приведены эпюры сигналов, поясняющие принцип работы модуля цифровой настройки хода.

Минимальная настройка (00001h) приведет к формированию импульса коррекции каждые 32 x 16 секунд = 512 секунд, что приведет к добавлению/исключению одного импульса (=128 циклов 32.768 кГц) каждые 512 секунд. Это осуществит коррекцию величиной 128 / (32 768 Гц x 512 сек.) = ±7.63 ppm. Максимальное значение настройки обеспечивается установкой всех битов в 1 (TRM4:0 = 11111b). Это приведет к добавлению/исключению 31 импульса каждый 512- секундный интервал, что эквивалентно коррекции (31 x 128) / (32 768 Гц x 512 сек.) = ±236.5 ppm. Такой диапазон настройки хода позволяет скорректировать температурный уход характеристик большинства 32 кГц кварцевых резонаторов при работе в индустриальном температурном диапазоне.

Модуль цифровой настройки хода RTC
Рисунок 48. Модуль цифровой настройки хода RTC

Эпюры сигналов, поясняющие работу модуля цифровой настройки хода RTC
Рисунок 49. Эпюры сигналов, поясняющие работу модуля цифровой настройки хода RTC

Доступ к регистрам RTC

В системе реализованы взаимодействие и сигнальные протоколы с регистрами и битами регистров RTC.

Сигнализация записи битом BUSY

Бит BUSY управляющего регистра RTC (RCNT) доступен только для чтения. Аппаратная установка бита BUSY происходит при одном из следующих условий: 1) системный сброс; 2) изменение прикладной программой состояния одного из битов RTC (RTCE, ASE, ADE); 3) прикладная программа осуществляет запись одного из регистров RTC (RTSS, RTSL, RTSH). Когда бит BUSY установлен аппаратно, то запись служебных битов и регистров RTC блокируется на аппаратном уровне. Бит BUSY остается активным до тех пор, пока осуществляется синхронизация соответствующего бита или регистра. Это имеет место до следующего нарастающего фронта 32 кГц синхроимпульса, что означает, что бит BUSY не установлен в течение интервала, превышающего период одного 32 кГц синхроимпульса, т.е. приблизительно 30.5 мкс. Как только бит BUSY сброшен в 0, запись может быть выполнена при условии разрешении ее индивидуальным управляющим битом или битом аварийной сигнализации будильника.

Сигнализация считывания битом READY

Бит READY (RDY) управляющего регистра RTC (RCNT) обеспечивает механизм определения устойчивости и доступности надежного считывания данных RTC. Бит RDY сбрасывается аппаратно приблизительно за один 32 кГц синхроимпульс до прохождения его через цепь счетчика RTC (RTSS, RTSL, RTSH) и устанавливается после следующего синхроимпульса. Период установки/сброса бита RDY определяется аппаратно, поэтому он равен приблизительно 1/256 Гц = 3.9 мс, обеспечивая, таким образом, очень большой интервал, в течение которого регистры счетчика RTC могут быть считаны. Бит RDY может быть сброшен прикладной программой в любое время и остается в таком состоянии до тех пор, пока снова не будет установлен аппаратно. Для формирования прерывания при аппаратной установке бита RDY имеется бит RDYE в регистре RCNT. Это прерывание может использоваться для оповещения о начале нового интервала доступности данных RTC для чтения. Когда бит RDYE установлен в 1 и происходит установка бита RDY, то формируется запрос на прерывание (если имеются глобальное и модульное разрешения прерываний). Когда бит RDYE сброшен в 0, то при установке бита RDY запрос на прерывание формироваться не будет.

Доступ к регистру счетчика RTC

Регистры счетчика RTC (RTSS, RTSL, RTSH) должны считываться только когда бит RDY = 1. Чтение данных из этих регистров при RDY = 0, недопустимо. Перед записью данных в регистры счетчика RTC необходимо сбросить бит разрешения RTC (RTCE) в 0. Очистка бита RTCE разрешается только когда бит разрешения записи (WE) установлен в 1 и при этом запускается сигнализация бита BUSY. Запись в каждый регистр счетчика RTC также должна осуществляться с учетом правил, связанных с сигнализацией бита BUSY.

Доступ к регистрам будильников RTC

Регистры будильников RTC (RSSA, RASL, СЫПЬ) доступны для чтения в любое время. При записи в регистры будильников RTC соответствующие биты активизации будильников (ASE и ADE) должны быть сброшены в 0. Очистка этих битов требует контроля состояния бита BUSY. После сброса в 0 бита активизации будильника регистры (регистр) соответствующего будильника доступен прикладной программе для свободной записи.

Доступ к регистру настройки хода RTC

Эти биты настройки хода RTC (TSGN, TRM4:0) доступны для чтения в любое время. Для записи этих битов требуется установить бит разрешения записи (WE), при этом учитывается сигнализация бита BUSY.



<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники