23
8051F120 實實 PWM

8051F120 實做 PWM

  • Upload
    catori

  • View
    100

  • Download
    0

Embed Size (px)

DESCRIPTION

8051F120 實做 PWM. outline. PWM 相關簡介 Timer 實做 示波器操作 PCA 元件實做 (optional). outline. PWM 相關簡介 Timer 實做 示波器操作 PCA 元件實做 (optional). PWM 訊號. Pulse Width Modulation ,脈波寬度調 變 目的:周邊 控制 實 做 delay Timer PCA 元件. Dutycycle. 在脈波週期內 的 high edge 部份 佔一個脈波週期的比率即為所謂 的 dutycycle 先決定週期 - PowerPoint PPT Presentation

Citation preview

Page 1: 8051F120  實做  PWM

8051F120 實做 PWM

Page 2: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 3: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 4: 8051F120  實做  PWM

PWM 訊號Pulse Width Modulation ,脈波寬度調變目的:周邊控制實做

delayTimer PCA 元件

低速

高速

30%

70%

Page 5: 8051F120  實做  PWM

Dutycycle在脈波週期內的 high edge 部份佔一個脈波週期的比率即為所謂的 dutycycle先決定週期再決定 high 跟 low 的比例

Page 6: 8051F120  實做  PWM

周邊控制馬達

固定 20ms 週期 => tp = 20 ms依照不同的 dutycycle 有不同的轉動角度Vcc. 接地 . 訊號線

蜂鳴器不同的週期長短發出不同的高低音頻率 ( 物理 ) => tp 不同而有不同高低音與 dutycycle 無關

Page 7: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 8: 8051F120  實做  PWM

概念上次每 5ms 就 interrupt 一次的閃燈的作業

=> 週期 10ms dutycycle 為 50% 的 PWM 訊號 改變週期為 20ms改變高電位及低電位比例

Page 9: 8051F120  實做  PWM

實做設定使用外部石英震盪器做

system clock(22118400 HZ)Timer mode : 16 bit timerPrescaled Clock Inputs : System clock / 48timer 數一次的時間

48/22118400 = 2.17 * 10-3 (ms)Timer 需數的次數

20 (ms) / 2.17 * 10-3 (ms) ~= 92169216 次為 20ms 週期

Page 10: 8051F120  實做  PWM

實做設定 ( 補充 )System clock

外部石英震盪器 22118400 HzWatchdog Timer (WDT) CrossbarPort Input/OutputInterrupt

IEAll intterupttimer0

Page 11: 8051F120  實做  PWM

Crossbar Diagram

Page 12: 8051F120  實做  PWM

Dutycycle 實做概念tp => 數 9216 次會 delay 20ms 的週期th => 高電位數 n 次tl => 低電位數 m 次n+m = 9216n,m 比例調整就可有不同 dutycycle

Page 13: 8051F120  實做  PWM

Interrupt 程式void Timer_ISR(void) interrupt 1{

if(LED == 0){TH0 = (65536-1843)/256; //9216 20ms, dutycycle = 20%TL0 = (65536-1843)%256;}else{TH0 = (65536-7373)/256;TL0 = (65536-7373)%256; } LED = ~LED;

}

Page 14: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 15: 8051F120  實做  PWM

操作重點打開示波器正極接訊號端,負極接地Auto Set選週期及頻率

Page 16: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 17: 8051F120  實做  PWM

PCA 概念PCA ( Programmable Counter Array )加強計時計數器的應用功能,能夠使硬體資源更靈活有彈性的使用。組成

一個 16-bit 的 counter/timer六個 capture/compare module

PCA 可設定不同 function mode 而實現多種「以計時計數器為基礎所衍生的周邊控制行為」,如比較、捕捉、脈寬調變等

Page 18: 8051F120  實做  PWM

8051 PCA 元件

Page 19: 8051F120  實做  PWM

8051 PCA 元件 (1)PCA counter/timer

8-bit SFRs: PCA0L and PCA0H訊號的頻率 ( 週期 ) 依照 PCA0 counter/timer 設定的

timebase 輸出• Timebase (PCA0MD)

System clock divided by 12System clock divided by 4Timer 0 overflowHigh-to-low transitions on ECI (max rate = system

clock divided by 4)System clockExternal oscillator source divided by 8*

Page 20: 8051F120  實做  PWM

8051 PCA 元件 (2)• Capture/Compare Modules (PCA0CPMx)

Edge-triggered Capture Mode Software Timer (Compare) Mode High Speed Output Mode Frequency Output Mode 8-Bit Pulse Width Modulator Mode 16-Bit Pulse Width Modulator Mode

Enable / disable PAC PCA0CN

設定 dutycycle PCA0CPLn capture/compare register

硬體 function 概念 If(PCA0L == PCA0CPLn) CEXn = 1 If(PCA0L overflow) CEXn = 0

CEXn pin 為輸出訊號 ( 搭配 crossbar) => P0.0

Page 21: 8051F120  實做  PWM

PCA 8-Bit PWM Mode Diagram

Page 22: 8051F120  實做  PWM

簡單 PCA 實做 - 計算• 8-Bit Pulse Width Modulator Mode• Timebase : Timer0 overflow• PCA0 記數一次需: 20 (ms) /256 = 0.078125 (ms)• 表示 Timer0 overflow 一次要 0.078125 (ms)• 設定 Timer0 為 8 bit Conter/Timer Auto-Reload• Timer0 的 Prescaled Clock Inputs : System

clock / 48=> 48/22118400 = 2.17 * 10-3 (ms)

• 78.125 * 10-3 / 2.17 * 10-3 ~= 36=> TL0 = (256-36) , TH0 = (256-36)

Page 23: 8051F120  實做  PWM

簡單 PCA 實做 - 設定system clock

22118400 HZTimer0

8 bit Conter/Timer Auto-Reload TL0 = (256-36) TH0 = (256-36)

PCA 8-Bit Pulse Width Modulator Mode Timebase : Timer0 overflow Dutycycle Enable

CEXn pin 連接示波器觀查結果 週期 dutycycle