飛思卡爾單片機PLL時鐘總線模塊
- REFDV=0x07;
//REFDIV=7 - SYNR=0x53;
//SYNDIV=19 - while(LOCK!=1);
//等待VCO穩(wěn)定 - POSTDIV=0;
//POSTDIV=0,VCO時鐘=80MHz - CLKSEL_PLLSEL=1;
//選擇由Fpll產生總線時鐘,F(xiàn)bus=Fpll/2=40MHz
注:LOCK之前省去了寄存器名,這里是屏蔽不給發(fā)出來。
下面開始簡單分析一下寄存器
(1)時鐘分頻寄存器(CRG Reference Divider Register
REFDV | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
REFFRQ1 | REFFRQ0 | REFDV5 | REFDV4 | REFDV3 | REFDV2 | REFDV1 | REFDV0 | |
復位時: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
REFDV寄存器的高兩位REFFRQ[ 1:0 ]表示參考時鐘范圍
REFFRQ1 | REFFRQ0 | 參考時鐘范圍 |
0 | 0 | 1~2MHz(默認) |
0 | 1 | 2~6MHz |
1 | 0 | 6~12MHz |
1 | 1 | 大于12MHz |
REFDV的低六位為分頻因子REFDV的值,有效值的范圍為0~63.
(2)時鐘合成寄存器(CRG Synthesizer Register , SYNR)
SYNR | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
VCOFRQ1 | VCOFRQ0 | SYNR5 | SYNR4 | SYNR3 | SYNR2 | SYNR1 | SYNR0 | |
復位時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
SYNR高兩位控制壓控振動器VCO的增益
VCOFRQ1 | VCOFRQ0 | VOC頻率 |
0 | 0 | 默認,32~48MHz |
0 | 1 | 48~80MHz |
1 | 0 | 冗余 |
1 | 1 | 80~120MHz |
SYNR寄存器的低六位可寫入0~63.可將鎖相環(huán)時鐘倍頻1~64倍。
鎖相環(huán)產生的時鐘頻率可由下面的公式得到
PLLCLK=2 * OSCCLK
(3)鎖相環(huán)寄存器(PLL Control Register , PLLCTL)
PLLCTL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
CME | PLLON | FM1 | FM0 | PSTWKP | PRE | PCE | SCME | |
復位時: | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
CME:時鐘監(jiān)控允許位。
PLLON:鎖相環(huán)電路允許位。
FM [ 1 : 0 ]:選擇附加調頻濾波器以降低VCO噪聲,默認值表示不使用該濾波器,可寫入01,10或11,表示參考頻率相對于VCO偏高1%,2%,4%時自動調整。
FSTWKP:時鐘快速喚醒CPU功能位。
PRE:CPU偽停止狀態(tài)時,實時中斷(RT1)允許位。
PCE:CPU虛擬停止時,看門狗(COP)允許位。
SCEM:自時鐘方式允許位,默認為1,探測到外部晶振停振時進入自時鐘模式,為0時,禁止自時鐘模式,探測到外部晶振停振時復位。
(4)時鐘產生標志寄存器(CRG Flag Register
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | |
RTIF | PORF | LVRF | LOCKIF | LOCK | ILAF | SCMIF | SCM | |
復位時: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
LOCK:鎖相環(huán)頻率鎖定標志,為1表示時鐘頻率已穩(wěn)定,鎖相環(huán)頻率已鎖定。
(5)時鐘選擇寄存器(Clock Select Register , CLKSEL)
CLKSEL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
PLLSEL | PSTF | SYSWA | ROAWA | PLLWAI | CWA | RTIWA | COPWA | |
復位時: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PLLSEL:選定鎖相環(huán)(PLL Select)位,置1為選定鎖相環(huán)時鐘。
評論