Сторожевой таймер (WDT)
Сторожевой таймер тактируется отдельным встроенным генератором.Установкой коэффициента предварительного деления интервал сброса сторожевого таймера может быть настроен, как показано в табл. 3.10. Команда WDR (Watchdog Reset) сбрасывает сторожевой таймер. Можно установить восемь периодов длительности тактового сигнала. Если период сброса завершается (в течение этого периода не поступил сигнал сброса сторожевого таймера), то микроконтроллер AT90S4434/8535 сбрасывается и его работа продолжается по вектору сброса. Чтобы предохранить непреднамеренное выключение сторожевого таймера, отключение сторожевого таймера должно сопровождаться специальной последовательностью выключения.
13.3.Регистр управления сторожевым таймером – WDTCR
На рис. 3.10 изображен регистр управления сторожевым таймером.
$21(41)
биты 7 6 5 4 3 2 1 0
- | - | - | WDTOE | WDE | WDP2 | WDP1 | WDP0 |
Доступ Чт Чт Чт Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп
Н. С. 0 0 0 0 0 0 0 0
Рис. 3.10. Регистр управления сторожевым таймером
Биты 7...5 – зарезервированные биты в 4434/8535 всегда читаются как 0.
Бит 4 – WDTOE: – разрешение отключения сторожевого таймера. Данный бит должен быть установлен в состояние 1 при очистке бита WDE. В ином случае сторожевой таймер не будет запрещен. Установленный бит аппаратно очищается после четырех тактовых циклов.
Бит 3 – WDE: – разрешение сторожевого таймера.
Если бит WDE установлен в состояние 1 (сторожевой таймер разрешен) и если бит WDE очищен, то функционирование сторожевого таймера запрещено. Бит WDE может быть очищен, если установлен бит WDTOE. Для запрещения разрешенного сторожевого таймера необходимо выполнить следующую процедуру:
1. В одной операции записать логическую 1 в WDTOE и WDE. Логическая 1 должна быть записана в WDE, даже если этот бит был установлен перед началом операции запрета сторожевого таймера.
2. За время последующих четырех тактовых циклов записать логический 0 в WDE. Сторожевой таймер будет запрещен.
Биты 2..0 – WDP2, WDP1, WDP0: – биты установки коэффициента предварительного деления сторожевого таймера.
Состояния битов WDP2, WDP1 и WDP0 определяют коэффициент предварительного деления тактовой частоты разрешенного сторожевого таймера. Коэффициенты и соответствующие им промежутки времени представлены в табл. 3.10.
Таблица 3.10
Коэффициент предварительного деления сторожевого таймера
WDP2 | WDP1 | WDP0 | Количество циклов генератора WDT | Задержка VCC = 3.0V | Задержка VCC = 5.0V |
16K циклов | 47 мс | 15 мс | |||
32K циклов | 94 мс | 30 мс | |||
64K циклов | 0.19 с | 60 мс | |||
128K циклов | 0.38 с | 0.12 с | |||
256K циклов | 0.75 с | 0.24 с | |||
512K циклов | 1.5 с | 0.49 с | |||
1024K циклов | 3.0 с | 0.97 с | |||
2048K циклов | 6.0 с | 1.9 с |
Примечание. Частота тактового генератора сторожевого таймера зависит от напряжения питания. Команда WDR (Watchdog Reset) должна всегда быть выполнена перед разрешением сторожевого таймера. Это гарантирует, что задержка будет соответствовать настройкам предварительного делителя частоты сторожевого таймера. Если не произвести сброс перед разрешением сторожевого таймера, то счет может начаться не с нуля. Чтобы избежать непреднамеренного сброса, сторожевой таймер должен быть запрещен или сброшен перед изменением настроек предварительного делителя сторожевого таймера.
Дата добавления: 2016-10-17; просмотров: 459;