智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5051|回复: 13
打印 上一主题 下一主题

PLL模块初始化的疑问!

  [复制链接]

4

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
582
威望
245
贡献
319
兑换币
0
注册时间
2011-1-9
在线时间
9 小时
跳转到指定楼层
1#
发表于 2011-2-28 14:35:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void PLL_Init(void){
   REFDV=0x01;                  
   SYNR =0x02;                     
   while(CRGFLG_LOCK==1)
   CLKSEL=0X08;
   
                             }

外部晶振16MHZ,欲得到24MHZ的总线时钟,为什么用以上的程序却得不到呢?

27

主题

420

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4823
QQ
威望
2464
贡献
1341
兑换币
929
注册时间
2010-12-25
在线时间
509 小时
2#
发表于 2011-2-28 16:03:04 | 只看该作者
PLLCTL_PLLON=1;   // turn on PLL
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
582
威望
245
贡献
319
兑换币
0
注册时间
2011-1-9
在线时间
9 小时
3#
 楼主| 发表于 2011-2-28 16:34:01 | 只看该作者
回复 2# tju_speed


    感谢你的回复,但是还是不行。
回复 支持 反对

使用道具 举报

8

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
QQ
威望
304
贡献
74
兑换币
17
注册时间
2011-2-27
在线时间
18 小时
4#
发表于 2011-2-28 19:11:00 | 只看该作者
在写分频值之前先关闭PLL
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
582
威望
245
贡献
319
兑换币
0
注册时间
2011-1-9
在线时间
9 小时
5#
 楼主| 发表于 2011-3-1 15:13:47 | 只看该作者
回复 4# einy1983


    谢谢你的回复,但是好像还是不行。不知道是什么原因!
回复 支持 反对

使用道具 举报

7

主题

54

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1730
QQ
威望
280
贡献
1380
兑换币
0
注册时间
2011-3-2
在线时间
35 小时
6#
发表于 2011-3-3 21:15:40 | 只看该作者
while ((CRGFLG&0x08)==0);
CLKSEL|=0x80;
回复 支持 反对

使用道具 举报

7

主题

77

帖子

0

精华

高级会员

Rank: 4

积分
811
QQ
威望
338
贡献
71
兑换币
0
注册时间
2010-3-5
在线时间
201 小时
7#
发表于 2011-3-6 21:56:00 | 只看该作者
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;
}
回复 支持 反对

使用道具 举报

9

主题

86

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1723
QQ
威望
349
贡献
1278
兑换币
10
注册时间
2010-11-15
在线时间
48 小时
8#
发表于 2011-4-11 16:40:07 | 只看该作者
楼上的好像是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;
}
回复 支持 反对

使用道具 举报

2

主题

93

帖子

0

精华

高级会员

Rank: 4

积分
706
威望
448
贡献
194
兑换币
6
注册时间
2010-12-26
在线时间
32 小时
9#
发表于 2011-4-18 19:47:41 | 只看该作者
楼上的不对吧
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;          //把锁相环写入系统        
}
回复 支持 反对

使用道具 举报

2

主题

93

帖子

0

精华

高级会员

Rank: 4

积分
706
威望
448
贡献
194
兑换币
6
注册时间
2010-12-26
在线时间
32 小时
10#
发表于 2011-4-18 19:51:21 | 只看该作者
不好意思,额错了
8楼正解
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-22 09:12 , Processed in 0.380487 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表