飞思卡尔单片机PLL时钟总线模块
Code:
- 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为选定锁相环时钟。
飞思卡尔单片机PLL时钟总线模 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)