7.4.1. Оконный сторожевой таймер
Оконный сторожевой таймер является расширенной версией традиционного встраиваемого сторожевого таймера. После активизации, сторожевой таймер начинает счет в обратном направлении и генерирует сброс при изменении состояния счетчика с 0x40 на 0x3F, т.е. когда сбрасывается бит T6.
Кроме того, в конфигурационном регистре оконного сторожевого таймера предусмотрена возможность задания верхней границы счета. Если во время программного обновления содержимого счетчика сторожевого таймера, его фактическое значение окажется больше заданного, тоже генерируется сброс. Следовательно, сторожевой таймер выделяет программе строго ограниченное время на обновление содержимого счетчика, что позволяет быть уверенным не только в факте выполнения кода программы и во временных характеристиках его выполнения.
Оконный сторожевой таймер представляет собой 6-битный вычитающий счетчик, который синхронизируется сигналом PCLK1 через 12-битный предделитель (делит частоту PCLK1 на 4096). У предделителя имеется 2 дополнительных бита, которые может запрограммировать пользователь для дальнейшего деления частоты на 1, 2, 4 или 8. Эти биты находятся в 6 и 7 разрядах регистра управления.
Таким образом, период срабатывания оконного сторожевого таймера определяется по выражению:
Twwdg = Tpclk1 x 4096 x 2^(WDGTB) x (перезагружаемое значение + 1)
Если Pclk1 имеет максимальное значение 36 МГц, минимальный период срабатывания сторожевого таймера составит 910 мкс, а максимальный - 58.25 мс.
По завершении настройки оконного сторожевого таймера, его работу можно разрешить установкой соответствующего бита в регистре управления. После разрешения, остановить работу сторожевого таймера можно только сбросом - программно это сделать невозможно.
|