智能车制作

标题: PLL模块初始化的疑问! [打印本页]

作者: ybzf912    时间: 2011-2-28 14:35
标题: PLL模块初始化的疑问!
void PLL_Init(void){
   REFDV=0x01;                  
   SYNR =0x02;                     
   while(CRGFLG_LOCK==1)
   CLKSEL=0X08;
   
                             }

外部晶振16MHZ,欲得到24MHZ的总线时钟,为什么用以上的程序却得不到呢?
作者: tju_speed    时间: 2011-2-28 16:03
PLLCTL_PLLON=1;   // turn on PLL
作者: ybzf912    时间: 2011-2-28 16:34
回复 2# tju_speed


    感谢你的回复,但是还是不行。
作者: einy1983    时间: 2011-2-28 19:11
在写分频值之前先关闭PLL
作者: ybzf912    时间: 2011-3-1 15:13
回复 4# einy1983


    谢谢你的回复,但是好像还是不行。不知道是什么原因!
作者: zcs131458    时间: 2011-3-3 21:15
while ((CRGFLG&0x08)==0);
CLKSEL|=0x80;
作者: guowenzhi    时间: 2011-3-6 21:56
void Init_pll(void)
{   
    CLKSEL = 0X00;                      //disengage PLL to system
    PLLCTL_PLLON = 1;                   //turn on PLL
    SYNR = 4;         
    REFDV=1 ;                           //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;                  //engage PLL to system;
}
作者: pangyuo    时间: 2011-4-11 16:40
楼上的好像是40M吧
void PLL_init(void)
{   
    CLKSEL=0X00;      //disengage PLL to system
    PLLCTL_PLLON=1;   //turn on PLL
    SYNR=0x00|0x02;         
    REFDV=0x00|0x01;          //pllclock=2*osc*(1+SYNR)/(1+REFDV)=48MHz;
    _asm(nop);        //BUS CLOCK=24M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;          //engage PLL to system;
}
作者: wanbei    时间: 2011-4-18 19:47
楼上的不对吧
void Init_pll(void)
{
    CLKSEL = 0X00;              //使能锁相环      
    PLLCTL_PLLON = 1;           //打开锁相环                  
    SYNR = 2;
    REFDV=3 ;                   //锁相环时钟=2*16*(1+SYNR)/(1+R)
    _asm(nop);                                                                                       
    _asm(nop);                  //总线时钟=20M                 
    while(!(CRGFLG_LOCK == 1)); //等待锁相环稳定为1时
    CLKSEL_PLLSEL = 1;          //把锁相环写入系统        
}
作者: wanbei    时间: 2011-4-18 19:51
不好意思,额错了
8楼正解
作者: 早安,徐威    时间: 2012-11-27 11:07
8楼好帅啊
作者: willkong    时间: 2013-1-17 14:03
本帖最后由 willkong 于 2013-1-17 14:05 编辑

/***************************************************
** 函数名称: PLL_Init
** 功能描述: 时钟初始化函数设置总线频率为24MHz,晶振频率16MHz
** designer by willkong
****************************************************/
void PLL_Init(void)
{
CLKSEL=0x00; //24mhz
PLLCTL_PLLON=1;
SYNR=0X00 | 0X02;
REFDV=0X80 | 0X01;
POSTDIV=0X00;
_asm(nop);
_asm(nop);
while(0==CRGFLG_LOCK);//锁相环锁定
CLKSEL_PLLSEL=1;//选定外部时钟
}
/***************************************************
这是我写的代码,希望对你有帮助!!
作者: 飞龙再生    时间: 2013-1-17 16:29

作者: dlyt03    时间: 2013-1-18 13:04
学习下




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2