之锁相环PLL讲解_第1页
之锁相环PLL讲解_第2页
之锁相环PLL讲解_第3页
之锁相环PLL讲解_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、七月份的最后一天了,和同学聊了一下,感慨颇多。疯狂,坚持。写一下锁相环。什么是锁相环呢?MCU的支撑电路一般需要外部时钟来给MCU提供时钟信号,而外部时钟的频率可能偏低,为了使系统更加快速稳定运行,需要提升系统所需要的时钟频率。这就得用到锁相环了。例如MCU用的外部晶振是16M的无源晶振,则可以通过锁相环PLL把系统时钟倍频到24M,从而给系统提供更高的时钟信号,提高程序的运行速度。51单片机,AVR单片机内部没有锁相环电路,其系统时钟直接由外部晶振提供。而XS128内部集成了锁相环电路,其系统时钟既可由外部晶振直接提供,也可以通过锁相环倍频后提供,当然,还有由XS128内部的时钟电路来提供(

2、当其它来源提供的系统时钟不稳定时,内部时钟电路就起作用了,也就是自时钟模式)。MC9S12XS128单片机的内部时钟可达80MHZ,从而使片内总线时钟达到40MHZ(外部晶振为16MHZ)。XS系列的PLL虽然可以兼容DG系列的PLL,但其中内部是有些差异的。当然,用DG系列的PLL程序放在XS系列的芯片中,也是可以运行的,就是上面说的,XS系列的PLL兼容DG系列的PLL。现在介绍一下XS系列中PLL用到的个别寄存器,及要注意的一些东西:1、 时钟分频寄存器REFDV:REFFRQ1:0默认值为00,表示参考时钟频率在12MHZ之间,要求的参考时钟频率与REFFRQ1:0的设置值如下表如示:

3、REFDIV5:0为分频因子REFDV的值,有效值为063。2、 时钟合成寄存器SYNR:VCOFRQ1:0控制压控振动器VCO的增益,默认值为00,VCO的频率与VCOFRQ1:0对应表如下所示:SYNDIV5:0为频率合成因子,值为063。3、 POSTDIV寄存器:若POSTDIV=0X00,则F(PLL=F(VCO。在程序中配置锁相环的步骤如下:第一、禁止总中断;第二、寄存器CLKSEL的第七位置0,即CLKSEL_PLLSEL=0。选择时钟源为外部晶振OSCCLK,在PLL程序执行前,内部总线频率为OSCCLK/2。CLKSEL_PLLSEL=0时,系统时钟由外部晶振直接提供,系统内

4、部总线频率=OSCCLK/2(OSCCLK为外部晶振频率)。CLKSEL_PLLSEL=1时,系统时钟由锁相环提供,此时系统内部总线频率=PLLCLK/2(PLLCLK为锁相环倍频后的频率)。第三、禁止锁相环PLL,即PLLCTL_PLLON=0。当PLLCTL_PLLON=0时,关闭PLL电路。当PLLCTL_PLLON=1时,打开PLL电路。第四、根据想要的时钟频率设置SYNR和REFDV以及POSTDIV(可以不管)三个寄存器。频率的计算公式上面已给出。第五、打开PLL,即PLLCTL_PLLON=1。第六、CRGFLG_LOCK位,确定PLL是否稳定。当锁相环PLL电路输出的频率达到目

5、标频率的足够小的误差范围内时,LOCK位置1,此时说明PLLCLK已经稳定,可以作为系统的时钟了。该位在正常情况下为只读位。第七、PLLCLK稳定后,允许锁相环时钟源PLLCLK为系统提供时钟,即CLKSEL_PLLSEL=1。到这里,锁相环的设置就完毕了。如果想更灵活地配置系统时钟,就还得用到下面的寄存器了,下面逐一说说:1、CRGFLG_LOCKIF 锁相环的中断标志位。当系统时钟因为稳定或不稳定而导致LOCK位(上面已提到)变化时,该位置1。此时,如果CRGINT_LOCKIE=1,则产生中断。CRGINT_LOCKIE=1时,则允许产生锁相环锁定中断。CRGINT_LOCKIE=0时,

6、则不允许。2、CLKSEL_PLLWAI是等待模式PLL停止位。当CLKSEL_PLLWAI=1时,系统进入等待模式时,锁相环PLL停止工作。当CLKSEL_PLLWAI=0时,系统进入等待模式时,锁相环PLL仍然工作。下面顺便说一下与自时钟模式相关的几个寄存器:CRGFLG_SCMIF 自时钟模式中断标志位。当SCM位变化时,该位置1。此时,如果CRGINT_SCMIE=1,则产生中断。CRGFLG_SCM 自时钟模式状态位。当晶振频率不稳定时,该位置1,系统会进入自时钟模式,系统的时钟将由自时钟模式下的时钟提供。CRGINT_SCMIE 自时钟模式中断的使能位。当CRGINT_SCMIE=

7、1时,允许产生自时钟模式中断。当CRGINT_SCMIE=0时,不能产生自时钟模式中断。PLLCTL_SCME 自时钟模式使能位。在自时钟模式下,该位不能被清0。PLLCTL_SCME=1时,晶振时钟失灵系统将强制进入自时钟模式。当PLLCTL_SCME=0时,晶振失灵将导致时钟监控器复位。下面附一条锁相环的初始化程序;void MCUInit(DISABLE_INTERRUPTS; /(1禁止总中断CLKSEL &= 0x7f; /(2CLKSEL的第7位置0,选择系统时钟源为OSCCLKPLLCTL &= 0xbf; / (3禁止PLL , PLLCTL.6(pllon设为0;先关闭PLLSYNR = 0x01; /(4根据需要的时钟频率设置SYNR和REFDV寄存器REFDV = 0x00; PLLCTL |= (1<<6; /(5打开PLL , PLLCTL.6(pllon设为1;开PLLwhile ( CRGFLG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论