Stm32高階定時器 三

2022-03-14 11:54:10 字數 1645 閱讀 6531

本來ocx訊號與ocxref時序同相同步,ocxn訊號與ocxref時序反相同步。但為了安全考慮,以ocxref為參考基準,ocxn和ocx通道將理論上本該導通的時間點往後延時一下,即做從截止切換到導通狀態的延時。

特點:● ocx輸出訊號與參考訊號相同,只是它的上公升沿相對於參考訊號的上公升沿有乙個延遲。

● ocxn輸出訊號與參考訊號相反,只是它的上公升沿相對於參考訊號的下降沿有乙個延遲。

計算時,先確定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.

需要注意的是,死區時間的計算是分段計算的,各段的時間步長和計算方式有差別,不可隨便填寫資料。

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

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

死區波形延遲大於負脈衝

死區波形延遲大於正脈衝

當使用剎車功能時,依據相應的控制位(timx_bdtr暫存器中的moe、ossi和ossr位,timx_cr2暫存器中的oisx和oisxn位),輸出使能訊號和無效電平都會被修改。

剎車源既可以是剎車輸入引腳又可以是乙個時鐘失敗事件。時鐘失敗事件由復位時鐘控制器中的時鐘安全系統產生。

上圖說明,剎車訊號(break[moe])觸發時,輸出ocx與ocxn在不同的ccxe,ccxp,oisx,ccxne, ccxnp, oisxn位控制下的輸出組合

這種模式允許計數器響應乙個激勵,並在乙個程式可控的延時之後產生乙個脈寬可程式控制的脈衝。

延時時間與脈衝寬度設定主要通過比較:定時器的計數值tim_cnt、定時器的比較值tim_ccrx與定時器的週期值tim_arr 這三個值來得出。具體如下:

比較向上計數方式

向下計數方式

延時時間

tim_ccrx - 0

tim_arr - tim_ccrx

脈衝寬度

tim_arr - tim_ccrx

tim_ccrx - 0

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

[2] stm32之通用定時器tim

[3] stm32高階定時器死區時間設定**

STM32高階定時器(1)

高階定時器主要學習它的輸入捕獲和輸出比較的功能 1 高階定時器與基本定時器的區別 在基本定時器的基礎上增加了 外部引腳 可以實現輸入捕獲和輸出比較 可程式設計死區互補輸出 重複計數器 帶剎車斷路 2 高階定時器的功能框圖 由功能框圖可以看出,高階定時器部分可以分為 時鐘源,控制器,時基單元,輸入捕獲...

stm32關定時器 STM32定時器TIM3程式

include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...

stm32 高階定時器產生PWM

用stm32的高階定時器tim1和tim8產生pwm,需要注意 1.都有tim1,但只有flash容量大於256k的大容量微控制器才有tim8 2.高階定時器相對於通用定時器,多了tim ctrlpwmoutputs tim8,enable tim1產生四路pwm程式 static void tim...