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.

[参考译文] TMS320F2800137:电源不稳定导致闪存问题

Guru**** 2589280 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1333075/tms320f2800137-power-not-stable-leads-to-flash-issue

器件型号:TMS320F2800137

您好、

我们正在 使用 F2800137、在有些情况下、很难避免电源波动一段时间。  如果电源波动、内部闪存编程 将遇到错误、从而导致再次打开电源时软件无法正常执行。 请帮助了解是否有任何相关的硬件和软件解决方案?

非常感谢、

乔伊斯

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

    Joyce,

               没有解决此问题的软件解决方案。 如果功率级无法在擦除/编程(EP)操作期间提供所需的电流、则会导致编程不可靠。 这是已知的行为。 换句话说、如果器件在 E/P 期间没有电流、则可能会导致故障。 您可以在 E/P 期间探测电源引脚、以检查电压是否骤降或振铃是否过大。 解决方案有两个方面:

    确保使用的 LDO (或直流/直流转换器)具有足够的裕度。 即不仅能满足 MCU 而且还能满足整个系统的稳态和瞬时功率需求。 去耦足够充分、以便在整个 E/P 运行过程中电压电平保持稳定(并在数据表限制范围内)。

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

    您好、Hareesh。

    感谢你的评分 首先、我们想补充一个详细的现象和用例:

    我们设计系统在上电后将一些采样值写入闪存。 由于环境的原因、当前无法避免 LDO 波动。 在这种情况下、闪存写入将失败、再次上电后、MCU 无法再次运行。 让 MCU 再次运行的唯一方法是使用调试器再次下载程序。 对于这种现象,我们有一个问题:

    为什么 MCU 在上电/外部复位后无法再次运行? 如果我们可能接受写入失败并再次通电、是否有办法让 MCU 再次独立运行、而无需使用调试器再次下载代码?

    我们还有一个问题:

    我们在 C2000中启用了 BOR、因此假设这样的 UVLO/欠压将触发 BOR。  在这一点上、  

    如果我们禁用 BOR、是否仍会导致闪存编程失败并出现同样的波动 VDD? 提出此问题是因为我们不知道闪存问题仅与 VDD 有关或与复位过程有关。

    非常感谢!

    乔伊斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么 MCU 在上电/外部复位后无法再次运行? 如果我们可能接受写入失败并再次通电、是否有办法让 MCU 再次独立运行而不使用调试器再次下载代码?

    如果在闪存 E/P 期间器件无法获得电流、则在编程失败时闪存很可能会处于损坏状态(例如、部分擦除/编程)。

    我们在 C2000中启用了 BOR,因此假设这样的 UVLO/brower-out 将触发 BOR。

    此处有两个问题(1) BOR 阈值可能低于 VMIN 阈值。 当电源电压低于 Vmin 时、即使在 BOR 检测开始之前、器件也已经在超出规格的条件下运行。 (2) BOR 可以在器件被部分擦除/编程后激活。

    如果我们禁用 BOR,是否仍会因 VDD 的波动而导致闪存编程失败? 提出此问题是因为我们不知道闪存问题仅与 VDD 有关或与重置过程有关。

    1.2V 和3.3V 电源对于正确的闪存 E/P 都至关重要。  

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

    Hareesh、谢谢您的回复。  

    1. 我看到了 DS 文档中关于该问题的描述:闪存编程期间发生的欠压事件可能会损坏闪存数据... 我的问题是导致闪存错误、极低的电源电压或欠压复位事件的原因是什么? 事实上、欠压电压设为2.95V、应可满足正确的闪存编程要求。 因此我想欠压复位事件导致了闪存错误、不是低电压。 请帮助进行确认。 如果欠压事件、禁用欠压功能可能是一种解决方案。 如果电源电压继续下降、POR 是否也会导致闪光错误?

    2.闪光错误后,DSP 处于定期复位状态。 原因应该是闪存错误将由 ECC 校验并生成 NMI、然后 NMI 看门狗计时器触发复位。 我的问题是、ECC 校验或 NMI 是否可以禁用以使 DSP 保持运行。 此外、还有其他更好的软件方法来清除闪存错误并保持软件运行吗? 为了避免闪存错误、我使用的方法是尽可能减少闪存编程操作、并在编程之前通过软件检查电源。

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

    对于正确的闪存编程、两件事非常重要。  

    1. 电源具有足够的拉电流能力(和足够的瞬态响应)、能够满足 MCU 的稳态和瞬时电流需求。 在整个编程过程中、您不应看到电源电压有任何下降。 换句话说、电源轨必须始终处于数据表中显示的限值范围内(尤其是 Vmin)。
    2. 擦除/编程操作的时序要求。 在使用 TI 提供的工具时需要注意这一点。

    如前所述、欠压阈值可能低于 Vmin。 在达到该阈值之前、器件可能已经在低于 VMIN 的电压下运行。 禁用 BOR 或 ECC 检查不是解决方案、因为您只会屏蔽问题。 正如我在第一次答复中提到的,这个问题必须添加在硬件中,而不是软件中。

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

    感谢您的答复。