发 帖  
原厂入驻New
[经验]

STM32看门狗总结

2015-10-15 16:08:45  1486 寄存器
分享
2
调原子哥的开发板一年多,基本上能用,但是对于STM32某些基本外设的工作机理还不甚明了。借此暑假的机会对各个外设的功能做一个简短的总结,在提高自己基础知识的同时,也给其他同学提供一些参考。
先来看门狗部分的内容。
看门狗部分内容当中较难理解的是窗口看门狗,其中窗口值设置以及如何引发复位更是很难搞懂,因此从根本上分析一下窗口看门狗的工作原理,而与其有关的中断则略过。
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。独立看门狗有自己独立的40Khz时钟,不存在使能问题;而窗口看门狗使用的是PCLK1时钟,需要先使能时钟。以下是关于看门狗的具体说明:
①、独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。
②、窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。
显而易见的是,独立看门狗比较简单,容易理解。
这里,主要对窗口看门狗的详细含义作具体说明。
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps509.tmp.jpg
看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是0x40;当窗口看门狗的计数器在上窗口之外,或是低于下窗口值都会产生复位。如上图所讲,当计数器的值递减到0x3f的计数时间内未进行喂狗操作,则会触发复位;其次,如果在计数器值递减到配置寄存器WWDG->CFR里设定的W[6:0]之前进行喂狗操作,也会触发复位。所以,在使用窗口看门狗时,要设定两个值,一个就是窗口看门狗的上窗口值,即配置寄存器WWDG->CFR里设定的W[6:0],另一个就是递减计数器的计数初值。
再结合上图中的逻辑关系分析一下:
如图中所示标号,①③表示与门,②表示非或门;
1、当T[6:0]>W[6:0]时,比较器输出的值是1,如果此时重装载WWDG_CR,所以③就会输出1,②的输出也肯定是1,又因为使能了窗口看门狗,所以WWDG_CR的第7WDGA也为1,即与门①的输出是1,此时会触发复位。简单的概括来说,就是当递减计数器的值在递减到上窗口值W[6:0]之前进行喂狗操作(即重装载WWDG_CR,会触发看门狗复位。
2、当T[6:0]的第6位变为0时,即T[6:0]的值变为0x3f,此时②的输出肯定为1,而WDGA也为1,因此①的输出是1,会触发看门狗复位。简单的概括来说,就是当递减计数器的值在到达0x3f时仍未进行喂狗操作(即重装载WWDG_CR),同样会触发看门狗复位。
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps50A.tmp.png
上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7f),最小又必须大于其下窗口的0x40,所以其取值范围为64~127(0x40~0x7f),否则不能保证窗口。
配置寄存器WWDG->CFR寄存器中的[8:7]两个位的设置为计数器设定时钟分频系数,确定这个计数器可以定时的时间范围,从而确定窗口的时间范围。
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps50B.tmp.png
窗口看门狗的时钟来自于PCLK1,在时钟配置中,其频率为外部时钟经倍频器后的二分频时钟,即为36Mhz,如上图STM32时钟树所示。
窗口看门狗的超时公式如下:
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps50C.tmp.jpg
36M时钟下窗口看门狗的最小最大超时表:
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps50D.tmp.jpg
表中数据的具体计算如下所示:
①、当T[5:0]全部取0时,7位计数器的值是0x40,此时距离复位值只能计数一次,在此时间之内必须执行喂狗操作,否则触发复位。
从而可知各个WDGTB值下的最小超时时间,如WDGTB=0时,
Twwdg=4096×2^0×1/36 (us)=113 us,依次可计算出其他WDGTB值下的最小超时时间。
②、当T[5:0]全部取1时,7位计数器的值是0x7f,此时距离复位值递减计数0x40(0x3f+1),在此时间之内执行喂狗操作可避免复位。
从而可知各个WDGTB值下的最大超时时间,如WDGTB=0时,
Twwdg=4096×2^0×64/36 (us)=7281.7 us,依次可计算出其他WDGTB值下的最大超时时间。

图片1.png
图片2.jpg
图片3.jpg
图片4.png
图片5.png
linping527 2015-10-23 14:02:07
谢谢楼主分享!
回复

举报

FZSunDK 2015-10-23 16:14:05
看门狗很重要,关系到系统的可靠性。
回复

举报

玩世不恭夺 2015-10-23 16:27:02

智能硬件是一个趋势,各大厂商都在做
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
快速回复 返回顶部 返回列表