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

[MSP430] MSP430进入lpm4后,MCU会偶尔丢失i/o中断

430进入LMP4 ,通过外部的RTC来唤醒,偶尔会出现无法唤醒, 如果再次出发mcu 可以正常唤醒并运行,可以确定RTC是有输出信号来唤醒MCU的,貌似mcu没有响应边沿中断,
(边沿设置、中断使能 什么的都没有问题)

时钟芯片内部的震荡时钟  16MHZ,

进入睡眠:
…………
SetVCore(PMMCOREV_0);  //进步一降低功耗
      __bis_SR_register( LPM4_bits + GIE );
      SetVCore( PMMCOREV_3 );
………….

唤醒中断
#pragma vector=PORT2_VECTOR
__interrupt static void prvSelectButtonInterrupt(void) {

           LPM4_EXIT;
           /* add some power on */
           delay_ms(2000);
           TA0CTL |= MC_1;
        }

以上是大概的代码,我有一个疑问,在进入睡眠前SetVCore(PMMCOREV_0);是否有问题? 因为我的时钟是16mhz的,
这样会不会对中断有影响? 请帮忙解答疑问

HG:

其实没有必要加SetVcore,因为LPM3 CPU都不工作了,这个电压阈会自动帮你关掉。

在中断里也不建议delay那么久

另外,在LPM4_EXIT之前要重新配置GPIO的状态,以便下次再进中断,比如

P1IE &= ~BIT7; // Disable interrupt on PA.7 = P1.7 P2IE |= BIT2; // Enable interrupt on P2.2LPM4_EXIT; // Stay in active mode after ISR

当然了,具体应该根据你自己的应用来。

liang yan1:

回复 HG:

非常感谢你的回复和建议,另外芯片的手册中提到了进入LPM4.5之后  I/O的config会丢失,我代码没有进入LPM4.5, 也可能存在i/o config丢失吗

Delta:

请问你现在跑在哪个型号的MCU上?

进LPM4.5 相当于RAM数据不完全保存,所以CONFIG也会丢失。

请看这个页面: http://www.ti.com/tool/TIDM-FRAM-CTPL

有描述LPM X.5带来的影响和解决方法。

liang yan1:

回复 Delta:

MSP430F67461

灰小子:

回复 liang yan1:

LPM4不会丢失RAM内容的

LPMx.5才会丢失

liang yan1:

回复 灰小子:

你说的对的,我的没有进入lpm4.5.这个问题我还在找原因, 谢谢关注!

赞(0)
未经允许不得转载:TI中文支持网 » [MSP430] MSP430进入lpm4后,MCU会偶尔丢失i/o中断
分享到: 更多 (0)