引言
在高精度定時器中,可以使用外部事件來對 PWM 輸出進行封鎖,并可自動恢復;在高級控制定時器中,可以使用 Break 或是 Clr_input 來對 PWM 輸出進行封鎖, 然后也可以自動恢復,其中 Break 必須結合 AOE 置位來實現自動恢復。
雖然都可以實現封波后的自動恢復,但是在二者之間還是存在一些區別。
PWM 封波-自動恢復原理分析
在高精度定時器中,通過配置 PWM 的 Set 與 Reset 事件,當 Set/Reset 事件發生時,PWM 輸出做出對應的響應。要實現封波-自動恢復,只需配置合適的 Reset 事件,Reset 發生時,觸發 PWM 輸出 inactive 電平,當 Reset 事件消失后,PWM 將在下個 Set 事件點重新輸出。
在高級控制定時器中,PWM 的工作方式有 PWM_Mode1 與 PWM_Mode2,基于定時器比較器的值與當前 Counter 的值來結合 PWM 模式來確定輸出電平的狀態。要實現封波-自動恢復,通過 Break(with AOE)或是 Clr_input 功能,當 Break 信號或是 Clr_input 信號電平有效時,PWM 輸出會被封鎖,此時端口電平跟當時的 PWM 配置有關;當 Break 信號或是 Clr_input 信號電平無效時,PWM 將在下個 UEV(更新事件)或是新的 PWM 的周期恢復輸出。
下面通過實際的測試與波形來詳細說明。
高精度定時器的 “封波-自動恢復”
使用的是外部事件 1(EEV1)關聯外部過流故障信號,利用 EEV1 來封鎖 PWM。配置如下(測試中使用的配置是高電平觸發事件):
使用以上配置時,只要故障信號持續高電平的時間和 PWM 的 Set 事件不重疊,那么定時器在下個 PWM 周期能正常輸出 PWM,如下圖所示。
但是如果 Fault 信號高電平的持續時間覆蓋了 PWM 的 set 事件,那么 PWM 將一直輸出低電平,直到 Fault 信號高電平不再覆蓋 PWM 的 Set 件,如下圖所示。
另外,高精度定時器中的還可以工作的沿模式,例如配置 EEV1 工作在上升沿觸發模式,如下圖所示。
高級控制定時器的“封波-自動恢復”
高級控制定時器中,break 為電平有效模式(測試中使用的配置是高電平觸發 Break)。當出現 Break 信號出現高電平時,PWM 封波,如果 Break 信號高電平未跨周期,那么在下個周期 PWM 能正常輸出,如下圖所示。
但是如果 Break 信號高電平跨周期,即使高電平持續時間沒有到達比較事件點,下個周期 PWM 依舊繼續“封波”,直到 Break 信號恢復低電平的下個周期 PWM 才會正常輸出,如下圖所示。
小結
綜上以上的分析與實驗結果:
? 高精度定時器封波基于事件觸發,封波后只要故障消失,則在下個觸發來臨時就可以立即生效,恢復 PWM 輸出。
? 高級控制定時器封波后,即使故障消失后,也要等到下個 UEV 事件或是新的 PWM周期才能恢復 PWM 輸出。
原文標題:工程師筆記|高精度定時器與高級控制定時器 PWM 封波后再恢復的區別
文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
PWM
+關注
關注
114文章
5148瀏覽量
213425 -
定時器
+關注
關注
23文章
3241瀏覽量
114492 -
自動恢復
+關注
關注
0文章
2瀏覽量
5997
原文標題:工程師筆記|高精度定時器與高級控制定時器 PWM 封波后再恢復的區別
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論