TI中文支持网
TI专业的中文技术问题搜集分享网站

msp430f1232使用外部4M晶振进入LPM4后再出低功耗后4M晶振不起振

Other Parts Discussed in Thread:MSP430F1232

TI工程师您好:

        我公司使用msp430f1232芯片使用外部4M晶振,4M晶振可以正常起振(在没有进入LPM4前),进入LPM4后再通过外部中断出低功耗后4M晶振就不起振(不工作)。

时钟配置程序

void OSC_INIT()
{
int i;
BCSCTL1|= XTS;
do
{
IFG1&=~OFIFG;
for(i=500;i>0;i–);
P2DIR |= BIT2; //red
P2OUT |= BIT2;
}
while((IFG1&OFIFG)!=0);
BCSCTL2|=SELM_2+SELS;
P2OUT &=~ BIT2;
}

进入低功耗

  _BIS_SR(LPM4_bits);

出低功耗

#pragma vector = PORT1_VECTOR
__interrupt void Port_1(void)
{
P1IFG = 0; _BIC_SR_IRQ(LPM4_bits); // 退出休眠模式}

我公司怀疑是OSCOFF有关系,在LPM4模式会关闭OSCOFF,但是在出低功耗却不能开OSCOFF,在程序中写 _BIS_SR(OSCOFF);也不能使晶振起振。目前我们解决方法在每次出低功耗后重新运行一遍时钟配置程序,总感觉这种方法不合适,因为我们让芯片1秒钟进出5次低功耗。现在的关键点为什么不能打开OSCOFF。

Susan Yang:

从LPM4中退出后,XT1 / XT2将自动重新启动。但是,晶振需要一些时间才能开始正确振荡,并且直到软件清除故障状态位(就像初始化晶振时一样),XT1 / XT2才真正被使用
do{IFG1 &= ~OFIFG;// Clear OSCFault flagfor (i = 0xFF; i > 0; i–);// Time for flag to set}while ((IFG1 & OFIFG));// OSCFault flag still set?

赞(0)
未经允许不得转载:TI中文支持网 » msp430f1232使用外部4M晶振进入LPM4后再出低功耗后4M晶振不起振
分享到: 更多 (0)