高級控制定時器(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定時器時鍾頻率所對應的死區時間計算方法,換成其他時鍾頻率計算也是一樣,求出周期時間即可。

>>> 此時,若要計算死區設定時間,將范圍選定,進行反推,計算出DTG(死區發生器配置)的值即可。

 

eg:設置3us的死區時間,那么屬於第二種情況;

  DTG[7:5] = 0b10x,T dtg = 27.78;

  DTG[5:0] = 3000 ÷ 27.78 - 64 = 108 - 64 = 44 = 0b101100;

  DTG[7:0] = 0b10 101100 = 0xAC。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM