看到哪記到哪
在檢視手冊的時候發現了這個模式,第一次看沒看懂(可能是太睏了),今天又看了一遍手冊,大致理解了這個模式的作用。
抖動模式的功能就是增加pwm的解析度。
手冊的介紹是這樣的:
抖動模式pwm的有效解析度可以通過啟動抖動模式來提高,使能timx_cr1暫存器中的dithen位來啟動抖動模式。這適用於ccr(占空比解析度增加)和arr(pwm頻率解析度增加)。圖中就可以看到啟動了抖動模式後,增加了解析度。其工作原理是在16個連續的脈寬調變週期內稍微改變實際的ccr(或arr)值(增加或不增加乙個定時器時鐘週期),並預先確定模型。這個考慮到平均占空比或pwm週期,可將解析度提高16倍。下圖顯示了應用於4個連續pwm週期的抖動原理。
預設的平均 占空比 = (7+7+7+7) / (12×4) = 0.5833333333333333上述例子只是¼的步進,16個pwm一組的話就是的步進。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
因此這個功能應該有些作用!
抖動模式時,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...