СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №5/2015
ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 33 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 5 2015 – W6 W5 W4 W3 W2 W1 W0 WDGA T6 T5 T4 T3 T2 T1 T0 Регистр окна времени Цифровой компаратор Счетчик WWDG_CFR Запись WWDG_CR WWDG_CR PCLK1 Предварительный делитель на 4096 и WDGTB [1:0] Сброс & & 1 Выход = 1, если T[6:0]>W[6:0] == Значение счетчика Время Бит Т6 Сброс W[6:0] T[6:0] 0x3F чика с 0x40 на 0x3F, то есть при обнуле- нии шестого разряда таймера, условно обозначаемого как T6. Если программа перегружает счётчик, когда его значе- ние больше, чем значение в регистре окна времени, это также инициирует сброс. Чтобы предотвратить сброс процес- сора, прикладная программа, во время нормальной операции, должна регу- лярно производить запись в регистр WWDG_CR. Эта операция должна про- изводиться только тогда, когда значе- ние счётчика меньше, чем значение в регистре окна времени. Значение, которое можно записать в регистр WWDG_CR, должно быть в пределах 0xFF…0x40. Счётчик таймера WWDG является автономным. Он всегда производит обратный отсчёт. Даже тогда, когда сто- рожевой таймер отключён. При вклю- чении сторожевого таймера необхо- димо установить бит T6 счётчика, что- бы предотвратить немедленный сброс процессора. Биты T[5:0] содержат число, которое представляет собой временну ′ ю задержку до сброса от WWDG. Регистр конфигурации WWDG_CFR содержит верхний предел окна време- ни. Чтобы предотвратить сброс, обрат- ный счётчик должен быть перезагру- жен тогда, когда его значение меньше, чем значение регистра окна времени, но больше 0x3F. На рисунке 3 представлена временна ′ я диаграмма, демонстрирующая окон- ный процесс работы сторожевого тай- мера. Другой способ перезагрузить счётчик состоит в том, чтобы использовать пре- рывание от раннего пробуждения. Это прерывание разрешается установкой бита EWI в регистре WWDG_CFR. Ког- да обратный счётчик достигает значе- ния 0x40, генерируется прерывание от раннего пробуждения, и можно исполь- зовать соответствующий обработчик, чтобы перезагрузить счётчик и предот- вратить сброс от WWDG. Запрос этого прерывания очищает- ся записью нуля в разряд EWIF регистра WWDG_SR. При необходимости можно сгенери- ровать программный сброс процессо- ра путём установки в единичное состо- яние бита WDGA и сбросив бит T6. В таблице 3 приведён диапазон зна- чений периода таймера WWDG для тактовой частоты сигнала PCLK рав- ной 24 МГц, в зависимости от установ- ленных значений регистров таймера. Рис. 3. Временна ′ я диаграмма сторожевого таймера WWDG Рис. 2. Функциональная схема сторожевого таймера WWDG Таблица 3. Диапазон значения периода таймера WWDG Предварительный делитель Значение WDGTB[1:0], биты Минимальный период для T[5:0]=0, мкс Максимальный период для T[5:0]=0x3F, мкс 1 0 170 10920 2 1 341 21850 4 2 682 43690 8 3 1365 87380 Для более точного расчёта периода необходимо использовать следующую формулу: Twwdg = Tpclk1 * 4096 * 2^WDGTB * (T[5:0]+1). Чтобы избежать немедленного сбро- са процессора, при записи данных в регистр WWDG_CR необходимо устанавливать бит T6 в единичное со- стояние. Когда микроконтроллер входит в режим отладки, счётчик WWDG будет продолжать работать или останавлива- ется, в зависимости от конфигураци- онного бита DBG_WWDG_STOP в мо- дуле DBG. Регистры оконного сторожевого таймера Сторожевой таймерWWDG имеет три регистра. Карта этих регистров приве- дена в таблице 4. Регистр управления WWDG_CR со- держит бит WDGA для активации тай- мера и 7-разрядный счётчик T[6:0]. Бит WDGA устанавливается программно, а очищается аппаратно, только путём общего сброса. Когда WDGA равен 1,
RkJQdWJsaXNoZXIy MTQ4NjUy