历史上的今天
返回首页

历史上的今天

今天是:2025年02月22日(星期六)

2020年02月22日 | MSP430时钟倍频设置 亲测 MSP430F5529有效

2020-02-22 来源:eefocus

void initClock()

{

     UCSCTL6 &= ~XT1OFF; //启动XT1

     P5SEL |= BIT2 + BIT3; //XT2引脚功能选择

     UCSCTL6 &= ~XT2OFF;          //打开XT2

//      PMMCTL0 |=PMMPW+ PMMCOREV_3;

      PMMCTL0_H = 0xA5;                                         //开PMM电源管理

      SVSMLCTL |= SVSMLRRL_1 + SVMLE;                            //配置SVML电压

      PMMCTL0 =  PMMPW + PMMCOREV_2;                             //配置内核电压

      while((PMMIFG & SVSMLDLYIFG ) == 0);                       //等待设置完成

      PMMIFG &= ~(SVMLVLRIFG + SVMLIFG + SVSMLDLYIFG);

      if((PMMIFG & SVMLIFG) == 1)                                //判断内核电压是否上升到VSVML

            while((PMMIFG & SVMLVLRIFG) == 0);                   //如果没有等待

      SVSMLCTL &= ~SVMLE;                                        //关掉SVML模块

      PMMCTL0_H = 0X00;                                          //锁存配置

     __bis_SR_register(SCG0);

     UCSCTL0 = DCO0+DCO1+DCO2+DCO3+DCO4; //选择DCO频率区域

     UCSCTL1 = DCORSEL_5;       //DCO频率范围在28.2MHZ以下

     UCSCTL2 = FLLD_4 + 2;       //D=16,N=1    16*2*(4/8)=16

     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:24MHZ,SMCLK:12MHZ,ACLK:48KHZ


     __bic_SR_register(SCG0);                   //Enable the FLL control loop


}



void initClock()

{

     UCSCTL6 &= ~XT1OFF; //启动XT1

     P5SEL |= BIT2 + BIT3; //XT2引脚功能选择

     UCSCTL6 &= ~XT2OFF;          //打开XT2

//      PMMCTL0 |=PMMPW+ PMMCOREV_3;

     PMMCTL0_H = 0xA5;                                         //开PMM电源管理

      SVSMLCTL |= SVSMLRRL_1 + SVMLE;                            //配置SVML电压

      PMMCTL0 =  PMMPW + PMMCOREV_2;                             //配置内核电压

      while((PMMIFG & SVSMLDLYIFG ) == 0);                       //等待设置完成

      PMMIFG &= ~(SVMLVLRIFG + SVMLIFG + SVSMLDLYIFG);

      if((PMMIFG & SVMLIFG) == 1)                                //判断内核电压是否上升到VSVML

            while((PMMIFG & SVMLVLRIFG) == 0);                   //如果没有等待

      SVSMLCTL &= ~SVMLE;                                        //关掉SVML模块

      PMMCTL0_H = 0X00;                                          //锁存配置

     __bis_SR_register(SCG0);

     UCSCTL0 = DCO0+DCO1+DCO2+DCO3+DCO4; //选择DCO频率区域

     UCSCTL1 = DCORSEL_4;       //DCO频率范围在28.2MHZ以下

     UCSCTL2 = FLLD_4 +1;       //D=16,N=1    16*2*(4/8)=16

     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


}


void initClock()

{

     UCSCTL6 &= ~XT1OFF; //启动XT1

     P5SEL |= BIT2 + BIT3; //XT2引脚功能选择

     UCSCTL6 &= ~XT2OFF;          //打开XT2

     PMMCTL0_H = 0xA5;                                         //开PMM电源管理

      SVSMLCTL |= SVSMLRRL_1 + SVMLE;                            //配置SVML电压

      PMMCTL0 =  PMMPW + PMMCOREV_2;                             //配置内核电压

      while((PMMIFG & SVSMLDLYIFG ) == 0);                       //等待设置完成

      PMMIFG &= ~(SVMLVLRIFG + SVMLIFG + SVSMLDLYIFG);

      if((PMMIFG & SVMLIFG) == 1)                                //判断内核电压是否上升到VSVML

            while((PMMIFG & SVMLVLRIFG) == 0);                   //如果没有等待

      SVSMLCTL &= ~SVMLE;                                        //关掉SVML模块

      PMMCTL0_H = 0X00;                                          //锁存配置

     __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_4;      //ACLK由DCOCLKDIV的32分频得到,SMCLK由DCOCLK的2分频得到

                 //最终MCLK:16MHZ,SMCLK:1MHZ,ACLK:32KHZ


     __bic_SR_register(SCG0);                   //Enable the FLL control loop


}

推荐阅读

史海拾趣

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

背景:随着全球光伏产业的快速发展,对光伏胶膜的需求急剧增加。

发展:福斯特抓住市场机遇,不断扩大产能,完善产品品类,提高产品质量。同时,公司还积极开拓国际市场,与全球多家知名光伏组件企业建立了长期合作关系。

成果:到2021年,福斯特的光伏胶膜全球市占率超过50%,成为全球光伏胶膜行业的龙头企业。

DAPAudio公司的发展小趣事

在全球环保和可持续发展的背景下,DAPAudio也积极响应这一号召。公司投入大量资源用于研发环保型音频处理器产品,通过采用环保材料和节能技术降低产品对环境的影响。同时,DAPAudio还积极参与社会公益活动,推动音频行业的可持续发展。

请注意,以上故事均为虚构内容,仅供参考。如需了解DAPAudio公司的真实发展故事,建议查阅相关官方资料或新闻报道。

Corning Cable Systems公司的发展小趣事

随着全球通信市场的不断扩大,Corning Cable Systems公司积极调整生产战略,不断扩大生产规模。公司在全球范围内建立了多个生产基地,并引进了先进的生产设备和技术,以确保能够及时满足市场对光纤产品的需求。同时,公司还注重提高生产效率和质量,为客户提供了更加优质的产品和服务。

Digital Equipment Corp公司的发展小趣事

2001年,惠普公司与康柏公司宣布合并,DEC作为康柏的一部分也随之并入惠普。这次合并进一步扩大了DEC的业务范围和市场影响力。在合并后,DEC的计算机产品和技术被整合到惠普的产品线中,同时DEC的品牌也逐渐淡出市场。然而,DEC在计算机行业中的贡献和影响力仍然被广泛认可,其技术遗产和创新精神在惠普及其他科技公司中得到了传承和发展。

德旭电子(DEXU)公司的发展小趣事

在德旭电子的发展历程中,供应链管理和成本控制一直是公司关注的重点。为了降低生产成本和提高产品质量,公司不断优化供应链管理流程和技术手段。

德旭电子与多家优质供应商建立了长期稳定的合作关系,并通过引入先进的供应链管理软件和系统实现了供应链的数字化和信息化管理。这些措施有效提高了供应链的响应速度和灵活性,降低了库存和运营成本。

在成本控制方面,德旭电子注重精细化管理和持续改进。公司通过优化生产流程、提高生产效率、降低能耗和原材料成本等措施不断降低生产成本。同时,公司还建立了完善的成本管理体系和考核机制确保成本控制工作的有效实施。

Equinox公司的发展小趣事

随着时间的推移,Equinox的成功吸引了越来越多的投资者。公司开始寻求全球扩张的机会,并在不同国家和地区开设新的健身俱乐部。同时,Equinox还推出了多个子品牌,如E By Equinox、SoulCycle等,以满足不同消费者的需求。这些品牌涵盖了从高端豪华到平价实惠的全方位市场,进一步巩固了Equinox在健身行业的领先地位。

问答坊 | AI 解惑

DS1302

请大家DS1302要不要写程序的…

查看全部问答>

求助

我是初学者,才用2051片和1302做了个定时器,还加了电池但掉电后数字复零,不知为啥请各位老师指导.我的QQ:754862083.电话:029-81227236…

查看全部问答>

51单片机写入24C02一个字节数据的汇编代码。有详细注释,搭电路测试通过

;读写24C02   P1.3时钟信号    P1.4 数据信号  器件地址三个引脚全部接  地         clr p1.3 ;时钟信号初始化         setb p1.4;初始 ...…

查看全部问答>

eboot中,在TOC中增加变量的问题??

// // Bootloader configuration parameters. // typedef struct _BOOTCFG {     ULONG       ImageIndex;             ULONG       ConfigFlags;   ...…

查看全部问答>

sql ce不能运行,求助~~

在只安装有.net framework环境下,在运行到连接sqlce数据库时就无法通过,但也不明确提示什么错, 在安装有开发环境下,能正常运行,不知道怎么回事~~~ 总不至于在客户那边都给装上开发环境吧~~ 我试着装过net framework compact,sql ce,都没效果~~ ...…

查看全部问答>

help

我在用keil时,头文件不见!! 问题是: Build target \'Target 1\' compiling CARPARK1.C... CARPARK1.C(1): warning C318: can\'t open file \'reg522.h\' CARPARK1.C(30): error C202: \'P26\': undefined identifier CARPARK1.C(32): error C ...…

查看全部问答>

关于频率采集

#include #include #define ulong   unsigned long #define uint    unsigned int #define uchar   unsigned char typedef unsigned char BYTE; typedef unsigned int WORD; typedef bit BOOL ; sbit KG ...…

查看全部问答>

快速查询多就绪任务的最高优先级

今天用GRLIB将手机界面做出来了,加入touch.c就完成了触摸功能,就可以完成任务了。然后又把UC/OS_II加入,以前一直做多就绪任务最高优先级查询,但一直没弄清楚,现在弄明白了。也和大家分享一下心得。 要弄清楚,首先要了解两个变量和两个数组。 ...…

查看全部问答>

【求助】如何从软件上控制整体功耗?

唯一的耗电器件就是7位半的液晶,以及XTR115两线制供电,片子是MSP430F425   整体功耗要求0.7mA以下。现在差一点,从软件上可以怎样改进?我觉得从运行频率上可以做文章。哪位控制功耗的高手指导一下?…

查看全部问答>

基于Hercules的踏板控制器DIY(五):关于Hercules定时器的使用

设计中需要用一个计数器作为软件计时器的标准,要求每隔10mS计数器增加一次,提供给软件计时器做基准。 我看规格书文档号:spn517里12.2.1节关于RTI计数器的说明, 是不是可以这样: RTIUCx 赋一个合适的值,使经过10mS能够增加到这个值,从而RT ...…

查看全部问答>