飞思卡尔单片机PLL时钟总线模块
- REFDV=0x07;
//REFDIV=7 - SYNR=0x53;
//SYNDIV=19 - while(LOCK!=1);
//等待VCO稳定 - POSTDIV=0;
//POSTDIV=0,VCO时钟=80MHz - CLKSEL_PLLSEL=1;
//选择由Fpll产生总线时钟,Fbus=Fpll/2=40MHz
注:LOCK之前省去了寄存器名,这里是屏蔽不给发出来。
下面开始简单分析一下寄存器
(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.可将锁相环时钟倍频1~64倍。
锁相环产生的时钟频率可由下面的公式得到
PLLCLK=2 * OSCCLK
(3)锁相环寄存器(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:时钟监控允许位。
PLLON:锁相环电路允许位。
FM [ 1 : 0 ]:选择附加调频滤波器以降低VCO噪声,默认值表示不使用该滤波器,可写入01,10或11,表示参考频率相对于VCO偏高1%,2%,4%时自动调整。
FSTWKP:时钟快速唤醒CPU功能位。
PRE:CPU伪停止状态时,实时中断(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:锁相环频率锁定标志,为1表示时钟频率已稳定,锁相环频率已锁定。
(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:选定锁相环(PLL Select)位,置1为选定锁相环时钟。
评论