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.

[参考译文] TMS570LC4357:EEPROM 闪存不会可靠地擦除

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1619199/tms570lc4357-eeprom-flash-does-not-reliably-erase

器件型号: TMS570LC4357

我正在处理一个将配置数据存储在闪存中的工程。 当尝试将数据写入存储体 7 扇区 0(地址 0xf0200000)时、我遵循文档中建议的擦除和写入程序(SPNU501H–2012 年 12 月–2015 年 4 月修订第 6 节)。 写入验证失败、当我查看调试器时、闪存中的数据(在内存浏览器中显示存储器地址 0xf0200000)与我尝试写入的数据不匹配。

擦除/写入/验证由一个状态机处理、我减缓了该状态机的速度、使其每 500ms 只能操作流程的一部分

通过调用请求擦除后

Fapi_issueAsyncCommandWithAddress((Fapi_Erase 扇区,地址)

在调试器上查看时、数据仍然存在。 (有时擦除成功,数据传输到所有'F'、有时部分成功、32 个字节被擦除)。 。  

然后、写入无法更新闪存、因为它没有被擦除。 当擦除成功时、我可以在每次写入时看到正在写入数据。

我仅写入 38 个字节、因此我不认为这是大小问题。

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

    您好、Andy、

    Fapi_issueAsyncCommandWithAddress 是否返回成功?

    擦除命令失败后、FMSTAT 寄存器的值是多少?

    此致、

    Alex

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

    是、 Fapi_issueAsyncCommandWithAddress 返回成功结果、FMSTAT 为零。 此外、我现在发现、重新启动应用程序会导致闪存得到更新。 如果在擦除后重新启动、则调试器存储器浏览器窗口会显示擦除的扇区。 如果在更新失败后重新启动、则新数据现在存在。 可能更新挂起而不是失败、并且在重新启动期间有某种高优先级模式处于活动状态?

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

    您好、Andy、

    重新启动应用程序后、写入验证是否仍然失败?

    发出编程命令并等待完成后、您是否可以尝试在 CCS 中刷新内存浏览器? 数据是否显示出来?

    此外、您是否使用 Fapi_initializeFlashBanks ( ) 和 Fapi_setActiveFlashBank (Fapi_Flash 银行 7)?

    此致、

    Alex