This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F2416:微控制器在现场随机执行代码后进入休眠模式

Guru**** 2582985 points
Other Parts Discussed in Thread: MSP430F2416, MSP430F149

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/616325/msp430f2416-microcontroller-goes-to-sleep-mode-after-executing-code-randomly-in-field

部件号:MSP430F2416
主题中讨论的其他部件: MSP430F149

编程程序:  

我们正在生产中使用MSP430f2416。 我们使用Elprotronics在生产中写入闪存。 我们在每次编程之后都会熔断JTAG保险丝,然后使用BSL编程进行后续编程。  

代码描述:

我们是使用MSP430的低功耗电池供电仪器。 每隔15秒,我们将进入深度睡眠模式。 此休眠模式装置由中断引脚唤醒上的5个不同按钮唤醒。 然后15秒后,设备进入休眠模式。  

以下是对该问题的观察。

-设备已进行QCed,测试并已在现场生产。 几个月后,设备将进行维修。  

-当您按下唤醒时 ,五个按钮中的一个特殊的'X'按钮将打开几毫秒,然后立即进入睡眠模式。 基本上装置不能打开。 如果通过其他按钮打开设备,则按下按钮'X'将关闭设备并进入深度睡眠模式。  

故障排除结果:

硬件完美

代码没有明显的问题。 代码在生产中运行已超过15年。 以前我们有MSP430F149微控制器。 我们在7年前以新的取代了它。 问题似乎发生在过去几年。  

-没有明显的堆栈问题或PC故障。  

-重启不起作用。 按钮'X'似乎总是使装置进入睡眠状态。  

我的问题:

-这是读取代码的闪存问题吗? 闪存代码是否已损坏?

-是否由于闪存错误,微控制器将进入休眠模式?

-微控制器是否会在重置向量时自行重置? 如果代码进入重置向量,它是否从头执行代码?

-此微控制器中是否存在已知的生产闪存故障问题?

-如果闪存钥匙出现故障,使装置复位,它如何响应其他钥匙?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    感谢您的帖子。 由于此设备已在现场并已退回,我怀疑该设备已因某种原因而损坏。 例如,ESD可能会损坏设备。 按钮“X”在五个按钮中是否始终是同一个按钮? 由于您在生产过程中熔断了JTAG熔丝(这是有意义的,但肯定会妨碍调试能力),您能否通过BSL接口读取代码,然后通过JTAG将此代码编程到全新的器件上? 您能否观察到新设备上的问题? 如果可以,那么在您看到问题时进行调试以查看后台发生的情况将会很有帮助。 我没有代码,所以我不能说该行为与代码中的特定流程匹配。

    此致,

    詹姆斯

    MSP客户应用程序
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,James:

    到目前为止,我们一直有按钮'X',它会变差,尽管按下按钮'X'的硬件事件非常干净。 但最近我们有另一个按钮'Y'显示相同的症状,而不是按钮'X'。

    我尝试使用Elprotronics和Flashpro软件在现场返回单元上使用BSL探测支票和。 在此过程中,建议读取校验和故障/读取闪存故障/验证闪存故障。 它完全停止了工作。 当我使用相同的代码重新编程装置时,它开始正常工作。 老实说,我不知道其他软件和调试器会提供类似的功能。 我尝试过Olimex Rocket调试器,但无法正确设置。

    是否有软件工具或FET调试器可用于使用BSL从损坏的设备复制代码? 是否有软件可用于读取和复制代码并将其转储到另一个具有JTAG熔丝的装置? 或者我必须保持JTAG装置完好无损?

    既然没有吸烟枪,您是否会推测这是闪存读取失败问题,PC问题还是其他问题?

    我详细阅读了MSP430中的重置矢量功能,到目前为止,我知道-在重置矢量时,它确实使装置处于休眠状态,并将程序计数器重置到代码开始处。 这是我们的情况似乎正在发生的情况。 设备会尝试从睡眠状态唤醒,然后返回睡眠状态。 它会响应其他按钮,因此代码不会真正崩溃,而是重置为代码开始。 同时按下按钮'X'可关闭开机设备。

    也许您可以对这一条作出一些说明。

    我们的代码逻辑-

    主要(){
    //初始化i/o
    //启用睡眠时中断唤醒
    //设置下一模式唤醒
    //将设备置于休眠状态

    而(1){
    //检查是否按键
    //如果设备打开30秒,请将其置于休眠状态
    //按键事件唤醒
    //运行与所按键关联的代码段

    }

    }


    期待收到您的意见。

    谢谢你。

    此致,
    南开