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.

[参考译文] MSP430FR5729:LPM2、LPM3模式下的 UBDIFG

Guru**** 662690 points
Other Parts Discussed in Thread: MSP430FR5729, MSP-GANG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1313695/msp430fr5729-ubdifg-in-lpm2-lpm3-modes

器件型号:MSP430FR5729
主题中讨论的其他器件: MSP-GANG

我正在使用 MSP430FR5729、有一个奇怪的情况:在两个电路板(此时只有两个电路板)上、当 MSP430进入 LPM2或 LPM3电源管理模式(通常我使用 LPM3)时、由于 UBDIFG (FRAM 不可纠正的位错误)而触发 SYSNMI ISR。  复位时、ACLK (源自采用32KHz 晶振的 LFXT1、在 P2.0上可用于范围界定)在停止前按预期~600ms 至~1.2秒范围内运行;然后处理器在40秒左右达到 UBDIFG 设置的 SYSNMI ISR。  我的 SYSNMI ISR 将 UBDIFG 错误记录到存储器中、然后强制执行看门狗复位、从而重复整个过程。

如果我使用 LPM0或 LPM1、而不是 LPM2或更高版本、则 ACLK 不会死、UBDIFG 也不会发生;我使用的是 DCO 作为源的 SMCLK (在5.33MHz 上)、因此这里的突出点似乎是 UBDIFG 在 DCO 启用时不会发生。

有趣的是、当在调试器(具有 MSP-FET430UIF 的 CCS)下运行时、即使使用 LPM3、也绝不会发生这个问题。  在开发过程中、我遇到了一些只有在调试器不运行时才会发生的其他问题、这使我怀疑当调试器处于激活状态时、MSP430并未真正进入 LPM3。

我已经尝试对 SLAZ382AH 中所述的 CG3勘误表实施权变措施、但这尚未解决问题。  再说一次、除了这两个电路板外、我们的所有其他电路板似乎都不需要。

事实上这只在两个电路板上发生是可疑的、我发现这些电路板在非 ESD 安全工作台使用新固件进行编程后立即开始出现此行为。  " ESD 损坏"听起来像是 COP-OUT、但现在是俄亥俄州的冬季、因此这种可能性并不不切实际。  我还没有尝试更换 MSP430、但可能很快就会更换。  在开始尝试返修电路板之前、我想我要寻找任何故障排除技巧或见解、以了解可能会发生什么情况。  此外、对于 LPM3在 CCS 调试器下与运行非调试时有何不同的见解。

布赖恩

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

    您好、Brian、

    您说迄今为止仅在两块 PCB 上发生这种情况。  有多少?

    应用在运行期间是否修改 FRAM 的任何部分、例如记录数据?

    您认为、当进入 LPM2、LPM3时、不退出这些器件时、似乎会出现这个问题、对吗?  复位后、 LFXT1时钟会在600毫秒到1.2秒之间的某处停止工作、并保持该状态且~40秒、您会看到它达到了 SYSNMI ISR、对吗?

    我首先建议、由于您到目前为止只在两个器件上看到此问题、因此应进行 ABA 交换(将已知良好的 PCB 上的一个正常单元替换为坏单元)。  如果问题出在故障部件、则是、您可能会看到 ESD 损坏的影响。

    至于调试器、它有可能会稍微影响 CPU、FRAM 等的内部总线时序、但是这难以用语言来描述具体哪一个以及具体程度。  我有时在其他 MSP430 MCU 上看到的正是您所看到的、在这些情况下、MCU 在连接调试器与断开连接情况下能够完美地运行。  我从经验中知道、很难在根本原因上实现零误差。

    要查看 MSP 是否进入 LPM3、请在 LPM3模式下使用和不使用调试器的情况下运行器件并测量电流。  回想一下、您应该在调试模式下看到增加~20uA。  然后、为了验证它是否未在 LPM2模式下运行、在调试器处于运行状态且 CPU 处于 LPM2模式的情况下测量电流。  您应该有高得多的电流。

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

    答案(大致按顺序):

    至少几十个国家中的两个。  我没有确切的计数。  在使用 MSP-GANG 编程器用较新版本的固件对这两个器件进行编程之前、没有电路板出现过这种行为。  现在、他们可以正常运行、将较旧版本的固件放回原位并不能解决问题、而且较新的固件可在许多其他板上正常运行。  因此、这似乎不是固件问题(或至少不是明显的问题)。

    固件会写入 FRAM、特别是记录此类错误。

    我无法确认(尚待确认)问题是否在进入或退出 LPM2/3时发生。  该代码结构为"超循环"类型、在这种类型下、它会处理任何挂起的任务、然后进入 LPM 模式、等待周期性计时器(从 ACLK 运行)唤醒它以执行接下来发生的任何操作。

    在工作台上独立运行而未安装到系统的其余部分时、两个问题板将显示此行为。  此外、当第一个板在使用较新的固件进行编程后开始执行此操作时、第二个"已知良好"的板已交换并进行了编程、然后它也出现了相同的行为。  使用之前运行的旧固件重新编程后、两个电路板都继续执行该行为。

    根据我的经验、现在在调试器下运行"LPM3"模式时消耗的电流比没有调试器要高得多;我现在没有设置用于测量、但我认为它超过了您建议的20uA。  这使我想知道调试器是不是一直保存在 LPM1还是 LPM0中、可能是因为需要一些在 LPM2/3中关闭的片上资源?

    我想是时候(尝试)更换 MSP430了。

    - Br

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

    您好、Brian、

    我有兴趣详细了解为什么这些器件在使用较新的固件版本进行编程、然后使用以前的固件进行重新编程时、仍然会出现此行为。

    是的、您正确的调试器图超过20uA。  我当时想了一些不同之处-使用 LFXT 32kHz 与内部32kHz REF0振荡器时的电流差异。