高級控制定時器(TIM1和TIM8) 關於死區時間的計算方法
TIM1 和TIM8 剎車和死區寄存器(TIMx_BDTR):
死區時間控制寄存器位:
首先,理解這些計算位的含意,如下:
DT 為需要計算的死區時間;
TDTS為系統時鐘所產生的周期時間;
Tdtg為步進計算值,Tdtg = TDTS * 倍數;
接著,以定時器設定為72MHz進行計算舉例:
TDTS = 1 / 72MHz = 13.89ns;
當第一種情況,求死區範圍方法,即:DTG[7:5] = 0xx => DT = DTG[7:0] × T dtg ,T dtg = T DTS。
>>> 可以計算出死區時間為:(0 ~ 2^8 - 1) * 13.89 = 0 ~ 1764ns;
//DTG[7:5]對應的範圍:0 ~ 2^8-1, 下面的對應位也一樣,不再說明。
當第二種情況,求死區範圍方法,即:DTG[7:5] = 10x => DT = (64+DTG[5:0]) × T dtg ,T dtg = 2 × T DTS ;
>>> 可以計算出死區時間為:(64 + 0 ~ 64 + 2 ^ 6 - 1) * 2 * 13.89 = 1777.9ns ~ 3528.88ns;
當第三種情況,求死區範圍方法,即:DTG[7:5] = 110 => DT = (32+DTG[4:0]) × T dtg ,T dtg = 8 × T DTS ;
>>> 可以計算出死區時間為:(32 + 0 ~ 32 + 2 ^ 5 - 1) * 8 * 13.89 = 3555.84ns ~ 7000.56ns;
當第四種情況,求死區範圍方法,即:DTG[7:5]=111 => DT=(32+DTG[4:0])× T dtg ,T dtg = 16 × T DTS ;
>>> 可以計算出死區時間為:(32 + 0 ~ 32 + 2 ^ 5 - 1) * 16 * 13.89 = 7157.76ns ~ 14001.12ns;
以上便是72MHz定時器時鐘頻率所對應的死區時間計算方法,換成其他時鐘頻率計算也是一樣,求出周期時間即可。
>>> 此時,若要計算死區設定時間,將範圍選定,進行反推,計算出DT(死區時間)的值即可。
高級控制定時器(TIM1和TIM8) 關於死區時間的計算方法