智能车制作
标题:
谈谈个人对XS128上锁相环、频率的一些见解,抛砖引玉
[打印本页]
作者:
lsa4100
时间:
2010-10-29 12:33
标题:
谈谈个人对XS128上锁相环、频率的一些见解,抛砖引玉
OSC、FOSC、OSCCLK:我认为这三者一样,是振荡器频率,即是我们外加晶振频率
SYNR 时钟合成寄存器
VCOFRQ[7:6]:不知道,跪求高人解答!!!
SYNDIV[5:0]:不知道,跪求高人解答!!!
REFDV时钟分频寄存器
REFFRQ[7:6]:不知道,跪求高人解答
REFDIV[5:0]:不知道,跪求高人解答
FVCO:应该是系统频率(有错请更正)
FPLL、PLLCLK:我认为是一样的,即锁相环频率
FBUS、Bus Clock:我认为是一样的,即总线频率
POSTDIV:貌似是分频控制,应该是控制FVCO和PLLCLK的分频比,一般设置为0,这时FPLL= FVCO/1=FVCO
初步设想:
1、FVCO= 2*FOSC*(SYNDIV + 1)/(REFDIV + 1),我认为OSC、FOSC、OSCCLK都是一样的,即晶振频率
2、FPLL= FVCO/(2 × POSTDIV),FPLL应该和PLLCLK一样,都是锁相环频率,POSTDIV等于0时默认为分子为1,即FPLL= FVCO/1=FVCO
3、FBUS= FPLL/2,FBUS为总线时钟频率
所以综合起来就有:FBUS=[2*FOSC*(SYNDIV + 1)/(REFDIV + 1)]/2=FOSC*(SYNDIV + 1)/(REFDIV + 1)
再看看龙丘80MHz的超频源代码
void SetBusCLK_80M(void)
{
CLKSEL=0X00; //disengage PLL to system
PLLCTL_PLLON=1; //开启锁相环
SYNR =0xC0 | 0x09; //我理解,SYNR只是低6位有效,所以经过运算后SYNR=9
REFDV=0x80 | 0x01; //我理解,REFDV只是低4位有效,所以经过运算后REFDV=1
POSTDIV=0x00; //POSTDIV=0x00=0,则FPLL=FVCO=PLLCLK,所以PLLCLK=FVCO=2*16*(1+9)/(1+1)=160MHz;
_asm(nop); //所以总线时钟BUS CLOCK=PLLCLK/2=80MHz
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
}
好了,个人意见发表完毕,有错误的请更正,别扔砖头哈
砖头我自己仍就行了
作者:
小当
时间:
2010-10-29 13:32
本帖最后由 小当 于 2010-10-29 13:47 编辑
synr和refdv都是低6位来设定所要超的频率,其高2位是根据你要超的频率来配置,通过合理的配置VCOFRQ,REFFRQ来提高系统时钟稳定性。具体可以看DATASHEET,如下图:[attach]3453[/attach]Page239[attach]3454[/attach]Page240
SYNR =0xC0 | 0x09; //VCOFRQ[7:6]=0b11;SYNDIV[5:0]=0b001001
REFDV=0x80 | 0x01; //REFFRQ[7:6]=0b10;REFDIV[5:0]=0b000001
如:fREF=fOSC/(REFDIV + 1)=16/(1+1)=8;所以6MHz < fREF <= 12MHz REFFRQ[7:6]为10
明白了吗?
作者:
lsa4100
时间:
2010-10-29 15:34
回复
2#
小当
不好意思,由于英文文档看不太明白,再次问些问题:
1、你刚才说“如:fREF=fOSC/(REFDIV + 1)=16/(1+1)=8;所以6MHz < fREF <= 12MHz REFFRQ[7:6]为10
明白了吗”,我纳闷fREF和我想要超到的频率有什么关系呢
2、你还说“synr和refdv都是低6位来设定所要超的频率,其高2位是根据你要超的频率来配置,通过合理的配置VCOFRQ,REFFRQ来提高系统时钟稳定性”,麻烦解释下VCOFRQ、REFFRQ和系统稳定性的关系,以及怎么样设置VCOFRQ,REFFRQ提高系统稳定性!
谢谢了
作者:
小当
时间:
2010-10-29 21:15
回复
3#
lsa4100
再多的解释也比不过自己把DATASHEET看明白,去官网下,所在的页码我已经告诉你了。
作者:
vgonlan
时间:
2011-2-10 21:07
明白了,谢谢二楼,谢谢楼主。
作者:
lsa4100
时间:
2011-3-6 13:35
回复
5#
vgonlan
共同学习
作者:
s614857575
时间:
2011-3-21 15:36
啊,谢谢啦
作者:
zhjb1
时间:
2011-3-23 20:07
很容易看明白的,例如VCOFRQ[7:6]——表示XXXX寄存器中的高2位7,6,代表VCOFRQ功能设置的数据;SYNDIV[5:0]——表示XXXX寄存器中的低6位5,4,3,2,1,0,代表SYNDIV功能的设置参数。几乎所有厂家单片机的说明都是这样标示的。
作者:
lsa4100
时间:
2011-3-26 16:13
回复
8#
zhjb1
谢谢 我自己再体会下
作者:
野人LG
时间:
2011-4-1 13:13
终于明白啦。。。谢谢大家
作者:
lsa4100
时间:
2011-4-2 18:14
回复
10#
野人LG
呵呵 论坛就是个学习的地方啊
作者:
z1yxyq2008
时间:
2011-4-3 22:52
号啊
作者:
pangyuo
时间:
2011-4-9 14:02
不甚了解 关注中
作者:
popkaka
时间:
2011-4-9 20:29
看看资料吧
作者:
gzc581
时间:
2011-4-15 00:20
回复
8#
zhjb1
还是不太懂括号里的内容,您能再解释下[x:x]的意义吗?
作者:
zhjb1
时间:
2011-4-15 19:39
[7:6]表示这个寄存器的高7,6位的设置——相当于0bxxnnnnnn,[5:0]表示这个寄存器的低5~0位的设置——相当于0bnnxxxxxx。
x是设置位,n不是此参数的设置位
作者:
lsa4100
时间:
2011-4-17 09:13
回复
16#
zhjb1
作者:
剑皇1234
时间:
2011-4-17 20:35
给力 解决了我的问题
作者:
gzc581
时间:
2011-4-19 00:07
回复
16#
zhjb1
谢谢啦,这下很明白了
作者:
junjun1990
时间:
2011-4-21 08:51
正想了解这方面的问题呢
作者:
周江民1990
时间:
2011-5-16 01:47
好啊!!!
作者:
lsa4100
时间:
2011-5-16 17:55
回复
21#
周江民1990
作者:
zhu_xuekui
时间:
2011-11-7 22:54
明白了,谢谢。。。。。
作者:
561609030
时间:
2011-11-10 21:00
作者:
lsa4100
时间:
2011-11-10 21:35
回复
24#
561609030
什么情况?
作者:
longhunlanxue
时间:
2011-11-20 15:56
有群不?
作者:
lsa4100
时间:
2011-11-20 16:39
回复
26#
longhunlanxue
群?我木有,你自己在论坛找找。我就快毕业了不搞那玩意了
作者:
longhunlanxue
时间:
2011-11-20 16:45
回复
27#
lsa4100
作者:
聪狼
时间:
2011-11-26 10:10
和楼主有同样的问题,问一下,楼主是怎么解决的
作者:
清明
时间:
2011-11-27 19:11
作者:
落叶霖
时间:
2011-11-28 18:49
fvco是压控振荡器最终输出的频率,也就是你最终要得到频率,要根据这个设定高二位,而低六位则对应于锁相环中的分频器分频系数,只有这两个都设置合理才能使得始终稳定[img][img][/img][/img]
作者:
lsa4100
时间:
2011-11-28 21:35
回复
29#
聪狼
后面马马虎虎理解了,就没再去钻研。反正能稳定超到所需要的频率就行
作者:
聪狼
时间:
2011-11-29 18:34
回复
32#
lsa4100
我也是
作者:
yaozhifeng
时间:
2012-2-6 10:01
PLL初始化应该很简单啊
作者:
x_yang1989723
时间:
2012-2-9 13:26
有楼主这种探索精神,加上二楼的详细解答,很感谢,我们这些新手学习了,也懂了,顶起!!!
作者:
李帅李帅
时间:
2012-2-29 16:39
:):)
作者:
映水云
时间:
2012-3-4 10:14
好强,终于弄明白了,哈哈,多谢!
作者:
guoshunkai521
时间:
2012-4-9 22:04
慢慢理解!
作者:
shhu1993
时间:
2013-3-21 09:30
解决了,谢谢,
作者:
dlyt03
时间:
2013-3-22 10:04
多谢指点
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2