2057|1

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

怎样只用一个XT2晶振得到精确的高频----msp430f5529单片机 [复制链接]

用msp430f5529,终于在上周弄清了时钟方面的原理,在此记录下,
首先呢,先插入它的原理框图

        从图中可以看出ACLK、SMCLK、MCLK都可以由XT1CLK/VLOCLK/REFOCLK/DCOCLK/DCOCLKDIV/XT2CLK得到,而TI例程里面给的大多是由FLLREFCLK倍频得到DCOCLK或DCOCLK,从而得到SMCLK和MCLK,而ACLK都是由XT1CLK或REFOCLK直接获得。例程里面的FLLREFCLK来源于XT1CLK或REFOCLK。所以例程里面得到的高频都是经过大的倍频得到,这里面有个弊端,就是如果你需要很精确的频率的话由大的倍频得到的频道误差大。
        这里呢我就讲下怎么只用一个高频晶振得到ACLK/SMCLK/MCLK,我得先抱怨下,不知道哪位前辈在网上说430单片机如果只用一个晶振的话只能用低频晶振,这个理论我纠结了很久,终于证明了是错的,至少在msp430f5529里面是错的。言归正传,我只用了XT2,没有用XT1。由XT2得到XT2CLK=4MHz,然后将XT2CLK作为FLLREFCLK的时钟源,也就是FLLREFCLK现在是4MHZ了,不是32khz了。通过下面的公式得到DCOCLK:
f(DCOCLK)=D*(N+1)*(f(FLLREFCLK)/n)
默认情况下,D=2,n=1,N是自己随意配置的整数。这里我要得到DCLCLK=16MHZ,我取的是D=16,N=1,n=8,当然你可以自己计算,不限于这个值。由DCOCLK/D=DCOCLKDIV,最终由DCOCLKDIV分频得到ACLK=31.5khz,当然跟32khz相差还挺大的,我也没有办法了。
        另外也要扩大DCO倍频的赔率范围,5529数据手册上有指示的。特别要注意的是,这里你千万不能打开XT1,会出错的。
        最后,我帖上我的的程序,已经验证过了完全正确的
P1DIR |= BIT0;
P1SEL |= BIT0;              //可以看ACLK的频率
P2DIR |= BIT2;
P2SEL |= BIT2;             //SMCLK
P7DIR |= BIT7;
P7SEL |= BIT7;             //MCLK

P5SEL |= BIT2+BIT3;
UCSCTL6 &= ~XT2OFF;          //打开XT2
/*********************寄存器配置部分******************************/
__bis_SR_register(SCG0);
UCSCTL0 = DCO0+DCO1+DCO2+DCO3+DCO4;
UCSCTL1 = DCORSEL_4;       //DCO频率范围在28.2MHZ以下
UCSCTL2 = FLLD_4 + 1;       //D=16,N=1
UCSCTL3 = SELREF_5 + FLLREFDIV_3;    //n=8,FLLREFCLK时钟源为XT2CLK;DCOCLK=D*(N+1)*(FLLREFCLK/n);DCOCLKDIV=(N+1)*(FLLREFCLK/n);
UCSCTL4 = SELA_4 + SELS_3 +SELM_3;    //ACLK的时钟源为DCOCLKDIV,MCLK\SMCLK的时钟源为DCOCLK
UCSCTL5 = DIVA_5 +DIVS_1;      //ACLK由DCOCLKDIV的32分频得到,SMCLK由DCOCLK的2分频得到
             //最终MCLK:16MHZ,SMCLK:8MHZ,ACLK:32KHZ

__bic_SR_register(SCG0);                   //Enable the FLL control loop
/**********************************************************************/
__delay_cycles(8192);
do
{
  UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); //Clear XT2,XT1,DCO fault flags
  SFRIFG1 &= ~OFIFG;       //Clear fault flags
}while (SFRIFG1&OFIFG);

最新回复

只用一个晶振的话,一般都是用主频,即高频的那颗。 当然主频和时钟两颗一起用效果会更好些。  详情 回复 发表于 2017-12-23 16:23
 
点赞 关注

回复
举报

7

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
只用一个晶振的话,一般都是用主频,即高频的那颗。 当然主频和时钟两颗一起用效果会更好些。
 
个人签名日本KDS晶振授权代理商!18075150919 QQ2336913252
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表