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.

[参考译文] TMS320F28377D:防止在写入操作期间出现电源故障的软件和电路。

Guru**** 2445440 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1512800/tms320f28377d-software-and-circuitry-to-protect-against-power-failures-during-write-operations

器件型号:TMS320F28377D

工具/软件:

大家好!

您是否知道如何开发能够在写操作期间防止电源故障的软件和保护电路?

此致、

ITO

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

    尊敬的 Ito-San:

    您在执行闪存编程写入时是什么意思? 或其他什么吗? 而由于电源故障、您是否意味着电源轨下降得过低(即超出器件规格)?

    在软件方面、限制编程运行的大小并 在每次写入之间检查电压轨(使用 ADC)可能会有所帮助。

    此处的应用手册提供了一些硬件建议: https://www.ti.com/lit/slva833

    此致、

    Kevin

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

    您好 Kevin。

    感谢您的答复。

    这里是原始问题。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1510344/tms320f28377d-is-there-a-setting-to-prevent-destruction-due-to-power-off-when-writing 


    客户在 CCS 中的闪存写入期间关闭了电源、从而损坏 MCU。

    为了防止这种情况发生、我们正在尝试开发外部保护电路和软件。
    您对对策有什么建议吗?

    此致、

    ITO

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

    尊敬的 Ito-San:

    对于关断硬件保护电路、我分享的应用手册 (slva833) 在第 8-10 节中进行了一些讨论。 但是、它主要讨论的是短电源中断时间、而不是连续断电情况。 您可以使用一些大容量电容在短时间内为系统供电、以完成任何闪存编程过程、这就是我能想到的全部内容。

    我将邀请一些其他专家来了解他们是否有其他硬件/软件建议。

    此致、

    Kevin

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

    您好 Kevin。

    当客户为最终产品重写程序时、
    重写过程中出现断电、似乎导致了故障。
    在可能发生断电的环境中、似乎很难注意断电问题。

    大容量电容可以应对短时断电、
    但我认为它不能处理长时间停电,如在写期间。

    您是否知道任何硬件/软件对策?

    如果此问题未解决、未来可能难以采用 TI 产品。

    此致、

    ITO

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

     伊图 — 桑,

    一种思路是、外部监控器具有警告类型限制、该限制可用于在电源意外波动的情况下在 C2000 上设置 GPIO。  C2000 可以在闪存操作期间检查此情况、我们已经在 API 中设置了可用于为 ISR 等提供服务的点、如果此信号变为高电平、我们可以采取步骤暂停编程、直到事件被清除。

    不过、闪存 API 中有某些不可中断部分、如果在这些时间内发生压降、我们就没有太多可以做的。  即使在这段时间内强制 XRSn 处于活动状态、也不建议确保闪存不受影响。

    我相信解决方案就像 Kevin 最初提到的那样,同时也有一些关于环境和电源事件类型的知识,并在检查电源是否仍然良好之前将编程限制为 X 字/时间。

    我很好奇、我们是否看到竞争对手提供这种保护、并了解他们是如何实现这一目标的。

    此外、我们在上一代产品上看到的主要问题之一是闪存在编程中断期间被锁定。  在这些第 3 代器件上、CSM 密码被移动到 OTP、因此锁定的可能性应该更低、我们是否还有任何其他有关电源事件后 C2000 上发生什么故障的信息?  闪存是否已耗尽等?

    此致、

    Matthew

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

    您好、Matthew、

    感谢您的答复。

    出现电源故障后、出现以下情况。
    ・无法再次写入程序
    ・程序未运行

    因此、我们无法检查 MCU 的内容。
    我们怀疑闪存出现故障。

    我们与客户确认了您的建议、但他们没有设计此项的技术。

    请具体说明我们应该采取哪些措施来解决此问题。
    我不知道我们的竞争对手是如何处理这个问题的。
    如果我们可以参考有关竞争对手的信息、将会很有帮助...

    我特别不理解以下意见。

    我相信该解决方案和 Kevin 最初提到的一样、同时也有一些关于环境和电源事件类型的知识、并且在检查电源是否仍然正常之前、将编程限制为 X 个字/时间。

    此致、

    ITO

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

    伊图 — 桑,

    在闪存擦除或编程期间、器件无法容忍电源故障/中断。  这是我们闪存技术的一个限制。

    通过一次只擦除/编程较小的区域、然后使用 ADC 检查 VDDIO 电源的状态、我们可以尝试限制闪存编程期间出现电源故障的可能性。

    我最后的陈述更多地涉及到客户的终端应用及其任务概况。  如果客户遇到任何预期电源中断更频繁的情况、我们应尝试避免这些情况、以便对器件进行编程。  如果我们认为任何时候都可能出现随机的电源故障、那么上述缓解措施将是我们理想的解决方案;但我们在硬件中没有其他片上机制来防止这种情况发生。

    此致、

    Matthew

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

    您好、Matthew-San、

    我们将创建自己的程序来写入闪存、
    使用 ADC 监测电源、和
    在检测到压降时采取措施停止程序。

    只有在闪存擦除或写入期间断电时、存储器才会出现异常吗?
    还有其他可能的因素吗?

    此外、我认为程序将在闪存写入或擦除期间等待检查标志。
    此时断电时是否可以执行程序中断命令?

    此致、

    ITO

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

    Kz、

    只有在闪存擦除或写入期间断电时、内存才会出现异常吗?
    是否有任何其他可能的因素?

    如果操作因任何原因被外部方式中断、则会出现问题。  因此、例如、如果有一个外部监控器会异步将 XRSn 拉至低电平、那可能会有问题。  闪存 API 本身 是可中断的、但应注意看门狗或 NMI 看门狗等模块、它们会创建一个 ISR 事件、如果超时、则不会自动复位。

    另外、我认为程序在闪存写入或擦除期间检查标志时会等待。
    此时关闭电源时是否可以执行程序中断命令?

    该器件上的闪存 API 是可中断的;唯一的限制是必须在对闪存进行编程/擦除时从 RAM 运行代码。  在擦除或编程操作期间、需要在器件复位等之前完成的操作   我认为最好的方法是进行更小的更新、以限制标志处于非活动状态的时间。

    此致、

    Matthew