WDG(Watchdo)看门狗介绍
独立看门狗,独立运行,有自己的专门时钟——内部低速时钟LSI,只要在最晚喂狗时间前喂狗就不会导致自动复位
窗口看门狗,用的是APB1的时钟,不是独立的时钟。喂狗时间比较严格,不能过早,也不能过晚,需要在一个时间区间内喂狗,所以叫做窗口看门狗
IWDG框图
看门狗喂狗的本质是定时器自减到0产生了一个IWDG复位信号,会导致程序自动复位。为了避免复位的发送,需要及时喂狗,就是及时写入重装载数值,接着会继续自减,继续喂狗,如此往复。有个专门写入的寄存器就是键寄存器。
IWDG键寄存器
IWDG超时时间
WWDG框图
- WWDG与IWDG还是有很大的区别的,首先在设计上就比较巧妙的,通过与门以及或门实现超时复位的机制。如果要喂狗WDGA位必须为1否则最后复位总是相与为0。
- 超时喂狗,用到的还是递减计数器,每来一次信号,计数器里的值减1,直到T6位被减为0,此时通过或门输出为1,程序复位。
- 超前喂狗导致复位机制也很巧妙,CFR寄存器里的值是提前写入固定的,通过比较当前计数值与CFR的值判断如果当前喂狗有没有超时,如果超时则复位。写入WWDG_CR就代表喂狗,置为1。
WWDG工作特性
WWDG超时时间
注意:4096是一个固定分频,因为36MHZ的信号还是太快了,需要减慢