EC : PWM Module
PWM Module
PWM (Pulse
Width Modulator) 是利用不同的脈波寬度來控制相關裝置做出不同的變化,(ex:電腦螢幕的亮度調整)。因為PWM的製作成本遠低於數位轉類比的線路,市場上有愈來愈多使用PWM的裝置,如何控制這些裝置將會在這章節裡說明清楚。
PWM Module的方塊圖
PWM
Module的方塊圖可分為幾個部分:
- 計數用的輸入時脈訊號 – PWM是做用Core Clock (核心處理器的工作頻率)
- 除頻器 – PWM採用16位元的除頻器,除頻範圍為1-32768,除頻後的脈波傳送給週期計數器做為計數用。
- 週期計數器 – 把基本脈波除頻來取得脈波寬度。當下數到0x0000後,經RS正反器的SET,輸出轉為HIGH。
- 脈波寬度計數器 – 把脈波寬度的值和週期計數器的值比較,當兩個值相同時,經RS正反器的RESET,輸出轉為LOW。
- 輸出選擇器 – 選擇由Q或Q#為輸出訊號。
PWM的相關暫存器有:
- Clock Prescaler Register – 設定除頻器的除頻值
- Cycle Time Register – 設定PWM週期時間
- PWM的頻率為 Core Clock / (( PRSCn +1 )*(CTRn+1))
- Duty Cycle Register – 設定PWM的脈波寬波
- PWM Control Register – PWM 的控制暫存器
- PWR[7] – 指示PWM Module的工作模式。0表示在Low Power;1表示在Normal Power。
- INVP[1:0] – 0 表示選擇Q為輸出端,1表示由Q#為輸出端。
範例: 使用PWM去調整亮度
依據inventor的規格,亮度調整PWM的Burst工作頻率為250Hz,相關暫存器如下表設定,即可輸出250Hz來調整系統亮度。Core Clock =
PWM REG |
VALUE |
PRSC |
799 |
CTR |
99 |
PWMCTRLn |
0x80 |
DCRi |
0-99 [100=OFF] |
留言
張貼留言