STM32———高级定时器的死区时间计算方法

STM32———高级定时器的死区时间计算方法

1.定时器的时钟分频因子和预分频系数的区别:

1.1 时钟分频因子(Clock division),决定定时器的工作时钟频率.
tDTS=fDTS ; tCK_INT=fCK_INT
在这里插入图片描述

1.2 预分频系数决定计数器的工作时钟的,配合自动重装载值Period完成定时功能。

2. 死区的时间计算过程
计算公式
上图是计算公式:
DT为死区时间;
TDTS为定时器的时钟周期;
Tdtg为步长,等于定时器的时钟周期时长乘以倍数;
DTG寄存器为死区时间存储值。

例如:系统时钟为72MHz,时钟分频因子为1分频。
定时器的时钟周期:TDTS=1/tDTS=1/tCK_INT=1/72MHz=13.89ns.
根据公式可算出可能的死区时间范围如下四种情况:
1.DT=DTG[7:0]×Tdtg,Tdtg=TDTS
DT=(0~127)×13.89ns
DT=0~1763.89ns
2.DT=(64+DTG[5:0])×Tdtg,Tdtg=2×TDTS
DT=(64+(0~63))×2×13.89ns
DT=(64~127)×2×13.89ns
DT=1777.92ns~3528.06ns
3.(32+DTG[4:0])×Tdtg,Tdtg=8×TDTS
DT=(32+(0~31))×8×13.89ns
DT=(32~63)×8×13.89ns
DT=3555.84ns~7000.56ns
DT=3.56us~7us
4.(32+DTG[4:0])×Tdtg,Tdtg=16×TDTS
DT=(32+(0~31))×16×13.89ns
DT=(32~63)×16×13.89ns
DT=7111.68ns~14001.12ns
DT=7.11168us~14us

死区时间范围步长
0~1763.89nsTdtg =13.89ns
1777.92ns~3528.06nsTdtg×2
3555.84ns~7000.56nsTdtg×8
7111.68ns~14001.12nsTdtg×16

1.假如 定时器的工作时钟频率72MHz,时钟分频因子1分频,死区时间设置为152ns。则DTG寄存器值为多少?
因为:死区时间152ns在步长Tdtg =13.89ns的死区范围内
所以:DTG寄存器值=152ns÷13.89ns=10.943≈11。
2.假如 定时器的工作时钟频率72MHz,时钟分频因子1分频,死区时间设置为2us。则DTG寄存器值为多少?
因为:死区时间2us在步长Tdtg ×2的死区范围内
所以:DTG[7:6] = 0b10。
DTG[5:0]寄存器值=2000ns÷(13.89ns*2)-64=7.994240460763139≈8. 二进制为:0x001000.
综上所述:DTG[7:0] = 0b10001000 = 0x88=136

  • 9
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜籽@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值