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.

[参考译文] MSP430I2040:如何在向信息闪存写入其他数据的同时保护 TLV 数据

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1016393/msp430i2040-how-to-protect-tlv-data-while-writing-another-data-on-info-flash

器件型号:MSP430I2040
主题中讨论的其他器件:MSPWARE

您好!

您需要定期将电能值保存到闪存中、以便在断电和复位事件期间保留这些值。 请参阅 dev.ti.com 上或 CCS 中 Resource Explorer > MSPWare 中找到的该器件的闪存代码示例。 您可能还需要在闪存中设置一个标志来指示条件(例如功率损耗)。 当电源电压超过一个特定电平时、这个器件的 VMONIN 特性可被用于触发一个中断来将这个标志写入闪存。 加电时、您还需要恢复备用能量值。

请记住、闪存的写入限制也低于我们的 FRAM 器件、因此您可能需要实施换位写入算法。

在此过程中、请注意 i20xx 信息存储器包含器件特定的 TLV 数据、用于校准时钟和基准。 如果在未备份的情况下擦除这些数据、则器件将无法正常工作。 根据您需要保存到闪存的数量、您可能需要考虑改用闪存主存储器中的段。 如果您使用信息、并且您已在 RAM 中备份信息、准备在写入信息之前擦除信息、然后进行复位、则器件将被欺骗、TLV 值将丢失。

以上是几个月前 E2E (James)对我的问题的回复。 由于某种原因、我们不得不停止这方面的工作。 最近我们又开始了。

现在、我对如何在将能量数据写入信息闪存存储器时保护 TLV 数据有疑问(如果在从 RAM 恢复 TLV 数据之前发生复位)?

我可以使用闪存的其他段来存储能量数据、以便 TLV 数据不受干扰吗?

谢谢  

Anuradha。

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

    您可以使用任何闪存段、除了信息 A (默认锁定)和工厂校准数据。

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

    好的。 谢谢。

    在写入信息存储器两次时、我的观察结果是什么、我们需要先将其擦除、然后再写入。 但闪存中的其他段则不是这样。 我们可以覆盖它。 正确吗? 或者我错过了什么。

    2.是否建议使用其他段(程序存储器)来保存用户数据?

    闪存支持多少个写入周期?

    谢谢

    Anuradha。

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

    INFO 存储器只是另一个闪存段、它与任何其他闪存段一样。 闪存段必须在写入前擦除、例如擦除它、而不是逐字写入直到它已满、然后必须再次擦除。 有关闪存规格的详细信息、请参阅器件数据表。

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

    我毫不犹豫地不同意 zrno soli、但在 I2系列中、信息存储器只是一个段、因此在不擦除 TLV 的情况下无法将其擦除。

    在更新信息闪存时、您可以将程序存储器段(1KB)用作临时缓存。 我想您可以从示例 msp430i20xx_flashwrite_01.c 开始、只需更改 SEGSTRT (并删除 LOCKSEG 内容):

    https://dev.ti.com/tirex/explore/node?node=AH1usbSuYSeImpZGDdBbhA__IOGqZri__LATEST

    未经请求:查看前面的几个步骤、如果更新过程中电源出现故障、并且您不知道您需要哪一个副本(信息或程序)、您可能会感到头痛。 您可能希望始终只使用程序闪存。 如果您可以备用、请留出两个段(每个段1KB)、以便可以双缓冲、然后使用校验和或 CRC 对其进行保护。 如果这样做、请确保将下载选项"Project->Properties->Debug->MSP430 Flash Settings->Erase Options"更改为"Erase 匾"或"Replace written (其中一个更好、但我忘记了哪一个)。

    当我遇到这种情况时、项目还很早、所以我设计了一个外部串行 EEPROM。