PCA元件實做

Download Report

Transcript PCA元件實做

outline
 PWM相關簡介
 Timer 實做
 示波器操作
 PCA元件實做(optional)
outline
 PWM相關簡介
 Timer 實做
 示波器操作
 PCA元件實做(optional)
PWM訊號
 Pulse Width Modulation,脈波寬度調變
 目的:周邊控制
 實做
 delay
 Timer
 PCA元件
30%
低速
70%
高速
Dutycycle
 在脈波週期內的 high edge 部份佔一個脈波週期的比
率即為所謂的 dutycycle
 先決定週期
 再決定 high 跟 low 的比例
周邊控制
 馬達
 固定 20ms 週期 => tp = 20 ms
 依照不同的 dutycycle 有不同的轉動角度
 Vcc.接地.訊號線
 蜂鳴器
 不同的週期長短發出不同的高低音
 頻率(物理) => tp 不同而有不同高低音
 與dutycycle無關
outline
 PWM相關簡介
 Timer 實做
 示波器操作
 PCA元件實做(optional)
概念
 上次每 5ms 就 interrupt 一次的閃燈的作業
=> 週期 10ms dutycycle 為 50% 的 PWM 訊號
 改變週期為 20ms
 改變高電位及低電位比例
實做設定
 使用外部石英震盪器做





system clock(22118400 HZ)
Timer mode:16 bit timer
Prescaled Clock Inputs:System clock / 48
timer 數一次的時間
48/22118400 = 2.17 * 10-3 (ms)
Timer需數的次數
20 (ms) / 2.17 * 10-3 (ms) ~= 9216
9216 次為 20ms 週期
實做設定(補充)
 System clock
 外部石英震盪器 22118400 Hz
 Watchdog Timer (WDT)
 Crossbar
 Port Input/Output
 Interrupt
 IE
 All intterupt
 timer0
Crossbar Diagram
Dutycycle 實做概念
 tp => 數9216次會delay 20ms 的週期
 th => 高電位數 n 次
 tl => 低電位數 m 次
 n+m = 9216
 n,m 比例調整就可有不同dutycycle
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;
}
outline
 PWM相關簡介
 Timer 實做
 示波器操作
 PCA元件實做(optional)
操作重點
 打開示波器
 正極接訊號端,負極接地
 Auto Set
 選週期及頻率
outline
 PWM相關簡介
 Timer 實做
 示波器操作
 PCA元件實做(optional)
PCA概念
 PCA(Programmable Counter Array)加強計時計數
器的應用功能,能夠使硬體資源更靈活有彈性的使用。
 組成
 一個16-bit的counter/timer
 六個capture/compare module
 PCA可設定不同 function mode 而實現多種「以計時
計數器為基礎所衍生的周邊控制行為」,如比較、捕
捉、脈寬調變等
8051 PCA元件
8051 PCA元件(1)
 PCA counter/timer
 8-bit SFRs: PCA0L and PCA0H
 訊號的頻率(週期)依照 PCA0 counter/timer 設定的 timebase
輸出
• Timebase (PCA0MD)
 System clock divided by 12
 System clock divided by 4
 Timer 0 overflow
 High-to-low transitions on ECI (max rate = system clock
divided by 4)
 System clock
 External oscillator source divided by 8*
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
PCA 8-Bit PWM Mode Diagram
簡單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)
簡單PCA實做-設定
 system clock
 22118400 HZ
 Timer0
 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