有STM32用戶使用STM32F3系列MCU開發(fā)產(chǎn)品,想利用片內(nèi)定時器實現(xiàn)移相全橋的PWM波形輸出。具體要求如下,并希望輸出下圖所示波形:
1、A與B波形的頻率及占空比相同,波形錯位的時間需可調(diào),如圖上半部分所示。
2、A與/A是同頻率、同占空比的互補波形,兩個波形的高電平之間可插入死區(qū)。
3、B與/B的關(guān)系同A與/A,如圖中下半部分的圖示。
要實現(xiàn)上面的波形,我們可以通過靈活運用比較輸出的toggle模式結(jié)合DMA來實現(xiàn),
不過,這對很多人來說,難度可能有點大。
具體到這里,因為他選擇了STM32F3系列,而STM32F3/L4/F7/H7等系列的定時器都具備非對稱PWM輸出模式或組合輸出模式,若使用非對稱PWM輸出模式實現(xiàn)上述輸出就比較方便省事。下面一起來看看。
所謂非對稱PWM輸出模式它是相對基于中心對稱計數(shù)時的對稱PWM輸出而言的。當計數(shù)模式為中心對齊,某個輸出通道利用一個比較寄存器做PWM輸出時,其對應的PWM輸出波形呈中心對稱,如下圖所示:
那這里的非對稱PWM輸出呢?同樣采用中心對齊計數(shù)模式,1個通道的輸出要用到2個比較寄存器的值進行比較翻轉(zhuǎn)。比方定時器通道3的輸出,根據(jù)CCR3和CCR4的值分別在向上計數(shù)和向下計數(shù)過程中做兩次比較而產(chǎn)生輸出,由于CCR3與CCR4的值往往不一致進而輸出非對稱的PWM波形。如下圖所示:
關(guān)于定時器比較輸出的非對稱PWM模式,OC1REFC或OC2REFC的輸出特征由CCR1和CCR2的值及所選PWM模式?jīng)Q定,同樣,OC3REFC或OC4REFC的輸出特征由CCR3和CCR4的值和所選PWM模式?jīng)Q定。
STM32參考手冊中在這個地方可能講得比較簡單,我這里再畫圖示意下。OC1/OC2都使用非對稱PWM輸出模式。CCR1=3,CCR2=6,ARR=8。注意,采用非對稱PWM輸出模式一定要使用中心對齊計數(shù)模式。
從上圖中我們不難看出,對于OC1REFC和OC2REFC,它們的輸出產(chǎn)生了相差,該相差取決于CCR1與CCR2的值?;谶@點,我們就可以實現(xiàn)上面的A、B輸出的相移問題,即通過修改CCR的值即可自由調(diào)整相差。【OCxREFC信號最終還是輸出到OCx端的,并支持互補輸出?!?/p>
這時我們再開啟這兩路的互補輸出,到此就可以實現(xiàn)客戶的輸出要求了。
下面我們利用STM32CubeMx神器進行初始化配置。【了解下關(guān)鍵配置就好】
配置時鐘等,然后生成初始化代碼并打開相關(guān)工程。添加需要的用戶代碼。代碼很簡單,是基于cube HAL庫?!鹃_啟CH1/CH2及互補通道的PWM輸出功能,使能主輸出、開啟計數(shù)器?!?/p>
看下輸出結(jié)果【未插入死區(qū)】:
我們也可以基于互補通道插入死區(qū),得到帶死區(qū)的輸出結(jié)果。
看到這里,是不是覺得這個非對稱PWM模式對實現(xiàn)那些相差可調(diào)的驅(qū)動波形很方便?好,關(guān)于STM32定時器的非對稱PWM功能輸出就介紹到這里。當然,它還可以有些其它靈活的用法,有興趣可以進一步了解并為你所用。
-
PWM
+關(guān)注
關(guān)注
114文章
5181瀏覽量
213796 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355730 -
定時器
+關(guān)注
關(guān)注
23文章
3246瀏覽量
114719
原文標題:STM32定時器非對稱PWM輸出模式應用示例
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論