STM32定时器的死区时间(DTR)如何计算,增加死区计算器
本文以STM32F051为例,详细分析了TIM1死区时间(DTR)的计算方法。当系统时钟配置为48MHz且分频因子CKD=00时,基本时间单位tDTS=20.8333ns。死区时间根据DTG寄存器的不同取值范围采用分段计算:0-127对应0-127×tDTS、128-191对应(64+[0-63])×2×tDTS、192-223对应(32+[0-31])×8×tDTS、224-255对应(32+[
一、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个参数,自动计算
、

更多推荐



所有评论(0)