STM32
直播中

刘浩

7年用户 1056经验值
私信 关注
[问答]

如何去计算窗口看门狗(WWDG)的最大超时时间?

窗口看门狗(WWDG)的主要特性有哪些?

窗口看门狗(WWDG)的功能有哪些?

如何去计算窗口看门狗(WWDG)的最大超时时间?

如何对窗口看门狗(WWDG)的相关寄存器进行配置?

回帖(1)

白珊

2021-7-27 14:25:56
  简介,看门狗通俗的讲,用来监视程序是否异常,如果程序异常则重启程序。STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时触发一个中断(窗口看门狗)或者产生复位。
  1.窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或者过早的操作。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。窗口看门狗通常被用来监测由外部干扰或者不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0之前被刷新,看门狗威廉希尔官方网站 在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到上窗口寄存器数值之前,如果七位的递减计数器数值(在控制寄存器中)被刷新,那么也将产生一个MCU复位。表明递减计数器需要在一个有限的时间窗口内被刷新。
  2.WWDG主要特性
  1.可编程的自由运行递减计数器
  2.条件复位(在看门狗启动的条件下,当递减计数器的值小于0x40则产生复位;当递减计数器在窗口外被重新装载,则产生复位)。
  3.如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以被用于重装载计数器以避免WWDG复位。
  3.WWDG功能描述以及框图
  
  1.框图中右边的与门即表示如果计数器值大于上窗口时&&喂狗的话,会给或门一个1信号。
  2.应用程序在正常运行的过程中必须定期写入WWDG_CR寄存器以防止MCU发生复位。只有当计数器值位于窗口内时,才能进行写操作。存储在WWDG_CR寄存器中的数值必须在0xFF和0xC0之间
  3.启动看门狗,在系统复位后,看门狗总是处于关闭状态,设置WWDG_CR寄存器的WDGA位能够开启看门狗,随后它不再被关闭,除非发生复位。
  4.控制递减计数器,递减计数器处于自由运行状态,即使看门狗被禁止,递减计数器仍继续递减计数。当看门狗被启用时,T6位必须被设置,以防立即产生一个复位(也可以利用T6位产生一个软件复位--故意设置WDGA位为1,T6位为0)。T[5:0]位包含了看门狗产生复位之前的计数数目(最大时间)。复位前的延时时间在一个最小值和最大值之间变化,这是因为写入WWDG_CR寄存器值时,预分频值是未知的。
  5.配置寄存器(WWDG_CFR)中包含窗口的上限值,要避免产生复位,递减计数器必须在其值小于窗口寄存器的数值并且大于0x3F时被重新装载。另一个重装载计数器的方法是利用早期唤醒中断(EWI)。设置WWDG_CFR寄存器中的WEI位开启该中断。当递减计数器到达0x40时,则产生此中断,相应的中断服务程序(ISR)可以用来加载计数器以防止WWDG复位。在WWDG_SR中写0可以清除该中断。
  4.最大超时时间计算
  
  当写入WWDG_CR寄存器时,始终置T6位为1以避免立即产生一个复位。
  Twwdg = (4096 * 2^WDGTB * (T[5:0]+1)/ Fpclk1;
  5.相关寄存器配置
  1.控制寄存器WWDG_CR
  
  2.配置寄存器WWDG_CFR
  
  3.状态寄存器WWDG_SR
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分