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.

[参考译文] TMS320F28069:无法擦除闪存

Guru**** 2611705 points
Other Parts Discussed in Thread: UNIFLASH, C2000WARE, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/686284/tms320f28069-cannot-erase-flash

器件型号:TMS320F28069
主题中讨论的其他器件:UNIFLASHC2000WAREcontrolSUITE

我不确定导致这种情况的原因、但我正在使用闪存 API 调试代码。 在某些时候、我失去了擦除扇区的能力。  

该程序运行良好、主要来自"Example_2806xFlashProgramming"示例。  

我已经检查了扇区 A 中的密码、所有密码都是0xFFFF。 我已经通过在 CCS 中仅加载符号并在 UniFlash 中查看它们来验证了这一点。

我还尝试了 UniFlash 中的删除恢复、但在等待算法完成时超时。

所有扇区都无法擦除、因为我当时尝试分别擦除。  

任何其他想法都将不胜感激。

谢谢  

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

    REGI、

    您的零件已耗尽。 如果耗尽恢复步骤失败、则更换是唯一的选择。

    耗尽是如何发生的?

    答:如果擦除操作被中断并且不允许完成、器件可能会被耗尽。 发生这种情况时、器件可能会开始无法擦除。 擦除算法不应被停止、这也会影响 CSM 密码。 闪存 API 有一个删除恢复函数来尝试恢复已被"过擦除"的闪存。 如果在擦除阶段闪存编程过程被中断、执行擦除过程的定时循环有可能被打乱。

    CCS 片上闪存编程器支持删除恢复功能。 您将在中看到它作为可在闪存插件 GUI 中的"Operations"下选择的选项之一列出。 您可以通过单击"帮助"按钮、转至搜索选项卡并输入"删除"来获取有关此内容的其他信息。

    耗竭回收还寻找正在耗竭的部门,并试图收回这些部门。 将检查器件上的所有扇区。

    该算法的当前最大超时时间大约为每个正在耗尽的扇区35秒。 通常情况下、只有一个扇区处于耗尽状态、除非在多个扇区上多次调用擦除而没有运行至完成。 如果可以容忍更长的超时、则可以多次使用耗尽恢复。

    不能保证这个算法能够在合理的时间内使一个扇区脱离耗尽状态。 部件的损耗越深、恢复所需的时间就越长。 闪存 API 擦除功能已经被执行以擦除闪存、这样它不会被深度删除。 但是、如果 CPU 在一个擦除脉冲期间被暂停很长时间、那么这个部件可被放置在一个在可接受的时间段内不可恢复的深度耗尽中。

    如果闪存密码未知、此算法无法恢复器件。 例如、如果在 CSM 密码所在的扇区 A 的擦除期间断电、则器件可能被永久锁定、恢复算法无法在闪存上运行。

    此致、

    曼诺伊

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一个新的 controlCARD、能够很好地加载示例项目。
    当我尝试加载我的可疑项目时、它也破坏了新卡。

    我从项目中删除了所有闪存写入、但仍然使其无法使用。
    是否有可能导致此问题的项目设置? 我真的不想破坏另一张卡、但需要恢复我的代码。
    除了在应用程序代码内、还有其他方法可以使其耗尽吗?
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有第三张卡!
    我正在运行项目"Example_2806xFlashProgramming"。 开箱即用、所有扇区的首次擦除失败。
    它返回错误代码23 STATUS_FAIL_COMPACT 或24 PRECOMPACT。
    第一个故障地址为0x003E4000 (扇区 E)、其中一个错误。
    我担心我会进入另一个坏板的路径。

    我不想再次尝试我的代码、直到我了解问题。 我再也不能毁掉任何电路板了。
    任何其他建议都很有用。

    是否还有其他可能导致这种腐败的领域需要考虑?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    瑞吉斯

    在闪存 API 擦除操作的中间、如果器件不被中断、就无法耗尽闪存扇区。

    请检查您的应用项目。

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否检查了电路板上的 VDDIO/VDD 生命体征? BOR TRIP 也会使器件跳闸、从而导致闪存 API 擦除操作中断。

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提出的其他想法。 我相信现在是硬件。
    在另一个新控制卡上、只使用示例代码"Example_2806xFlashProgramming"再次发生删除。 (我拥有的最后一个)
    我现在正在检查硬件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请在回答您问题的主题上标记"验证答案"以关闭此主题。 这将对其他社区成员非常有帮助。

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

    到目前为止,5张卡被毁了。 在闪存擦除期间、我没有发现任何超出规格的电压或毛刺脉冲。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我确实发现、无论我尝试擦除哪个扇区、它始终报告第一个坏扇区为0x003E4000 (扇区 E)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 utils 文件夹中找到了以下示例:

    //######################################################################################################################
    //
    //文件:example_Flash2806x_api.c
    //
    //标题:F28069闪存 API 示例
    //
    //注意:此示例从闪存运行。 首先对示例进行编程
    //写入闪存。 然后、代码将 API 复制到 RAM 和
    //修改闪存。
    //
    //
    //######################################################################################################################
    //$TI 发行版:F2806x 闪存 API 发行版 V1.00美元
    //$Release Date:2011年3月31日$

    我希望获得更好的结果、但 Flash_Erase 会消耗我的闪存。


    // sectora-SECTORH 在 Flash2806x_API_Library.h 中定义
    状态= Flash_Erase (((sectorb|SECTORC)、FlashStatus);
    if (状态!= STATUS_SUCCESS)

    示例错误(状态);

    它返回扇区 B 是第一个故障地址。 检查扇区 B 的所有 F。 不知道为什么这是个问题。

    是否有任何替代方法来使用此闪存 API。 我需要使其正常工作。

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

    您可以尝试使用 CCS (或) Uniflash 中的闪存插件擦除闪存吗? 我希望看到 CCS 中报告的相同故障。

    此外、采用新的 controlCARD、尝试使用闪存插件(或) Uniflash 擦除闪存。 一次、您能够使用 Uniflash 进行擦除/编程。 然后转移到运行闪存 API。 这将确认您的调用闪存 API 的应用代码有问题。

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

    以前、我尝试使用 Uni-Flash 擦除已耗尽的卡、它报告的错误完全相同。

    根据您的建议...

    我有一个新的非隔离式控制卡。 我使用 Uni-flash 擦除器件、成功完成了擦除。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经使用 GPIO 测试对新器件进行了编程、并将其擦除而没有错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    瑞吉斯

    好的。 这确认零件工作正常。 现在、在运行可疑项目之前、请确保在 Flash2806x_API_Readme.pdf 的第7页中检查 API 注意事项

    我希望您尝试使用相同的硬件设置进行擦除/编程。 在 API 中执行闪存擦除命令时、尝试一次擦除一个扇区。

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

    我将仔细审查该文件。

    我试图将擦除限制在一个扇区(B 扇区)、这也导致了损耗。 同样令人奇怪的是,它返回了第一个问题部门是 G 部门

    我同时使用 Windows CCS 7和 Linux CCS 6.2系统、结果相同。

     也许有人可以运行该示例以确认没有问题、然后将其发送给我进行运行。  

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Manoj、
    我今天与 Regis 进行了电子邮件交谈(我刚刚挑选了他的公司担任其模拟现场应用工程师)、他确实有额外的支持请求:

    我在 Windows 上使用了 CCS 版本7、在 Linux 上使用了 CCS 6.2。
    在两个平台上运行示例代码会导致相同的问题;闪存已耗尽。

    我还在 Windows 上使用了 UniFlash 来尝试恢复。
    昨天,我获得了另一个新电路板,并通过 UniFlash 将其擦除,从而确认它在项目中。

    我希望有人可以确认示例项目的工作情况。 然后再将其压缩并发送给我。

    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找到了 API 自述文件、现在我将仔细阅读它。 我正在验证示例代码的每个步骤。
    谢谢大家。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mark、

    您是否在设置中尝试运行示例项目并查看已耗尽的闪存? (或)您是否只是报告客户所说的内容?

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Manoj -感谢您的提问、但我会让我的客户(Regis)回答这个问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是我与 Mark 的信函。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    瑞吉斯

    因此、只需确认您说 C2000Ware 中提供的未修改示例不起作用。

    您能否向我们发送您正在处理的项目的完整路径?

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    C:\ti\controlSUITE\libs\utilities\flash_api\2806x\V100\example

    C:\ti\c2000Ware_1_00_01_00\libraries\flash_api\f2806x\example_Flash2806x_API

    已尝试这两种方法。

    我使用的是非隔离式 F28069控制卡。
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Regis_W、

    看起来您使用的是旧示例。 请更新 C2000Ware 并尝试最新示例。

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在使用 C2000ware 1.00.04.00运行切换测试。
    在默认配置下、切换测试读数为8.8KHz。

    我将 CPU_RATE 从11.11L 更新为12.500L、现在得到10kHz。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、这在我使用 CCS 6.2的 Liunx 系统上
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很困惑。 运行最新的 C2000Ware 示例时、此问题是否已解决?

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

    今天早上、我在验证时间是否正确后运行了最新版本、但我确实处理了错误。

    我认为最新版本为我提供了技巧。

    感谢您的帮助。

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

    是否有我可以查看的更改日志、ID 是否想知道发生了什么。 旧版本中的时钟设置未产生正确的时序。

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

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

    我相信我已经回答了你的所有问题。 我可以关闭此主题吗? 希望问题能得到解决。

    请标记回答您问题的帖子。 对于有类似问题的其他人来说、这将非常有帮助。

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

    新版本解决了我的问题。 谢谢。 我将上述帖子标记为已解决。  

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