Stm32高級定時器(三)
1 互補輸出和死區插入
1.1 死區:某個處於相對無效狀態的時間或空間
本來OCX信號與OCXREF時序同相同步,OCXN信號與OCXREF時序反相同步。但為了安全考慮,以OCXREF為參考基准,OCXN和OCX通道將理論上本該導通的時間點往后延時一下,即做從截止切換到導通狀態的延時。
特點:
● OCx輸出信號與參考信號相同,只是它的上升沿相對於參考信號的上升沿有一個延遲。
● OCxN輸出信號與參考信號相反,只是它的上升沿相對於參考信號的下降沿有一個延遲。
1.2 STM32高級定時器中的死區的計算(請看底部參考文獻)
計算時,先確定Tdts,然后結合你需要的死區時間選擇相應的計算檔位,最后確定DTG[7:0]。假設STM32f407的TIM1工作在168M,設置Tdts=1/168 us,死區設置為4us,經過估算該死區時間落在DTG[7:5]=111段。
先算得DTG[4:0]=01010B,再跟DTG[7:5]組合在一起,最后算得DTG[7:0]=11101010B,即0xEA.
需要注意的是,死區時間的計算是分段計算的,各段的時間步長和計算方式有差別,不可隨便填寫數據。
1.3 STM32高級定時器配置死區參數不合適時的問題
死區時間不能比嵌入死區前的互補通道的有效脈沖還寬,否則相應通道的輸出呈無效狀態。
當死區時間比有效電平還長時,就沒有機會輸出有效電平了。
死區波形延遲大於負脈沖
死區波形延遲大於正脈沖
2 使用剎車功能:PWM急停
通過硬件緊急終止輸出
當使用剎車功能時,依據相應的控制位(TIMx_BDTR寄存器中的MOE、OSSI和OSSR位,TIMx_CR2寄存器中的OISx和OISxN位),輸出使能信號和無效電平都會被修改。
剎車源既可以是剎車輸入引腳又可以是一個時鍾失敗事件。時鍾失敗事件由復位時鍾控制器中的時鍾安全系統產生。
上圖說明,剎車信號(BREAK[MOE])觸發時,輸出OCx與OCxN在不同的CCxE,CCxP,OISx,CCxNE, CCxNP, OISxN位控制下的輸出組合
3 單脈沖模式(OPM)
這種模式允許計數器響應一個激勵,並在一個程序可控的延時之后產生一個脈寬可程序控制的脈沖。
比較 | 向上計數方式 |
向下計數方式 |
延時時間 |
TIM_CCRx - 0 |
TIM_ARR - TIM_CCRx |
脈沖寬度 |
TIM_ARR - TIM_CCRx |
TIM_CCRx - 0 |
4 參考文獻
[2] stm32之通用定時器TIM