STM32定时器的死区时间(DTR)如何计算
一、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