Поиск по сайту: |
|
По базе: |
|
Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x1xx |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сторожевой таймерСторожевой таймер – это 16-разряный таймер, который можно использовать как в качестве сторожевого, так и в качестве «интервального» таймера. В этом разделе описывается модуль сторожевого таймера. Сторожевой таймер реализован во всех устройствах MSP430x1xx. 10.1 Введение в сторожевой таймер Первичная функция модуля сторожевого таймера (WDT) – выполнять рестарт управляемой системы при возникновении проблемы с программным обеспечением. Если установленный временной интервал истек, генерируется системный сброс. Если сторожевая функция в приложении не нужна, модуль может быть сконфигурирован как интервальный таймер для генерации прерываний через установленные интервалы времени. Сторожевой таймер обладает следующими возможностями:
Блок схема модуля WDT показана на рис.9-1.
10.2 Функционирование сторожевого таймера Модуль WDT можно сконфигурировать с помощью регистра WDTCTL как сторожевой либо интервальный таймер. Регистр WDTCTL также содержит управляющие биты для конфигурирования вывода nonRST/NMI. WDTCTL – это 16-разрядный, защищенный паролем регистр чтения/записи. Любое чтение или попытка записи должны использовать команды-слова, а попытка записи должна содержать пароль записи 05Ah в старшем байте. Любая запись в WDTCTL любого значения, отличного от 05Ah в старшем байте приведет к нарушению ключа безопасности и запуску системного сброса PUC независимо от режима таймера. При любом чтении WDTCTL в старшем байте читается 069h. 10.2.1 Счетчик сторожевого таймера Счетчик сторожевого таймера (WDTCNT) – это 16-разрядный суммирующий счетчик, не имеющий прямого доступа из программы. Управление WDTCNT и выбор временных интервалов производится через регистр управления сторожевым таймером WDTCTL. WDTCNT может тактироваться от ACLK или SMCLK. Источник тактирования выбирается с помощью битаWDTSSEL. 10.2.2 Сторожевой режим После состояния PUC, модуль WDT конфигурируется в сторожевом режиме с начальным интервалом сброса ~32 мС с использованием DCOCLK. Пользователь должен настроить, остановить или очистить WDT до истечения начального интервала сброса, в противном случае будет сгенерирован новый сигнал PUC. Когда WDT сконфигурирован в сторожевом режиме, запись в WDTCTL неправильного пароля или истечение выбранного интервала времени приведет к запуску PUC. PUC сбросит WDT к исходному состоянию и сконфигурирует вывод nonRST/NMI на режим сброса. 10.2.3 Режим интервального таймера Установка бита WDTTMSEL в «1» приводит к выбору режима интервального таймера. Этот режим можно использовать для получения периодических прерываний. В режиме интервального таймера флаг WDTIFG устанавливается по истечении выбранного интервала времени. PUC не генерируется в режиме интервального таймера по истечении установленного временного интервала, а WDTIFG разрешает биту WDTIE оставаться неизменным. Когда биты WDTIE и GIE установлены, флаг WDTIFG запрашивает прерывание. Флаг прерывания WDTIFG автоматически сбрасывается, когда обслуживается его запрос на прерывание, либо же он может быть сброшен программно. Адреса векторов прерывания различаются для интервального и сторожевого режимов таймера.
10.2.4 Прерывания сторожевого таймера WDT использует два бита в SFR для управления прерыванием.
Если WDT используется в сторожевом режиме, флаг WDTIFG является источником вектора прерывания по сбросу. WDTIFG может быть использован процедурой обработки прерывания по сбросу для определения, был ли сторожевой таймер причиной сброса устройства. Если флаг установлен, состояние сброса было инициировано сторожевым таймером по истечении времени, либо произошло нарушение ключа безопасности. Если WDTIFG очищен, сброс был вызван другим источником. При использовании WDT в режиме интервального таймера, флаг WDTIFG устанавливается после выбранного временного интервала и запрашивает прерывание интервального таймера WDT, если установлены биты WDTIE и GIE. Вектор прерывания интервального таймера отличается от вектора сброса, используемого в сторожевом режиме. В режиме интервального таймера флаг WDTIFG сбрасывается автоматически при обработке прерывания, либо же он может быть сброшен программно. 10.2.5 Работа в режимах пониженного энергопотребления Устройства MSP430 имеют несколько режимов пониженного энергопотребления. Различные сигналы тактирования доступны в различных режимах пониженного энергопотребления. Потребности пользовательского приложения и тип используемой системы тактирования определяют, как WDT должен быть сконфигурирован. К примеру, WDT не должен конфигурироваться в сторожевом режиме с SMCLK в качестве источника тактирования, если пользователь хочет использовать 3-ий режим пониженного потребления, поскольку SMCLK не активен в режиме LPM3 и WDT не будет функционировать. Если сторожевой таймер не нужен, с помощью бита WDTHOLD можно остановить WDTCNT, чтобы уменьшить энергопотребление. 10.2.6 Примеры программного обеспечения Любая операция записи в WDTCTL должна быть операцией-словом со значением 05Ah (WDTPW) в старшем байте: ; Периодическая отчистка активного сторожевого таймера MOV #WDTPW+WDTCNTCL,&WDTCTL ; ; Изменение интервала сторожевого таймера MOV #WDTPW+WDTCNTL+SSEL,&WDTCTL ; ; Останов сторожевого таймера MOV #WDTPW+WDTHOLD,&WDTCTL ; ; Переключение WDT в интервальный режим с интервалом clock/8192 MOV #WDTPW+WDTCNTCL+WDTTMSEL+WDTIS0,&WDTCTL 10.3 Регистры сторожевого таймера Регистры модуля сторожевого таймера приведены в таблице 10-1. Таблица 10-1. Регистры сторожевого таймера.
1)WDTIFG сбрасывается с POR WDTCTL, регистр сторожевого таймера
IE1, регистр 1 разрешения прерываний
IFG1, регистр 1 флагов прерываний
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|