天天看點

Stm32進階定時器(三)

死區:某個處于相對無效狀态的時間或空間

Stm32進階定時器(三)

1 互補輸出和死區插入

1.1 死區:某個處于相對無效狀态的時間或空間

Stm32進階定時器(三)

本來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進階定時器配置死區參數不合适時的問題

死區時間不能比嵌入死區前的互補通道的有效脈沖還寬,否則相應通道的輸出呈無效狀态。

當死區時間比有效電平還長時,就沒有機會輸出有效電平了。

Stm32進階定時器(三)

死區波形延遲大于負脈沖

Stm32進階定時器(三)

死區波形延遲大于正脈沖

2 使用刹車功能:PWM急停

通過硬體緊急終止輸出

當使用刹車功能時,依據相應的控制位(TIMx_BDTR寄存器中的MOE、OSSI和OSSR位,TIMx_CR2寄存器中的OISx和OISxN位),輸出使能信号和無效電平都會被修改。

刹車源既可以是刹車輸入引腳又可以是一個時鐘失敗事件。時鐘失敗事件由複位時鐘控制器中的時鐘安全系統産生。

Stm32進階定時器(三)

上圖說明,刹車信号(BREAK[MOE])觸發時,輸出OCx與OCxN在不同的CCxE,CCxP,OISx,CCxNE, CCxNP, OISxN位控制下的輸出組合

3 單脈沖模式(OPM)

這種模式允許計數器響應一個激勵,并在一個程式可控的延時之後産生一個脈寬可程式控制的脈沖。

Stm32進階定時器(三)

延時時間與脈沖寬度設定主要通過比較:定時器的計數值TIM_CNT、定時器的比較值TIM_CCRx與定時器的周期值TIM_ARR 這三個值來得出。具體如下:

比較 向上計數方式 向下計數方式
延時時間 TIM_CCRx - 0 TIM_ARR - TIM_CCRx
脈沖寬度

4 參考文獻

[1] ST MCU定時器應用中的死區控制話題

[2] stm32之通用定時器TIM

[3] STM32進階定時器死區時間設定探究

形而上者謂之道 形而下者謂之器。

繼續閱讀