系統(tǒng)時(shí)鐘和定時(shí)器簡(jiǎn)單記錄
鎖相環(huán)(PLL):時(shí)鐘發(fā)生器之中作為一個(gè)電路的MPLL,參考輸入信號(hào)的頻率和相位同步出一個(gè)輸出信號(hào)。用于生成與輸入直流電壓成比例的輸出頻率的壓控振蕩器(VCO)、用于將輸入頻率(Fin)按p分頻的分頻器 P 、用于將VCO輸出頻率按m分頻并輸入到相位頻率檢測(cè)器(PFD)中的分頻器M用于將VCO輸出頻率按s分頻成為Mpll(輸出頻率來(lái)自MPLL模塊)的分頻器S、鑒相器、電荷泵以及環(huán)路濾波器。
鑒相器(PFD ):PFD檢測(cè) Fref 和Fvco之間的相位差,并在檢測(cè)到相位差時(shí)產(chǎn)生一個(gè)控制信號(hào)(跟蹤信號(hào))。Fref 意思為參考頻率。
電荷泵(PUMP )
電荷泵將PFD 控制信號(hào)轉(zhuǎn)換為一個(gè)按比例變化的電壓并通過(guò)外部濾波器來(lái)驅(qū)動(dòng) VCO。
電荷泵將PFD 控制信號(hào)轉(zhuǎn)換為一個(gè)按比例變化的電壓并通過(guò)外部濾波器來(lái)驅(qū)動(dòng) VCO。
環(huán)路濾波器
PFD產(chǎn)生用于電荷泵的控制信號(hào),在每次 Fvco與Fref 比較時(shí)可能產(chǎn)生很大的偏差(紋波)。為了避免 VCO過(guò)載,使用低通濾波器采樣并且濾除控制信號(hào)的高頻分量。濾波器是一個(gè)典型由一個(gè)電阻和一個(gè)電容組成的單極性RC濾波器。
壓控振蕩器(VCO)
從環(huán)路濾波器的輸出電壓驅(qū)動(dòng) VCO,引起其振蕩頻率線性增大或減小,如同均勻變化電壓的功能。當(dāng)Fvco與Fref 頻率和相位都在限期內(nèi)相匹配時(shí),PFD 停止發(fā)送控制信號(hào)給電荷泵,并轉(zhuǎn)變?yōu)榉€(wěn)定輸入電壓給環(huán)路濾波器。VCO頻率保持恒定,PLL 則保持固定為系統(tǒng)時(shí)鐘。
PFD產(chǎn)生用于電荷泵的控制信號(hào),在每次 Fvco與Fref 比較時(shí)可能產(chǎn)生很大的偏差(紋波)。為了避免 VCO過(guò)載,使用低通濾波器采樣并且濾除控制信號(hào)的高頻分量。濾波器是一個(gè)典型由一個(gè)電阻和一個(gè)電容組成的單極性RC濾波器。
壓控振蕩器(VCO)
從環(huán)路濾波器的輸出電壓驅(qū)動(dòng) VCO,引起其振蕩頻率線性增大或減小,如同均勻變化電壓的功能。當(dāng)Fvco與Fref 頻率和相位都在限期內(nèi)相匹配時(shí),PFD 停止發(fā)送控制信號(hào)給電荷泵,并轉(zhuǎn)變?yōu)榉€(wěn)定輸入電壓給環(huán)路濾波器。VCO頻率保持恒定,PLL 則保持固定為系統(tǒng)時(shí)鐘。
PLL和時(shí)鐘產(chǎn)生器的通常條件 (參見(jiàn)文檔)
如何控制鎖相環(huán)PLL的輸出頻率呢?MPLLCON(FCLK和Fin的比例關(guān)系)和CLKDIVN寄存器(FCLK、HCLK和PCLK之間的比例關(guān)系):FCLK=(2*m*Fin)/(p*2^s)
m=MDIV+8,p=PDIV+2,s=SDIV。(MPLLCON寄存器中)。注意:在系統(tǒng)初始化階段應(yīng)該先初始化UPLL(USB時(shí)鐘),然后等待大約7個(gè)nop指令之后,再初始化MPLL.這也就是啟動(dòng)代碼時(shí),需要注意的。同時(shí)最好按照官方給出的系統(tǒng)時(shí)鐘配置參考。
例子:已知系統(tǒng)外部晶振輸入為12MHz,要求FCLK輸出為200MHz,經(jīng)過(guò)計(jì)算可以得到MDIV=92,PDIV=4,SDIV=1。
M_MDIV EQU 92 //Fin=12.0MHz,F(xiàn)out=200MHz
M_PDIV EQU 4
M_SDIV EQU 1
ldr r0 ,=MPLLCON
ldr r1 ,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV)
str r1,[r0]
下面配置CLKDIVN寄存器,實(shí)現(xiàn)FCLK、HCLK、PCLK之間的分頻比。其中HDIVN用于控制FCLK和PCLK的比例關(guān)系;PDIVN主要用于控制HCLK和PCLK的比例關(guān)系。
定時(shí)器原理與應(yīng)用
S3C2440有5個(gè)16位定時(shí)器,定時(shí)器0、1、2、3被稱為PWM定時(shí)器。定時(shí)器 4 是一個(gè)無(wú)輸出引腳的內(nèi)部定時(shí)器。定時(shí)器 0 還包含用于大電流驅(qū)動(dòng)的死區(qū)發(fā)生器。(時(shí)鐘源是PCLK)
定時(shí)器原理相同,寄存器TCMPBn和TCNTBn用于緩存定時(shí)器n的比較值和初始化值;TCON用于控制定時(shí)親的開啟與關(guān)閉;可以通過(guò)讀取寄存器TCNTOn得到定時(shí)器的當(dāng)前計(jì)數(shù)值。
TCMPBn的值是用于脈寬調(diào)制(PWM)。當(dāng)遞減計(jì)數(shù)器的值與定時(shí)器控制邏輯中的比較寄存器的值相匹配時(shí)定時(shí)器控制邏輯改變輸出電平。因此,比較寄存器決定 PWM 輸出的開啟時(shí)間(或關(guān)閉時(shí)間)。
定時(shí)器工作原理概述:
首先、將定時(shí)器的比較值和初始值裝入寄存器TCMPBn和TCNTBn中。
然后、設(shè)置定時(shí)器控制器TCON啟動(dòng)定時(shí)器。此時(shí)、TCMPBn和TCNTBn中的值會(huì)加載到寄存器TCMPn和TCNRn中。
此時(shí)、定時(shí)器會(huì)減1計(jì)數(shù),即TCNTn進(jìn)行減1計(jì)數(shù),當(dāng)TCMPn=TCNTn時(shí),TOUTn引腳輸出取反。TCNTn繼續(xù)減1計(jì)數(shù)。
當(dāng)TCNTn的值到達(dá)0時(shí),其輸出管腳TOUTn再次發(fā)轉(zhuǎn),并觸發(fā)定時(shí)器n的中斷。(如果中斷使能的話)
當(dāng)TCNTn的值到達(dá)0時(shí),如果在TCON寄存器中將定時(shí)器n設(shè)置為“自動(dòng)取反”,則自動(dòng)加載初值,下一輪計(jì)數(shù)流程開始。
可以通過(guò)讀取TCNTOn讀取觀察定時(shí)器當(dāng)前的值。PCLK經(jīng)過(guò)兩級(jí)分頻器,輸出頻率作為定時(shí)器的工作頻率。
定時(shí)器配置寄存器TCFG0用于控制第1級(jí)分頻器的分頻系數(shù),分頻器輸出頻率為:
PCLK/(prescaler value+1),其中prescaler value=0~255.
定時(shí)器配置寄存器TCFG1用于控制多路開關(guān)。
定時(shí)器的輸入時(shí)鐘=PCLK/(prescaler value+1)/(divider value)
prescaler value=0~255;divider value=2、4、8、16
例子:設(shè)置適當(dāng)?shù)姆诸l系數(shù),使定時(shí)器0的輸入時(shí)鐘為62.5kHz
假如PCLK為50MHz,則50MHz/62.5kHz=800,可以是第一級(jí)分頻系數(shù)為100,第2級(jí)的分頻系數(shù)為8即可滿足要求。
rTCFG0 &= ~(0xFF);
rTCFG0 |=99;
rTCFG1 &=~(0xf);
rTCFG1 |=0x02;
總體思路是先將這幾位清零,然后將數(shù)據(jù)寫入這幾位。
WATCHDOG定時(shí)器可以像16位定時(shí)器一樣用于產(chǎn)生周期性的中斷,也可以用于發(fā)出復(fù)位信號(hào)以重啟失常的系統(tǒng)。
評(píng)論