飞思卡尔单片机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寄存器的高两位REFFRQ[
1:0 ]表示参考时钟范围
REFDV的低六位为分频因子REFDV的值,有效值的范围为0~63.
(2)时钟合成寄存器(CRG
Synthesizer Register , SYNR)
SYNR高两位控制压控振动器VCO的增益
SYNR寄存器的低六位可写入0~63.可将锁相环时钟倍频1~64倍。
锁相环产生的时钟频率可由下面的公式得到
PLLCLK=2 * OSCCLK * ( SYNR+1 ) / ( REFDV+1 )
(3)锁相环寄存器(PLL
Control Register , PLLCTL)
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 )
LOCK:锁相环频率锁定标志,为1表示时钟频率已稳定,锁相环频率已锁定。
(5)时钟选择寄存器(Clock
Select Register , CLKSEL)
PLLSEL:选定锁相环(PLL
Select)位,置1为选定锁相环时钟。
先给出一段例程
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 |
VCOFRQ1 | VCOFRQ0 | VOC频率 |
0 | 0 | 默认,32~48MHz |
0 | 1 | 48~80MHz |
1 | 0 | 冗余 |
1 | 1 | 80~120MHz |
锁相环产生的时钟频率可由下面的公式得到
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 |
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为选定锁相环时钟。
相关文章推荐
- 飞思卡尔单片机PWM模块分析(2)
- 飞思卡尔S9s12G128 PLL时钟配置
- 单片机总线时钟粗略计算
- 【程序】STM32L476RG单片机用寄存器通过PLL将MSI时钟倍频到72MHz并设为系统时钟
- 飞思卡尔单片机DZ60---时钟初始化
- 单片机控制单总线协议DS18B20之模块编程(持续更新中)
- 【手把手教你做智能车】第四节-MCG模块设置单片机的各个时钟
- 飞思卡尔单片机PWM模块分析(3)
- 带PLL的全局时钟管理模块
- 飞思卡尔单片机PWM模块分析(1)
- 飞思卡尔单片机 时钟初始化及配置
- 100脚的STM32F103VE单片机通过FSMC接口读写DS12C887时钟芯片中的寄存器
- 基于STC15F2K08S2单片机和JDY-10蓝牙模块的串行通信
- 单片机 IIC 总线协议 和 详细例程
- C语言编程:8051单片机系统的时钟为11.0592MHz,把0~99从串行口输出
- 单片机时钟程序(2)control.c
- stm32单片机时钟理解
- 单片机时钟程序(7)key.h
- 430的时钟模块介绍
- 对I2C总线的时钟同步和总线仲裁的深入理解