历史上的今天
返回首页

历史上的今天

今天是:2025年04月18日(星期五)

正在发生

2020年04月18日 | 怎样只用一个XT2晶振得到精确的高频----msp430f5529单片机

2020-04-18 来源:eefocus

最近在用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,MCLKSMCLK的时钟源为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);

推荐阅读

史海拾趣

AXSEM公司的发展小趣事

由于AXSEM公司在电子行业的具体发展故事细节可能涉及到公司内部资料,并且不易公开获取,因此难以提供五个具体的故事。不过,可以依据公开信息,尝试概述AXSEM公司的发展概况和可能的发展故事线索。

故事一:创立与早期发展
AXSEM公司成立于2000年,自创立之初,就专注于无线射频技术的研发与创新。在创始人及团队的共同努力下,公司成功开发了多个高容量通信射频集成电路,如SigFox、EnOcean等,这些技术在当时的物联网和无线通信领域具有前瞻性。公司凭借其技术优势,逐步在市场中树立了良好的口碑,为后续的发展奠定了坚实的基础。

故事二:技术突破与市场拓展
随着无线通信技术的快速发展,AXSEM公司不断突破技术瓶颈,推出了一系列具有创新性的产品。这些产品不仅支持物联网、自动抄表、家庭自动化等领域的应用,还广泛应用于传感器网络和卫星通信市场。公司凭借这些产品,成功拓展了市场份额,实现了业务的快速增长。

故事三:战略合作与资源整合
为了进一步提升技术实力和市场竞争力,AXSEM公司积极寻求与其他企业的战略合作。通过与其他知名企业的合作,公司成功整合了资源,优化了产品线,提高了生产效率。同时,这些合作也为公司带来了更多的市场机会,推动了公司的持续发展。

故事四:国际化发展与品牌提升
随着业务的不断拓展,AXSEM公司开始将目光投向国际市场。公司积极参与国际展览和交流活动,与全球客户建立了广泛的联系。通过不断提升产品质量和服务水平,公司的品牌知名度和美誉度逐渐提升,为全球客户提供了更加优质的产品和服务。

故事五:未来展望与创新驱动
面对未来电子行业的快速发展和变革,AXSEM公司将继续坚持创新驱动的发展战略。公司将加大研发投入,不断推出具有创新性和竞争力的新产品。同时,公司还将积极拓展新的应用领域和市场,为全球客户提供更加全面和高效的解决方案。

请注意,以上仅为基于公开信息的AXSEM公司发展故事的概述,并未涉及具体的事实细节。如需了解更多关于AXSEM公司的故事,建议查阅公司官方网站、行业报告或相关新闻报道。

E-T-A Circuit Breakers公司的发展小趣事

进入21世纪后,E-T-A公司继续加大在研发和技术创新方面的投入,推出了一系列智能电路保护解决方案。这些解决方案结合了先进的传感器技术、数据分析和人工智能技术,能够实时监测电气系统的运行状态,预测潜在风险,并提供智能化的保护和控制策略。这些创新产品不仅提高了电气系统的安全性和可靠性,也为客户带来了更高的经济效益和社会效益。

HEC Inc公司的发展小趣事

1961年,E-T-A公司推出了其第一款电子式保险丝,这一创新引领了电气保护设备的新时代。这款电子式保险丝采用了可编程技术,可以根据电路需求进行精确的保护和控制。它的出现大大提高了电气系统的安全性和可靠性,并为E-T-A公司在电路保护领域奠定了坚实的基础。

Acmelux Taiwan Inc公司的发展小趣事

Acmelux Taiwan Inc公司自成立以来,一直致力于电子技术的研发与创新。早期,公司凭借一款具有独特功能的半导体产品,成功打破了市场的固有格局,赢得了众多客户的青睐。随着技术的不断迭代,Acmelux逐渐在芯片设计、封装测试等领域取得了突破,成为行业内的技术领军者。公司通过持续的研发投入,不仅巩固了现有市场地位,还积极拓展新的应用领域,为公司的长远发展奠定了坚实基础。

G-Two Inc公司的发展小趣事

背景:光伏行业技术迭代迅速,对封装材料的要求也越来越高。

发展:福斯特始终将技术创新作为企业发展的核心驱动力,不断加大研发投入,推出了一系列具有自主知识产权的新产品。例如,公司成功研发出多层共挤型POE胶膜,有效提高了光伏组件的抗PID性能和发电效率。

成果:福斯特的技术创新不仅提升了自身产品的竞争力,也推动了整个光伏行业的技术进步和产业升级。

CET Technology公司的发展小趣事

CET Technology作为电力行业的领军企业,受邀参加了2023年深圳企业创新发展大会。大会上,CET展示了其在电力系统、工业与能源等领域的最新技术成果,包括电力二次智能终端、电能管理专用工业软件等。这些产品与服务均体现了CET在电力技术领域的深厚实力和创新精神。通过参加此次大会,CET不仅与业界同行进行了深入交流,也进一步提升了公司的品牌影响力和市场竞争力。

问答坊 | AI 解惑

《基于PROTEUS的ARM虚拟开发技术》周景泰老师 PDF

《基于PROTEUS的ARM虚拟开发技术》周景泰老师 PDF…

查看全部问答>

想做一个USB的图像采集卡

我最近正在用cy7c68013+FPGA+TVP5150做一个图像采集卡,现在板子原理图刚画完,固件程序用CYPRESS提供的例程修改一下就行,就差USB的Windows驱动了,不知道谁有兴趣啊。 PS:把我画的原理图上传一下吧,请大家帮我看看有没有错误,另外,FPGA是否 ...…

查看全部问答>

MCS-51.96 系列单片机原理及应用

本书详细介绍MCS-51系列单片微型计算机的硬件结构、组成原理和指 令系统。结合应用实例简述系统的扩展和组成方法,并有较完整的应用系统例子供读者参考。书中的实用程序可为读者在研制软件时提供捷径。 本书还以相当的篇幅介绍具有串行通信接口的 ...…

查看全部问答>

入门求助:2440的EINT中断驱动

准备实现EINT中断驱动,所以参看了SMDK2440中Userkey驱动。 在Userkey.cpp文件中,有如下函数 BOOL InitInterruptThread() {     ...     KeyEvent = CreateEvent(NULL, FALSE, FALSE, NULL);      &nbs ...…

查看全部问答>

LwIP移植

    这段时间在搞一个windows下移植LwIP,操作系统模拟层已经搞定,基本架构也搭好了。收包木有问题,关键是发包(注:UDP包)的时候,通过抓包发现,lwip_sendto()之后并没有把报文发出去,只是发送了arp请求,然后等了好久tcpip_thre ...…

查看全部问答>

边沿指令的一种用途

在西门子S7-200系列中,边沿指令主要用于执行一次的情况,如若用自加指令使VW2中的数值加1,存于VW2中,不能直接使位指令I0.0接在自加指令的使能位上,,通过I0.0的置位/复位使VW2中的数值自加1,因为PLC的循环扫描周期很短,当I0.0=1时,每个扫描周 ...…

查看全部问答>

微机原理与接口技术实验

请教一个实验,微机原理与接口技术:用8255和8253让8个LED灯显示字符A到Z的ASCII码,每个字符显示两秒。写出设计原理、画电路图并编写程序…

查看全部问答>

【设计工具】Xilinx+FPGA的功耗优化设计方法

Xilinx+FPGA的功耗优化设计方法——设计人员可利用多种工具和技术来满足功率预算要求         解决方案              SOLUTION   &n ...…

查看全部问答>

ICKey平台荣获“最佳电子商务分销商”大奖

ICKey平台荣获“最佳电子商务分销商”大奖 《国际电子商情》“2012年度中国电子元器件分销商调查”活动圆满落幕,并于2012年6月6日在深圳马哥孛罗酒店举行了2012 年电子元器件分销商供应链峰会暨卓越分销商颁奖礼.上海云汉电子有限公司(IC ...…

查看全部问答>

大家分析下 这个程序中的USART接收终端为什么 没法响应

#include #include #define         F_CPU        7372800                // 单片机主频为7.3728MHz,用于延时子程序 #include #include #i ...…

查看全部问答>