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.