Board logo

标题: PLL设置问题,要倍频该如何设置? [打印本页]

作者: ky3453079    时间: 2006-9-20 17:47     标题: PLL设置问题,要倍频该如何设置?

用PLL进行倍频该如何设置,以下是自己写的代码,没起到倍频的作用,该如何改?


  SYNR = 0;
  REFDV = 15;
  PLLCTL_PLLON = 1;
  while (!(CRGFLG & 0x08));  //等待时钟频率已稳定锁相环频率已锁定
  CLKSEL=0x80;        //选定所相环时钟


程序执行到while (!(CRGFLG & 0x08));就出不去了,好象是LOCK没锁定。晶振11.0592M。


作者: strongchen    时间: 2006-9-21 09:45

什么芯片?
作者: ky3453079    时间: 2006-9-21 10:26

HC12系列的,MC9S12A512
作者: ky3453079    时间: 2006-9-21 17:56

谢谢斑竹!!那个SYNR不能为0,为0就死在while(!CRGFLG_LOCK) {};
作者: strongchen    时间: 2006-9-22 12:25

SYNR应该是可以为0的。
作者: strongchen    时间: 2006-9-22 12:26

CLKSEL = 0; /* Select clock source from XTAL and set bits in CLKSEL reg. */
/* PLLCTL: PLLON=0 */
PLLCTL &= 0x40; /* Disable the PLL */
/* SYNR: ??=0,??=0,SYN5=0,SYN4=0,SYN3=0,SYN2=0,SYN1=0,SYN0=1 */
SYNR = 1; /* Set the multiplier register */
/* REFDV: ??=0,??=0,??=0,??=0,REFDV3=0,REFDV2=0,REFDV1=0,REFDV0=0 */
REFDV = 0; /* Set the divider register */
/* PLLCTL: CME=0,PLLON=1,AUTO=1,ACQ=1,??=0,PRE=0,PCE=0,SCME=0 */
PLLCTL = 0x70;
while(!CRGFLG_LOCK) {}; /* Wait */
/* CLKSEL: PLLSEL=1 */
CLKSEL = 0x80; /* Select clock source from PLL */

//此时PLL的输出频率为44.2368,总线频率为22.1184。

[此贴子已经被strongchen于2006-9-22 12:26:40编辑过]


作者: fjczd    时间: 2009-2-5 17:14

还是觉得老大的有道理,应该可以为0






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0