STM32G474 PWM輸出的抖動模式

2021-10-09 18:39:06 字數 1484 閱讀 7857

看到哪記到哪

在檢視手冊的時候發現了這個模式,第一次看沒看懂(可能是太睏了),今天又看了一遍手冊,大致理解了這個模式的作用。

抖動模式的功能就是增加pwm的解析度。

手冊的介紹是這樣的:

抖動模式pwm的有效解析度可以通過啟動抖動模式來提高,使能timx_cr1暫存器中的dithen位來啟動抖動模式。這適用於ccr(占空比解析度增加)和arr(pwm頻率解析度增加)。

其工作原理是在16個連續的脈寬調變週期內稍微改變實際的ccr(或arr)值(增加或不增加乙個定時器時鐘週期),並預先確定模型。這個考慮到平均占空比或pwm週期,可將解析度提高16倍。下圖顯示了應用於4個連續pwm週期的抖動原理。

圖中就可以看到啟動了抖動模式後,增加了解析度。

預設的平均 占空比 = (7+7+7+7) / (12×4) = 0.5833333333333333

dc = (7+¼)/5 的平均 占空比 = (8+7+7+7) / (12×4)= 0.6041666666666667

dc = (7+½)/5 的平均 占空比 = (8+7+8+7) / (12×4)= 0.625

dc = (7+¾)/5 的平均 占空比 = (8+8+8+7) / (12×4)= 0.6458333333333333

dc = 8/5 的平均 占空比 = (8+8+8+8)/ (12×4)= 0.6666666666666667

上述例子只是¼的步進,16個pwm一組的話就是的步進。

因此這個功能應該有些作用!

抖動模式時,16bit定時器和32bit定時器的arr和ccrx資料格式如下:

可以看到:32bit定時器的資料被砍到了28bit,而16bit的定時器資料沒有什麼影響,因此抖動模式的使用應當考慮資料被砍的問題。同時,抖動模式下選擇arr抖動還是ccrx抖動只需要調整小數字就可以選擇誰抖動了。

暫存器描述中也提到上述資料格式:

僅以上述暫存器舉例,其它的都介紹了抖動模式和非抖動模式的資料格式。

最後列表:邊沿對齊模式的pwm的抖動模式

中心對齊pwm模式的抖動模式

STM32 PWM輸出設定

計數器暫存器 timx cnt 預分頻器暫存器 timx psc 自動裝載暫存器 timx arr 重複次數暫存器 timx rcr 當timx cnt如果timx ccrx中的比較值大於自動重裝載值 timx arr 則ocxref保持為 1 如果比較值為0,則ocxref保持為 0 自動裝載暫存...

STM32的PWM輸出實驗

通過設定該暫存器 ccrx 來調整pwm輸出的占空比,如下圖所示 以通道1為例說明pwm的工作過程 首先通過設定ccr1 捕獲比較 值 暫存器 設定設定比較值。然後通過設定ccmr1 oc1m 2 0 位以及ccer cc1p位 輸入 捕獲1輸出極性 來設定高低電平的輸出模式,具體如圖所示 最後設定...

STM32輸出PWM波教程

pwm輸出配置步驟 舉例 使能定時器3和相關io口時鐘。使能定時器3時鐘 rcc apb1periphclockcmd 使能gpiob時鐘 rcc apb2periphclockcmd 初始化io口為復用功能輸出。函式 gpio init gpio initstructure.gpio mode g...