我手上的板子是L476RG,在當中一共有11個定時器:
其中分為基本、通用、高階三種
基本定時器:TIM6,TIM7
通用定時器:TIM2,TIM3,TIM4,TIM5,TIM15,TIM16,TIM17
高階定時器:TIM1,TIM8
PWM是將類比信號轉換為脈波,一般轉換後脈波的週期固定,但脈波的占空比會依類比信號的大小而改變。
什麼是佔空比(Duty Cycle)?
佔空比是指輸出的PWM當中,高電位保持的時間與整個週期之比。可以看到下圖當中最上方為50%的佔空比,也就是高電位與低電位各佔50%。
週期:一個脈衝信號的時間(高電位+低電位)
脈衝時間:高電位的時間
舉例來說週期是10ms,脈衝時間(高電位)是6ms低電位是4ms,加總就會等於6/6+4=60%,占空比也就等於60%。
Timer使用PWM輸出模式時,相比前面所介紹到的Timer定時模式CNT與ARR,還會多了一個CCRx。可以看到上方的圖片,在模式2向上計數的情況下,CNT計數值大於CCRx的時候會輸出高電位,相反的低於CCRx時則是低電位。
按照上方的圖來看可以得知 :
ARR : 主要控制的是頻率,也就是綠框的部分
CCRx : 主要為控制佔空比,也就是藍框的部分
假如時鐘頻率為16Mhz分頻係數設為15,想要產生一個200hz的工作週期為75%的方波,計算方式如下:
200hz = 16mhz / (arr+1)*(15+1) 這樣arr會等於5000
工作週期計算則會變成
pulse/5000x100% = 75% 這樣pulse會等於3750
以上內容如果有誤的話,麻煩各位通知我。感謝~