確定PWM頻率

TIM3的ARR寄存器和PSC寄存器,

確定PWM頻率。
PWM的週期(頻率)就是ARR寄存器值與PSC寄存器值相乘得來,但不是簡單意義上的相乘,例如要設置PWM的頻率參考上次通用定時器中設置溢出時間的算法,例如輸出100HZ頻率的PWM,首先,確定TIMx的時鐘,除非APB1的時鐘分頻數設置爲1,否則通用定時器TIMx的時鐘是APB1時鐘的2倍,這時的TIMx時鐘爲72MHz,用這個TIMx時鐘72MHz除以(PSC+1),得到定時器每隔多少秒漲一次,這裏給PSC賦7199,計算得定時器每隔0.0001秒漲一次,即此時頻率爲10KHz,再把這個值乘以(ARR+1)得出PWM頻率,假如ARR值爲0,即0.0001*(0+1),則輸出PWM頻率爲10KHz,再假如輸出頻率爲100Hz的PWM,則將ARR寄存器設置爲99即可。如果想調整PWM佔空比精度,則只需降低PSC寄存器的值即可。

TIMx_CCRx寄存器,

確定PWM的佔空比。
TIMx_CCR1—TIMx_CCR4確定定時器的CH1—CH4四路PWM的佔空比。直接給該寄存器賦0—65535值即可確定佔空比。

佔空比計算方法:TIMx_CCRx的值除以ARR寄存器的值即爲佔空比,因爲佔空比在0—100%之間,所以一般TIMx_CCRx寄存器值不能超過ARR寄存器的值,否則可能會引起PWM的頻率或佔空比的準確性。


頻率和佔空比的調節:

上面提到了兩個寄存器:CNT和CCR1,(channel x 對應CRx)
CNT中是計時器當前的計數值,CCR1中是用來比較的值,當CNT達到CCR1的值時,將發生電平轉變
另一個寄存器ARR,自動裝載寄存器,存儲的是自動裝載的值,向上計數中當CNT遞加達到ARR的值時將被複位,從0從新開始,而向下計數時,當CNT到達0時,ARR中的值將被自動裝載到CNT重新開始遞減,也就是說ARR中的值是計數週期(中心對其計數模式此處不考慮)

假設我們需要的頻率爲freq,佔空比dutycycle,定時器使用系統頻率SYSCLK,有如下關係:

ARR = SYSCLK/freq,dutycycle=CCR1/ARR

可見,通過更改ARR實現頻率可調,更改CCR1實現佔空比可調

發佈了25 篇原創文章 · 獲贊 47 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章