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

MSP430FR5989 频繁进入和退出LPM3模式会出现重启

MSP430 FR5989芯片,如果5ms进入低功耗LPM3和5ms退出低功耗LPM3,,在超过3000V的大电压的干扰下会出现原因为Brownout的重启,但是如果把芯片进入低功耗LPM3和退出LPM3的频率改为50ms,则不会重启,请问是芯片受到电压的干扰了吗,导致芯片供电不稳吗?芯片进入LPM3是在一个while(1)的循环中,退出LPM3是在定时器中断中,定时器中断的时钟源是ACLK,并且使用的是外部32K的晶振。

Susan Yang:

请问能给出相关代码吗?感觉5ms的话,是有点频率高了

user6052347:

回复 Susan Yang:

/*一下为测试程序*/
void tRun(void)
{for (;;){if ( TRUE == g_Sys.vPower.dULtraPower)//cpu进入低功耗的标志,TRUE就进入低功耗lpm3,false就退出LPM3{LPM3;}}
}

int main(void)
{bspInit();//芯片管脚初始化
WDTClear();//打狗_EINT();WDTClear();
tRun();

/*以下为中断定时器,5ms进入低功耗和5ms退出低功耗*/

__interrupt void Timer2_A1_ISR (void)
{TA2CTL &= ~TAIFG;WDTClear();static BYTE LowPowerCnt = 5;if(FALSE == g_Sys.vPower.dULtraPower){if(0 == LowPowerCnt){g_Sys.vPower.dULtraPower = TRUE;LowPowerCnt = 5;}else LowPowerCnt –;}
}

__interrupt void Timer3_A1_ISR (void)
{TA3CTL &= ~TAIFG;WDTClear();static BYTE WakeUpCnt = 5;if( TRUE == g_Sys.vPower.dULtraPower){if(0 == WakeUpCnt){//NormalLowerMode();g_Sys.vPower.dULtraPower = FALSE;WakeUpCnt = 5;LPM3_EXIT;}else WakeUpCnt –; }
}

Susan Yang:

回复 user6052347:

若是可以的话,请私信我整个工程的代码,我用5969的launchpad测试一下。

另外不加大电压干扰的话,频繁(5ms)进入退出LPM3会发生重启现象吗?

Susan Yang:

另外MSP430 根据型号的不同,会有POR,BOR,SVS,PMM模块来对MCU进行保护.其中BOR的阈值是固定的,能够保证默认主频下的正常复位.

SVS和PMM模块可以通过寄存器设置来灵活设置复位VCC阈值.

您使用的MSP430FR5989是有PMM或者SVS模块的,您可以通过软件设置来保证系统安全.

user6052347:

回复 Susan Yang:

如果不加大电压是不会重启。

灰小子:

楼主你好。你的供电电路是怎么样的?

一般单片机受到外部干扰,最容易受到影响的就是电源电路,复位电路,还有晶振电路。

楼主不妨先从这三个方面排查。

user6052347:

回复 Susan Yang:

好的,谢谢。我试试

赞(0)
未经允许不得转载:TI中文支持网 » MSP430FR5989 频繁进入和退出LPM3模式会出现重启
分享到: 更多 (0)