一、STM32F051为例

讲解死区时间(DTR)如何计算,TIM1的时钟频率配置的是48M

二、时钟分频因子

我的环境时钟分频因子的值是 00,所以

tDTS = tCK_INT=1000 000 000ns/48 000 000=20.8333ns

三、用户手册中的样例理解

Tdtg=步长时间=n x TDTS

如果定时器时钟为8M,并且CKD=00,TDTS=1000 000 000ns/8 000 000=125ns

DTG[7:0]  =   [0~127]       => DTG[7:5]=0xx => 死区 = [0~127]*125ns = [0~15875]ns

DTG[7:0]  =   [128~191]   => DTG[7:5]=10x => 死区 =(64+[0~63])*(125ns*2)=[16000~31750]ns

DTG[7:0]  =   [192~223]   => DTG[7:5]=11x => 死区 =(32+[0~31])*(125ns*8)=[32~63]us

DTG[7:0]  =   [224~255]   => DTG[7:5]=111 => 死区 =(32+[0~31])*(125ns*16)=[64~126]us

四、STM32F051寄存器和波形对比

我的环境时钟分频因子的值是 00,所以

tDTS = tCK_INT=1000 000 000ns/48 000 000=20.8333ns

例子1

DTG=0x2D=45   [0~127]

死区=45*20.8333ns=937.49ns

例子2

DTG=0x96=150   [128~191]

死区=[64+22]*20.8333ns*2=3583.32ns=3.583us

五、死区计算器

手工计算比较麻烦,整了小工具,只需要选填3个参数,自动计算

【免费】STM32定时器的死区计算器资源-CSDN下载

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐