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:
好的,谢谢。我试试