STM32
直播中

陈键

7年用户 1007经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

有关独立看门狗(IWDG)的溢出时间说明

独立看狗(IWDG)有哪些相关的寄存器?
怎样去计算门独立看狗(IWDG)的溢出时间?

回帖(1)

姬房有

2021-8-4 15:28:33
  首先看下计算公式:
  m3: Tout=(4*2^prer)*rlr / 40 Tout是最终的式子,要弄清楚式子中的各成员的含义,就要从根源开始推倒和理解。
  首先是溢出时间Tout=(IWDG_RLR寄存器对应的装载数值)*(看门狗时钟的周期)
  即:
  Tout=(IWDG_RLR寄存器对应的装载数值)*(看门狗时钟的周期) IWDG_RLR寄存器:
  
  其中,看门狗时钟周期=1/freq,freq则等于 8位预分频器的值乘以递减计数器所用到的时钟频率。即:
  freq=8位预分频器的值*递减计数器所用到的时钟频率 独立看门狗(IWDG)由专用的低速时钟(即LSI)驱动,LSI的频率f为40khz,所以
  freq=预分频系数(即8位预分频器的值)*40 预分频系数与预分频因子互为倒数,所以
  freq=40/预分频因子
  
  注意,预分频寄存器有写保护功能,要改变预分频因子,IWDG_SR寄存器的PVU位必须为0。
  
  我们接着看Tout公式,公式中的prer是什么呢?
  prep是IWDG_PR寄存器中位2:0的十进制值。看图~~
  
  可以看到,该寄存器的配置关系为:
  000—》4分频
  001—》8分频
  010—》16分频
  …
  由此可以看出,预分频因子与prer的值的关系为:
  预分频因子=4*2^prer=2^(prer+2) 举个栗子,
  PR[2:0]=001,对应十进制值为1,所以此时预分频因子=4*2^1=2^(1+2)=8。 Tout公式中rlr是重装载寄存器IWDG_RLR所对应的重装载数值。
  
  所以
  Tout=rlr*看门狗时钟周期=rlr*(1/freq)=rlr*(1/(40*预分频系数))=rlr*(1/(40/预分频因子))=rlr*(1/(40/(4*2^prer)))=rlr*((2^(prer+2))/40)=(4*2^prer)*rlr / 40 讲的非常清楚了,应该很好理解了。可以这样理解:溢出时间=每次递减计数的周期*递减计数的次数。然后根据重装载寄存器IWDG_RLR和预分频寄存器IWDG_PR计算出周期和次数,最后相乘就可以了。
  弄懂的话给我点个赞吧~~
举报

更多回帖

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