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.

[参考译文] MSPM0G1107:使用 EEPROM 仿真类型 B、如果器件在闪存写入期间欠压、我们会丢失几个数据项。

Guru**** 2391415 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1472223/mspm0g1107-using-eeprom-emulation-type-b-if-the-device-browns-out-during-a-flash-write-we-lose-several-data-items

器件型号:MSPM0G1107

工具与软件:

我们看到的确切情况是、在微控制器上电时、我们将仿真类型称为 init。 Init 函数会对所有最近的数据项进行群组传输、如果在主动写入闪存(在 RAM 外执行 IE)时欠压、一些数据项可能会损坏、而其他数据项在传输中丢失、在下一次上电时、缺少所有先前数据项的接收组现在是我们的活动组、我们已经丢失了关键的 nvmem 数据。

我们能够确认这是在发生的

  • 将 EEPROM 仿真类型 B 修改为不擦除 INIT 上的非活动组、以便我们可以查看这些组的历史记录
  • 修改复位处理程序使其卡在 while (1)循环中、而不会实际复位器件
  • 当我们看到我们陷入了附加到环路的困境时、NMI 异常与欠压相关、调用堆栈会在 EEPROM 初始化阶段启动并在闪存写入阶段结束
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Thomas:

    您的意思是、 当您执行 EEPROM INIT 时会出现一个与 BOR 相关的 NMI 异常?

    您能否请您在重现问题时测量 VDD 的电压波以查看是否发生欠压情况? 另请说明您使用的 BOR 级别。

    谢谢、此致、

    Pengfei

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     执行 EEPROM init 时是否存在与 BOR 相关的 NMI 异常?

    是的、当我在初始化中执行闪存写入并获得掉电信号时

    NMI 寄存器

    调用栈

    另请说明您使用的 BOR 级别。

    我们使用的是欠压电平1

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

    在 EEPROM 仿真手册第3.2.7节的图 B 中、其中概述了在初始化传输期间断电时对初始化的预期结果。 我们可以看到、在传输完成之前"接收"将变为活动状态、因此我们将丢失数据项

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

    您好、Thomas:

    在初始化传输期间断电

    抱歉、我想我错过了一些背景知识。 您是说在 init peroid 中手动关闭 MCU?

    此致、

    Pengfei

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对不起、我想我错过了一些背景知识。 您是否是指在 init peroid 中手动关闭 MCU?

    是的、我们正在对器件进行一些应力测试、其中包括对 MCU 进行下电上电。

    这张图片显示了我们看到的内容。 根据 EEPROM 仿真手册、我希望组1仍处于活动状态、组2在2日接收、但并非每次都是如此。

    再说一遍

    Im 出现问题的顺序如下

    MCU 上电->初始化序列-> EEPROM 仿真类型 be init ->组传输->在 ram 中执行闪存写入->欠压-> MCU 复位->初始化序列-> EEPROM 仿真类型 be init ->组传输、但未完成的接收组被视为处于活动状态-> EEPROM 成功完成、我缺少数据。

    下面是我们捕获的闪存转储捕获我们捕捉的问题实时发生、我们编写了一些测试代码来检测并锁定器件、只要我们看到问题、就会立即锁定器件、与我之前发送的图片中的闪存转储相同。 我想指出突出显示的部分。 黄色、我们可以看到数据项在传输过程中、绿色、我们可以看到组标记为活动(即使我们未完成传输)、蓝色、前一个组标记为活动。

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

    您好、Thomas:

    感谢您提供有关该问题的大量详细信息、我只想再次确认一件事:

    您上电 MCU 时以及任何 EEPROM 初始化过程开始之前是否找到"两个活动组"状态? 而您上一次回复中的真实闪光数据图片与此状态完全相符?

    因为从我的理解,永远不应该有这样的地位 有两个活动组、其中一个组丢失了数据。

    此致、

    Pengfei

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

    您好、Thomas:

    我想更新 可能的情况、即开机后 存在两个活动组、但这两个组都应存在完整的数据:

    1.如果 MCU 断电发生在 EEPROM_TypeB_transferDataItem ()结束时,并且正好在"将接收组的标头更新为活动"和"将转移组的标头更新为 Erasing"之间

    2.开机后,在 EEPROM_TypeB_init ()进程中,它将始终查找最后一个活动组。

    3.由于"将接收组的标头更新为活动" 过程必须在所有有效数据传输到接收组后发生,因此上一个活动组应包含所有有效数据。

    这就是为什么我说:

    [报价 userid="602976" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1472223/mspm0g1107-using-eeprom-emulation-type-b-if-the-device-browns-out-during-a-flash-write-we-lose-several-data-items/5657028 #5657028"]

    永远不应该有这样的地位 有两个活动组、其中一个组丢失了数据。

    [报价]

    此致、

    Pengfei

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在您加电 MCU 时以及任何 EEPROM 初始化过程开始之前是否找到了"两个活动组"状态? 而您上次回复中的真实闪光灯数据图片与此状态完全对应?[/QUOT]

    我在 MCU 复位后、EEPROM 初始化之前发现的两个活动组状态。 这是我第二次在处理程序中实际复位之前、编写一些测试代码进入 while 1循环、然后看到相同的内容。

    您上次回复中的真实闪存数据图片与此状态完全对应?

    是完全对应

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

    我同意,这不应该发生,但我觉得有些东西是如何被损坏的,当我们写在一个欠压期间。

    当使用 EEPROM 初始化调用的传输调用的 RAM 时、闪存写入函数发生欠压问题

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

    尊敬的 Tomas:

    感谢您提供的信息。

    我想我 对这个问题有一些看法。 并将在下周与我们的专家讨论、仔细检查并了解如何解决它。

    此致、

    Pengfei

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

    尊敬的 Pengfei:

    `ve 我遇到了同样的问题:

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1470132/mspm0g1507-problem-with-eeprom-emulation-type-b

    I μ A (`m BOR0)。

    此致

    Steffen

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

    Steffen、您好!

    附上有关该问题的根本原因分析。 将在 SDK 发行版的后续版本中修复。

    e2e.ti.com/.../EEPROM_5F00_Issue.pdf

    此致、

    Pengfei

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

    尊敬的 Pengfei:

    感谢您提供的信息! 修复将在何时完成?如何获得有关新 SDK 版本的信息?

    谢谢!

    此致

    Steffen

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

    Steffen、您好!

    我内部获得的最新信息是、它将在 SDK 2.05.00.xx 版本中进行修复。 有关新版本的 SDK、您可以访问 TI 官方网站。

    此致、

    Pengfei

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

    好的、谢谢!