历史上的今天
今天是: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
}
史海拾趣
|
51单片机写入24C02一个字节数据的汇编代码。有详细注释,搭电路测试通过 ;读写24C02 P1.3时钟信号 P1.4 数据信号 器件地址三个引脚全部接 地 clr p1.3 ;时钟信号初始化 setb p1.4;初始 ...… 查看全部问答> |
|
// // Bootloader configuration parameters. // typedef struct _BOOTCFG { ULONG ImageIndex; ULONG ConfigFlags;   ...… 查看全部问答> |
|
在只安装有.net framework环境下,在运行到连接sqlce数据库时就无法通过,但也不明确提示什么错, 在安装有开发环境下,能正常运行,不知道怎么回事~~~ 总不至于在客户那边都给装上开发环境吧~~ 我试着装过net framework compact,sql ce,都没效果~~ ...… 查看全部问答> |
|
今天用GRLIB将手机界面做出来了,加入touch.c就完成了触摸功能,就可以完成任务了。然后又把UC/OS_II加入,以前一直做多就绪任务最高优先级查询,但一直没弄清楚,现在弄明白了。也和大家分享一下心得。 要弄清楚,首先要了解两个变量和两个数组。 ...… 查看全部问答> |
|
唯一的耗电器件就是7位半的液晶,以及XTR115两线制供电,片子是MSP430F425 整体功耗要求0.7mA以下。现在差一点,从软件上可以怎样改进?我觉得从运行频率上可以做文章。哪位控制功耗的高手指导一下?… 查看全部问答> |
|
基于Hercules的踏板控制器DIY(五):关于Hercules定时器的使用 设计中需要用一个计数器作为软件计时器的标准,要求每隔10mS计数器增加一次,提供给软件计时器做基准。 我看规格书文档号:spn517里12.2.1节关于RTI计数器的说明, 是不是可以这样: RTIUCx 赋一个合适的值,使经过10mS能够增加到这个值,从而RT ...… 查看全部问答> |




