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

MSP430FR5738: 无法进入LPM3.5睡眠,不是必现,有概率出现

Part Number:MSP430FR5738

下面是出现无法睡眠时,打印出来的寄存器的值,目前无法判断哪里出问题

特别注意的是,以下标记为0

Susan Yang:

能否说明一下您使用的程序?另外建议您在下面的勘误表内搜索 LPMx.5

https://www.ti.com/lit/er/slaz391af/slaz391af.pdf 

,

tim zhuang:

程序其实很简单的,

if (SYSRSTIV == SYSRSTIV_LPM5WU) {//reset from LPM35clockInit();rtcReStart();__enable_interrupt();taskRun();enterLPM35();} else {//POR initclockInit();rtcInit();enterLPM35();}
}

static void enterLPM35(void)
{PMMCTL0_H = PMMPW_H;PMMCTL0_L &= ~SVSLE;PMMCTL0_L |= PMMREGOFF;PMMCTL0_H = 0;__enable_interrupt();__bis_SR_register(LPM3_bits + GIE);// LPM3 + Enable interrupt
}

,

tim zhuang:

如果不能进入睡眠,程序则跑到死循环,目前就是有时会进入死循环,这个位置不应该出现的,正常情况下,__bis_SR_register(LPM3_bits + GIE)后就会切断CPU Core电源,不会继续跑的

,

tim zhuang:

麻烦帮我问海外原厂,目前海外论坛发不了帖子,谢谢了,目前从勘误表看调试模式会导致进入不了睡眠,也尝试过将TEST脚用4.7K下拉电阻,避免TEST被拉高,PJ0-PJ3这4个IO都设置输出但是还是会出现不能进入睡眠

,

Susan Yang:

好的,我会在之后po上论坛链接

,

tim zhuang:

麻烦了您,尽快,这个问题拖了好久了,现在产品都不敢卖

,

Susan Yang:

请您跟踪下面帖子的回复

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1033928/msp430fr5738-can-not-enter-lpm3-5-sometimes 

,

Gary Gao:

你好

LPM3.5 在Debug模式下可能会出现问题, 建议free run 使用串口或者GPIO 配合调试

,

tim zhuang:

但是目前我这个不是Debug模式,是在发布版本下使用的,而且TEST下拉电阻了

,

Gary Gao:

不是版本问题,是LPM3.5 不建议进入debug 调试, 建议让芯片下载好程序后上电自由跑,然后使用GPIO 指示运行状态。 其它逻辑部分可以使用LPM3 在debug 模式下调试。

,

tim zhuang:

现在不是调试,现在就是芯片下载好程序正常上电自由跑了,每分钟定时唤醒,出现有时进不了LPM3.5

,

Gary Gao:

你是怎么判断程序没有进入LPM3.5, 并进入死循环的?

,

tim zhuang:

死循环我有亮灯,还有串口消息打印,那个地方不可能跑进去的

if (SYSRSTIV == SYSRSTIV_LPM5WU) {//reset from LPM35clockInit();rtcReStart();__enable_interrupt();TaskRun();//printfReg();enterLPM35();} else {//POR initclockInit();rtcInit();//printfReg();enterLPM35();}//should never run to here!while (1) {Delay_s(20);dbgLED_blink(1);uart_init();Delay_ms(2);printfReg();}

,

Gary Gao:

方便把整个测试程序发过来吗?

,

tim zhuang:

生产环境代码估计没办法发出来,有什么情况会导致进入不了睡眠?从芯片设计角度来看,海外TI团队没回复

,

tim zhuang:

或者说进入睡眠需要时间等待?

,

tim zhuang:

或者说进入睡眠需要时间等待?这块细节我不清楚,文档上没有任何说明

,

Gary Gao:

方便弄个可以复现问题的简易程序吗?

顺便问下你测试了多少个芯片?有多少芯片会有这个问题? 这个问题在出现过问题的芯片上多久可以再次复现问题?

,

tim zhuang:

至少10%以上芯片出现了,1000台有差不多100台,概率非常大,所以非常急,也不能改方案,但这个问题肯定有原因的

,

Gary Gao:

这个问题在出现过问题的芯片上多久可以再次复现问题?

方便弄个可以复现问题的简易程序吗?

建议在进入LPM3.5之前清除LOCKLPM5

,

tim zhuang:

是的,这个启动代码都是从TI资源库里面拿出来用的,没改过

void main(void)
{uint8_t wksrc = WKSRC_RTC;WDTCTL = WDTPW + WDTHOLD;// Stop WDT//Unlock the GPIO pins./** By default, the pins are unlocked unless waking* up from an LPMx.5 state in which case all GPIO* are previously locked.**/PM5CTL0 &= ~LOCKLPM5;if (SYSRSTIV == SYSRSTIV_LPM5WU) {//reset from LPM35clockInit();rtcReStart();__enable_interrupt();taskRun();enterLPM35();} else {//POR initclockInit();rtcInit();enterLPM35();}
}

,

Gary Gao:

可以先回答一下这两个问题吗?

这个问题在出现过问题的芯片上多久可以再次复现问题?

方便弄个可以复现问题的简易程序吗?

,

tim zhuang:

这个时间不确定的,快则几个小时,慢则1-2个月出现,有些设备则不出现,所以这个没规律的,简易程序可能但不好复现,从芯片设计角度,不能知道什么原因会导致睡眠不了吗?

,

Gary Gao:

建议在enterLPM35();之前再清除一遍LOCKLPM5。

建议使用简易程序进行测试如有问题复现请将测试程序发我分析,谢谢

我这边再帮你看看有没有其它影响因素

赞(0)
未经允许不得转载:TI中文支持网 » MSP430FR5738: 无法进入LPM3.5睡眠,不是必现,有概率出现
分享到: 更多 (0)