针对学习STM32窗口看门狗和原子战舰所给的WWDG例程时候,存在的问题做如下记录。 1. WWDG超时公式推导1.1 WWDG工作示意图
1.2 WWDG超时公式推导
(1) 上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7F),最小又必须大于下窗口的0x40,所以其取值范围为64~127(即:0x40~0x7F)
(2) 配置寄存器WWDG->CFR
窗口看门狗的时钟来自于PCLK1,在时钟配置中,其频率为外部时钟经倍频器后的二分频时钟,即为36MHz (3)依据上述分析知,窗口时间计算公式为: 上窗口时间: T_min = (WWDG_CR[6:0] - WWDG_CFR[6:0])/(Tck/(2^WDGTB))(us) = (WWDG_CR[6:0] - WWDG_CFR[6:0])/((Tpck1/4096)/(2^WDGTB))(us) = 4096 * (2^WDGTB)*(WWDG_CR[6:0] -WWDG_CFR[6:0])/(72/2) (us) = 4096 *(2^WDGTB)*(WWDG_CR[6:0] - WWDG_CFR[6:0])/36 (us)
下窗口时间: T_max = 4096 * (2^WDGTB)*(WWDG_CR[6:0] - 0x3F)/36(us)
窗口看门狗的超时公式(刷新时间公式): Twwdg = T_max - T_min = 4096 *(2^WDGTB)*(WWDG_CFR[6:0] - 0x3F)/36 (us) = 4096 *(2^WDGTB)*(WWDG_CFR[6:0] - 63)/36 (us) 又因为 WWDG_CFR[6:0]取值范围是:0~127, (WWDG_CFR[6:0] –63)>0, 所以, 1<= (WWDG_CFR[6:0] – 63) <= 127-63=64
又因为 一个6位二进制X[5:0]数值范围是0~63, 1 <= X[5:0]+1 <= 64 所以, 上式可以表述为: Twwdg = 4096 * (2^WDGTB)*(T[5:0]+1)/36 (us) (4)依据上式,可以计算出WWDG的定时时间范围:
|