引言
在數(shù)字能源產(chǎn)品的應(yīng)用控制中,無論調(diào)頻還是調(diào)寬方式,在有些情況下需要 PWM 輸出零(0%)或是滿(100%)占空比的波形,但使用 STM32G474 的高精度定時器時,由于對CMPx(x=1/2/3/4)的賦值有限制,CMPx 的值必須大于 3 個 fHRTIMclock 值且小于(定時器周期值-3*fHRTIMclock),導(dǎo)致有人誤以為無法通過修改 CMP 而輸出零或是滿占空比波形,本文將介紹在 STM32G474 中如何應(yīng)用高精度定時器實現(xiàn)零和滿占空比波形的輸出。
Up count 模式下 PWM 的輸出
在 STM32G474 的高精度定時器中,CMP1 和 CMP3 是可寫 0 的,在 up count 計數(shù)模式下,寄存器預(yù)加載使能,設(shè)定 PER 事件觸發(fā)寄存器更新。
Up-down count 模式下 PWM 的輸出
在 up-down count 計數(shù)模式下,寄存器預(yù)加載使能,設(shè)定 counter = 0 事件觸發(fā)寄存器更新,可以通過如下方式實現(xiàn)零占空比。
軟件控制 PWM 輸出零/滿占空比
在沒有為 PWM 輸出設(shè)置 SET 與 RESET 觸發(fā)事件,或是 CMPx 的值大于 PER 值的情況下,將不會發(fā)生讓 PWM 輸出狀態(tài)改變的硬件事件,那么完全可以通過軟件觸發(fā)方式來控制 PWM 的輸出高或是低電平,對應(yīng)的寄存器為 HRTIM_SETx1R(x = A to F)中的 SST 位和 HRTIM_RSTx1R (x = A to F)中的 SRT。
使用 SST/SRT 時,需要注意的是該位不能被預(yù)加載,置位后將立即生效,使 PWM 的電平發(fā)生變化,如果應(yīng)用中對 PWM 翻轉(zhuǎn)動作點有嚴格限制,比如必須在計數(shù)器為 0 的時刻發(fā)生變化,則使用該方法比較難以實現(xiàn)要求。
小結(jié)
本篇結(jié)合高精度定時器的 up 和 up-down 計數(shù)方式,分別給出了如何輸出零占空比和滿占空比 PWM 波形的方法,以及各種方法在應(yīng)用時的注意事項。