stm32系列芯片独立看门狗(IWDG)溢出时间计算原理

首先看下计算公式:

 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计算出周期和次数,最后相乘就可以了。

弄懂的话给我点个赞吧~~

  • 52
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值