




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通俗点说,设置PLL锁相环就相当于超频,单片机超频的原因和PC机是一个道理。 分频的主要原因是外设需要的工作频率往往远低于CPU/MEMORY,这也和PC机南北桥的原理类似。相对来说,PLL锁相环的设置还是比较简单的,因为东西很死,完全可以照搬。只是大家也不要太贪,设置太高相对来说不够稳定,进行过PC机超频的应该很有体会,一般我们现在用的XS128我觉得设置在80MHz是比较合适的,相比前几届比赛用的DG128,这个频率已经蛮高的了。还有就是SYNR,REFDV只有在CLKSEL_PLLSEL=0的情况下才能写入,不过这是系统默认状态。多半大家可能还会有以下几点疑问:1.PLL锁相环怎么设置?
2、答:通过写REFDV(CRG参考分频寄存器)和SYNR(CRG合成器寄存器)进行设置2.代码里while(!CRGFLG_LOCK);这句是干什么的?答:时钟校正同步3.为什么代码中会有多多少少的几句空语句?答:锁相环从设定到最后稳定还是需要一点点时间的,所以需要加几条空指令 /* - Code Warrior 5.0 Target : MC9S12XS128 Crystal: 16.000Mhz = 本程序主要包括以下功能: 设定系统工作在xxMHZ bus clock时钟下; by:庞辉 */ #include /* common defines and macros*/ #include
3、 /* derivative information*/ #pragma LINK_INFO DERIVATIVE mc9s12xs128 void SetBusCLK_16M(void) CLKSEL=0X00; / disengage PLL to system PLLCTL_PLLON=1; / turn on PLL SYNR=0x00 | 0x01; / VCOFRQ7:6;SYNDIV5:0 / fVCO= 2*fOSC*(SYNDIV + 1)/(REFDIV + 1) / fPLL= fVCO/(2 POSTDIV) / fBUS= fPLL/2 / VCOCLK Freque
4、ncy Ranges VCOFRQ7:6 / 32MHz = fVCO = 48MHz 00 / 48MHz fVCO = 80MHz 01 / Reserved 10 / 80MHz fVCO = 120MHz 11 REFDV=0x80 | 0x01; / REFFRQ7:6;REFDIV5:0 / fREF=fOSC/(REFDIV + 1) / REFCLK Frequency Ranges REFFRQ7:6 / 1MHz = fREF = 2MHz 00 / 2MHz fREF = 6MHz 01 / 6MHz fREF 12MHz 11 / pllclock=2*osc*(1+S
5、YNR)/(1+REFDV)=32MHz; POSTDIV=0x00; / 4:0, fPLL= fVCO/(2xPOSTDIV) / If POSTDIV = $00 then fPLL is identical to fVCO (divide by one). _asm(nop); / BUS CLOCK=16M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; void SetBusCLK_32M(void) CLKSE
6、L=0X00; / disengage PLL to system PLLCTL_PLLON=1; / turn on PLL SYNR =0x40 | 0x03; / pllclock=2*osc*(1+SYNR)/(1+REFDV)=64MHz; REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); / BUS CLOCK=32M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; void
7、 SetBusCLK_40M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x04; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=80MHz; _asm(nop); /BUS CLOCK=40M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /enga
8、ge PLL to system; void SetBusCLK_48M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x05; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=96MHz; _asm(nop); /BUS CLOCK=48M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; C
9、LKSEL_PLLSEL =1; /engage PLL to system; void SetBusCLK_64M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x07; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz; _asm(nop); /BUS CLOCK=64M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is
10、 steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; void SetBusCLK_80M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x09; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz; _asm(nop); /BUS CLOCK=80M _asm(nop); while(!(CRGFL
11、G_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; void SetBusCLK_88M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x0a; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=176MHz; _asm(nop); /BUS CLOCK=88M _
12、asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; void SetBusCLK_96M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x0b; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=192MHz; _asm
13、(nop); /BUS CLOCK=96M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; void SetBusCLK_104M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x0c; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR
14、)/(1+REFDV)=208MHz; _asm(nop); /BUS CLOCK=104M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; void SetBusCLK_120M(void) CLKSEL=0X00; /disengage PLL to system PLLCTL_PLLON=1; /turn on PLL SYNR =0xc0 | 0x0d; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司法与发展趋势-洞察及研究
- 大数据在行业领导者中的角色定位研究-洞察及研究
- 广电系统中的物联网设备融合-洞察及研究
- 卫星星座与地面网络协同-洞察及研究
- 断路器状态监测系统-洞察及研究
- 司帕沙星与肾功能障碍关联性分析-洞察及研究
- 2025年小学生食品安全与营养知识竞赛试题(附答案)
- 2025年铁路车站值班员职业技能(中级)考试题(附答案)
- 容错与自恢复机制-洞察及研究
- 2025年安徽省行政职业能力测验考试题库及解析答案
- 装饰工程保修单
- IInterlib区域图书馆集群管理系统-用户手册
- EnglishDrama英语戏剧写作及表演技巧课件
- DB11T 827-2019 废旧爆炸物品销毁处置安全管理规程
- 社会组织管理概论全套ppt课件(完整版)
- 轧机设备安装施工方案
- DB31∕T 926-2015 城镇供水管道水力冲洗技术规范
- (完整版)IATF16949新版过程乌龟图的编制与详解课件
- 制药企业仓库温湿度分布的验证
- 满堂脚手架工程施工方案
- LY∕T 2705-2016 樟脑磺酸
评论
0/150
提交评论