死區時間計算方式詳解
配置PWM互補輸出的死區時間,本質上就是在配置TIM1高級控制定時器的剎車和死區寄存器(TIMx_BDTR)中的DTG[7:0](死區發生器設置)部分。
在WB32參考手冊中找到該部分:
先介紹一下公式中的各個變量代表的含義:
1)DT:死區持續時間(DT=步長值×步長時間)。
2)T-DTS:系統時鐘周期時長。
例:WB32F103CBT6的系統時鐘頻率為72M,則T-DTS = 1/72M = 13.89ns
3)Tdtg:步長時間,等于系統時鐘周期時長乘以倍數,這個值用于計算最終死區時間。
4)DTG[7 : 5] = 0xx,DTG[7 : 5] = 10x,DTG[7 : 5] = 110,DTG[7 : 5] = 111。這四個部分分別對應四種死區時間計算方式。
可以簡單理解為將DTG[7 : 0]這8位分為兩部分,一部分決定步長值(二進制),另一部分決定與步長時間相乘的系數。
仔細閱讀死區時間計算表:
請注意:
DTG[7 : 5] = 0xx和DTG[7 : 5] = 10x中是含有x的,x部分并不參與決定步長值,但含x部分可和DTG剩余部分一起決定與步長值相乘的系數部分。
結合圖11-1中公式,當DTG[7 : 5] = 10x時,其步長值(二進制)為10,步長時間Tdtg等于系統時鐘周期時長的兩倍,對應計算公式DT = (64 + DTG[5 : 0])×Tdtg,Tdtg = 2×T-DTS。
DTG[5 : 0]的取值范圍為“00 0000(二進制)”到“11 1111(二進制)”,換算成十進制,則DTG[5 : 0]可取值范圍為“0-63”。
即時鐘頻率72M,DTG[7 : 5] = 10x時:
最小死區時間DT=(64+0)Tdtg=64(2T-DTS)=64213.89=1778ns
最大死區時間DT=(64+63)Tdtg=127(2T-DTS)=127213.89=3528ns
死區時間結構體成員參數值計算
上述過程講解了死區時間的計算方法,但我們在代碼編寫時該如何傳值呢?
例如現在需要2us(2000ns)的死區時間,依據上述表格應選方式3計算:2000 = (64+DTG[5 : 0]) Tdtg = (64+x) * 2 13.89 ns
解出DTG[5 : 0]為8,換算為二進制“0b1000”。
則DTG[7 : 0]=0b10001000=0x88
〈烜芯微/XXW〉專業制造二極管,三極管,MOS管,橋堆等,20年,工廠直銷省20%,上萬家電路電器生產企業選用,專業的工程師幫您穩定好每一批產品,如果您有遇到什么需要幫助解決的,可以直接聯系下方的聯系號碼或加QQ/微信,由我們的銷售經理給您精準的報價以及產品介紹
聯系號碼:18923864027(同微信)
QQ:709211280