Сторожевой таймер в микроконтроллерах PIC

Описание watchdog - таймера в микроконтроллерах PIC. Принцип работы. Сторожевой таймер представляет собой комбинацию встроенного RC‑генератора и счетчика, при переполнении которого формируется сброс процессора. Встроенный генератор не требует внешних цепей и работает даже когда тактовый генератор процессора остановлен в режиме Sleep. Между генератором и счетчиком может быть включен предделитель, параметры которого задаются битами регистра OPTION_REG.

Время выдержки сторожевого таймера зависит от температуры, напряжения питания и коэффициента деления предделителя. С подключенным предделителем и максимальным коэффициентом делении 1:128 выдержка может достигнуть 2,5 сек. Номинальная выдержка без предделителя составляет около 18 мc.

Когда срабатывает сторожевой таймер, он не переводит вывод МCLR в низкий уровень. Сброс осуществляется только по внутренним цепям микроконтроллера.

Главным назначением сторожевого таймера является борьба с аппаратными сбоями устройства. В устройствах, подверженных большому уровню импульсных помех и высокочастотных наводок, наиболее часто страдает содержимое регистра OPTION_REG. Кроме этого, возможны непредсказуемые сбои в работе остальных модулей микроконтроллера, и перифериинои части устройства. В результате может возникнуть зависание программы. Если сторожевой таймер включен, то нормально работающая программа должна периодически обнулять счетчик сторожевого таймера, не допуская сброса процессора. Когда происходит сбой, сторожевой таймер перестает программно обнуляться, после его переполнения происходит сброс процессора и повторная инициализация устройства. Для достижения максимальной защищенности от сбоев рекомендуется выполнятьследующие условия:

  • выбирать возможно меньший интервал сторожевого таймера и сбрасывать его в разных местах программы;
  • аппаратная часть устройства должна полностью инициализироваться при любом сбросе процессора, а не только при включении питания или нажатии кнопки RESET .

Команды CLRWDT и SЕЕЕР обнуляют счетчик сторожевого таймера и счетчик предделителя, если он подключен к сторожевому таймеру.

Таким образом предотвращается сброс процессора и начинается формирование нового временного интервала.

Сторожевой таймер также может вывести процессор из режима SLEEP. При этом произойдет не сброс, а продолжение нормального исполнения программы.

Работа сторожевого таймера может быть разрешена или запрещена только при помощи программатора, установкой или сбросом бита конфигурации WDTE.

Загрузка...