您的位置:首页 > Web前端

飞思卡尔单片机PLL时钟总线模块

2010-11-01 16:38 573 查看
要设定PWM模块首先要确定片内总线时钟,MC9S12XS系列单片机增加了时钟产生器模块,锁定内部频率更高的压控振荡器VCO频率,作为系统时钟,单片机的内部时钟可达80MHz,片内总线时钟可达40MHz。
 

 先给出一段例程

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)
 

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 * ( SYNR+1 ) / ( REFDV+1 )
 
 
 
 
 
 
(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为选定锁相环时钟。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  reference