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:闪存擦除命令阻止 CPU 持续 14ms

Guru**** 2564410 points
Other Parts Discussed in Thread: TMS320F28377D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1568240/tms320f28377d-flash-erase-command-blocking-cpu-for-14ms

器件型号:TMS320F28377D


工具/软件:

尊敬的 TI 支持团队:

我目前正在使用 TMS320F28377D 器件进行开发、并使用闪存 API 函数: oReturnCheck = Fapi_issueAsyncCommandWithAddress (uint32_t 扇区、(Fapi_Erase *) Bzero_Sector、N_START);

在使用示波器进行测量期间、我观察到擦除操作始终需要执行 14ms 。 在此期间、所有中断和其他应用程序代码执行都将暂停。 只要擦除命令 (Ch2) 处于活动状态、中断信号 (Ch1) 就会完全停止、仅在擦除完成后恢复。

这种行为给我的应用带来了严重的困难、因为维护实时中断服务至关重要。

谨请你就以下问题提出建议:

  1. 是否有任何方法允许在闪存擦除过程中继续中断或 CPU 任务?

  2. 可以以任何方式缩短擦除执行时间 (14ms)、还是这是固有的硬件限制?

  3. 是否有建议的做法或官方示例来演示如何在保持中断响应的同时安全擦除闪存?

如果您能分享任何指导、参考或示例代码、我将不胜感激。 这个问题对我的项目进展至关重要,我衷心感谢您的支持。

非常感谢您的时间和帮助。

黄色 Ch1 表示中断、蓝色 Ch2 表示擦除功能。 红色 Ch3 是写入。

此致、
[KDY]

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

    尊敬的 KDY:

     请确认您的代码是从闪存还是 RAM 执行? 此外、 请注意以下 闪存 API 用户提出的要点。 通常、擦除时间随 擦除周期数而变化。   有关更多详细信息、请参阅数据表中的“6.9.4.1 闪存参数“一节。

    此致、  

    Rajeshwary

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

    感谢您的答复。 它一直很有帮助。

    我还有一个问题。

    我已确认使用闪存功能的数据存储功能正常工作。 如图所示、初始擦除时间约为 15ms。 在对闪存功能进行大约 100,000 次测试后、我注意到擦除时间已经增加了。

    根据数据表、我是否应该理解这一点、因为擦除时间会因周期数而增加? 这可以解释为芯片的物理特性吗? 红色波形表示擦除操作

       -->   

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

    尊敬的 Kim:

    根据数据表、我是否应该理解这一点、因为擦除时间会因周期数而增加?

    是、擦除时间增加是由于擦除周期数量所致。

    这是否可以解释为芯片的物理特性?

    是的、这是正确的。

    此致、

    Rajeshwary