智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1581|回复: 6
打印 上一主题 下一主题

[调试类] 锁相环计算

[复制链接]

5

主题

17

帖子

0

精华

注册会员

Rank: 2

积分
150
QQ
威望
86
贡献
40
兑换币
46
注册时间
2016-2-5
在线时间
12 小时
毕业学校
安徽工业大学
跳转到指定楼层
1#
发表于 2016-3-20 16:09:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
像锁相环的这种计算是怎么具体算出来的
void PLL_Init(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(!(CRGFLG_LOCK==1));                  //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;                                //engage PLL to system;

}  

PKKCLOCK的数值具体是怎么出来的,怎么乘出160的。。。
回复

使用道具 举报

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
威望
192
贡献
111
兑换币
115
注册时间
2015-8-26
在线时间
35 小时
毕业学校
安徽工业大学
推荐
发表于 2016-3-31 11:15:12 | 只看该作者

哈哈 同样是小白 互相支持吧
回复 支持 1 反对 0

使用道具 举报

49

主题

3751

帖子

1

精华

顶级版主

Rank: 11Rank: 11Rank: 11Rank: 11

积分
27948

资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章技术大牛奖章

威望
10632
贡献
10964
兑换币
4564
注册时间
2010-11-23
在线时间
3176 小时
2#
发表于 2016-3-20 23:05:41 | 只看该作者
后面公式都有,还有哪里不明白?
回复 支持 反对

使用道具 举报

5

主题

17

帖子

0

精华

注册会员

Rank: 2

积分
150
QQ
威望
86
贡献
40
兑换币
46
注册时间
2016-2-5
在线时间
12 小时
毕业学校
安徽工业大学
3#
 楼主| 发表于 2016-3-27 21:41:00 | 只看该作者
turf456 发表于 2016-3-20 23:05
后面公式都有,还有哪里不明白?

额,就是根据公式算不出来,那些什么80,32,可奇怪了
回复 支持 反对

使用道具 举报

49

主题

3751

帖子

1

精华

顶级版主

Rank: 11Rank: 11Rank: 11Rank: 11

积分
27948

资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章技术大牛奖章

威望
10632
贡献
10964
兑换币
4564
注册时间
2010-11-23
在线时间
3176 小时
4#
发表于 2016-3-28 18:26:22 | 只看该作者
80 32?咋得出来的
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
威望
192
贡献
111
兑换币
115
注册时间
2015-8-26
在线时间
35 小时
毕业学校
安徽工业大学
5#
发表于 2016-3-29 12:34:26 | 只看该作者
pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz;这一句中的  osc==16M(128),SYNR就是“SYNR =0xc0 | 0x09;  ”中的0x09,REFDV就是 “  REFDV=0x80 | 0x01; ”中的0x01,“|”前面的东西是PLL寄存器 不改的话 你就不用管 所以 pll clock ==2*16*(1+9)/(1+1)==160M,bus clock 为pll clock的一半
回复 支持 反对

使用道具 举报

5

主题

17

帖子

0

精华

注册会员

Rank: 2

积分
150
QQ
威望
86
贡献
40
兑换币
46
注册时间
2016-2-5
在线时间
12 小时
毕业学校
安徽工业大学
6#
 楼主| 发表于 2016-3-29 16:47:44 | 只看该作者
想飞的猪 发表于 2016-3-29 12:34
pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz;这一句中的  osc==16M(128),SYNR就是“SYNR =0xc0 | 0x09;   ...

谢谢啦~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 03:35 , Processed in 0.049295 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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