WatchDog - сторожевые таймеры процессора STM32F103C8T6


В состав МК STM32 входят два сторожевых таймера (watchdog ):

  - независимый сторожевой таймер (Independent watchdog - IWDG)

  - оконный сторожевой таймер (Window watchdog - WWDG)

Они служат для обнаружения и устранения неполадок, вызванных сбоем программного обеспечения, запуская или сброс системы, или прерывание (только для WWDG).

Независимый сторожевой таймер (IWDG) тактируется от встроенного низкоскоростного генератора (LSI) и остается активным, даже если произошёл сбой системной тактовой частоты (SYSCLK). Оконный сторожевой таймер (WWDG) тактируется от шины APB1.

IWDG работает независимо от любого процесса, запущенного на МК, но с низкими требованиями по точности синхронизации. WWDG лучше всего работает с процессами, требующих реакции в пределах точного временного интервала.

Независимый сторожевой таймер

Независимый сторожевой таймер (IWDG) представляет собой 12-битный вычитающий счетчик. При переходе через нулевое значение генерируется сигнал сброса микроконтроллера. IWDG продолжает работать в режимах Stop и Standby.

Счетчик тактируется от LSI-генератора через 8-битный делитель.

Независимый сторожевой таймер (IWDG) запускается записью значения 0xCCCC в регистр ключей (Key register). Первый раз счет вниз стартует от значения 0xFFF (значение после сброса). Каждый раз при записи значения 0xAAAA в регистр ключей (Key register) в счетчик загружается значение регистра IWDG_RLR и счет вниз возобновляется с этого значения. По окончании счета, когда значение счетчика обнуляется, генерируется сигнал сброса - IWDG reset.