话不多说,直接上步骤:
[1]步骤1:计算Tdts
比如TIM1挂载在APB2上,时钟72M,又此时TIM寄存器设置的分频为1
TIM_TimeBaseStructure.TIM_ClockDivision = IM_CKD_DIV1 ;
那么此时Tdts就是1/72M = 13.78ns
[2]步骤2:死区时间DT
根据上表:DTG[7:0]被拆分成DTG[7:5]和DTG[4:0]
DTG是啥?
就是下列实例0x90的值。
TIM_BDTRInitStructure.TIM_DeadTime = 0x90;
把DTG[7:0] = 0x90转换成二进制 0b 1001 0000
并分成DTG[7:5]和DTG[5:0]得到 0b 100 和 0b 010000
查表:由于DTG[7:5]是0b 100属于4种情况中的第二种。
所以:
DT = (64+DTG[5:0])*Tdtg
DTG[5:0] = 0b 01 0000 = 16
Tdtg = 2*Tdts = 13.78ns*2
最终:DT = (64+16)*13.78*2 = 2204.8ns