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.

[参考译文] TMS320F28235:闪存擦除从扇区 F 返回错误代码22

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/955566/tms320f28235-flash-erase-returns-error-code-22-from-sector-f

器件型号:TMS320F28235

您好!

F28235 Q100版本用于牵引。 一个芯片报告闪存擦除错误、扇区 F 的错误代码为22。其它扇区可以被擦除和写入正确。

在使用 JTAG 时、我看到扇区 F 的所有数据都是0x0000。 尝试单独擦除 F 失败。

使用 CCS 代码、它读取空间、所有数据为0x0000。  

使用 CCS 代码 ,调用并传递 Flash_DepRecover ()时没有任何错误。 之后、我尝试使用 CCS 代码或 CCS"On-Chip Flash"工具进行擦除、两者都失败了。

请发表任何评论?

非常感谢。

BR、Jordan

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

    约旦、您好!

    您是否曾尝试在 CCS 的片上闪存工具中运行删除算法以查看它是否通过了正常测试? 不确定它是否与 API 函数不同、但可能值得尝试。

    [引用 user="Jordan Zhou ]CCS 代码时、它读取空间、所有数据均为0x0000。  [/报价]

    如果您可以读取 CCS 中的所有其他闪存扇区、则扇区 F 全部编程为0。

    [引用 user="Jordan Zhou ]CCS 代码 时、Flash_DepRecover ()被调用并传递、没有任何错误。 之后、我尝试使用 CCS 代码或 CCS"on-Chip Flash"工具进行擦除、两者均失败。

    扇区擦除在尝试擦除之后的一段时间是否超时?

    最棒的

    Kevin

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

    Kevin、

    "段擦除在尝试擦除一段时间后超时?" 我不明白。  

    您说得对、除 F 之外、所有其他扇区都可以读取和写入  

    客户需要对此问题进行回复。 我们可以做些什么来确定问题? 扇区 F 是否损坏?

    BR、Jordan

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

    约旦、您好!

    您收到的错误代码22是由于无法使用最大脉冲数完成擦除操作导致的:

    请参阅以下闪存常见问题解答、了解有关此问题的更多信息:

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/758747

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/757586

    根据上面第2个链接中的答案,似乎扇区可能已被删除,但您说运行 Flash_DepRecover () API 函数不会传递任何错误。 您说该函数返回 STATUS_SUCCESS 的值(等于0)?

    您能否尝试从"片上闪存"工具运行删除恢复例程、而不是在代码中使用闪存 API 函数来查看其是否通过?

    最棒的

    Kevin

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

    Kevin、

    今天、我们通过"片上闪存"尝试了"耗尽恢复"。 恢复成功完成、这与我通过闪存 API 执行的操作相同。

    之后、扇区 F 仍无法擦除。 它与以前一样。  

    我们还尝试使用另一个低纹波电源为客户的电路板供电、结果相同。

    我们现在可以做些什么? 我们可以确认、扇区 F 已损坏吗?

    另一个问题、在哪种情况下、它可能会导致此问题? 该芯片用于牵引。 它每年只会被擦除5次。  

    BR、Jordan

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

    约旦、您好!

    好的、感谢您尝试其他测试并提供更多详细信息。

    在该问题开始发生之前、该器件的扇区 F 是否随时正确擦除和编程? 闪存擦除或删除操作是否在问题发生之前的任何时刻中断? 从扇区正确擦除到现在、器件是否发生了任何特定情况?

    我将在内部讨论以获得第二个意见、但在我看来、闪存扇区 F 似乎处于无法再擦除或恢复的状态。 擦除 API 函数在扇区上的最大擦除脉冲数之后超时。

    最棒的

    Kevin

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

    Kevin、

    以下是回复:

    在该问题开始发生之前、该器件的扇区 F 是否随时正确擦除和编程? 闪存擦除或删除操作是否在问题发生之前的任何时刻中断? 从扇区正确擦除到现在、器件是否发生了任何特定情况?

    回复:是的、F 区在问题出现前表现良好。 它用于牵引约1年。 正如我说过的、每年发生5次闪存擦除。 很遗憾本月发生了这种情况。 在闪存擦除期间、没有中断。 所有任务都已停止、但只有我们的闪存 API。 如果 API 返回错误、用户代码将不会尝试再次擦除、而是报告系统错误。 客户将其带回家并通过 JTAG 和测试代码进行了多次测试、尝试擦除和恢复闪存。 所有其他扇区都工作良好(可以擦除和编程)、但扇区 F 不工作  

    如前所述、返回错误代码22、扇区 F 中的所有数据为0x00。 擦除步骤如下4所示。 返回错误代码22后、实际的步进擦除操作会转到哪个? 第2步还是第1步?  如果步骤1成功完成、这是否意味着扇区 F 中没有过擦除?

    1)预紧凑–确保没有位处于过擦除状态。
    2) 2)清除–将扇区中的所有位编程为0。
    3)擦除–将扇区中的所有位设置为1和
    4) Compaction -校正任何"过擦除"(已耗尽)位。

    无论如何、根据电流测试、我们可以做什么?

    客户正在等待回复:  
    1) 1)问题的严重原因是什么? 正式答复。

    2) 2)它是随机的吗?  

    3) 3)其他 F28235 (用于牵引)是否具有相同的风险?  

    非常感谢。

    BR、Jordan

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

    约旦、您好!

    感谢您提供更多详细信息。 将离线跟踪大多数这些项目。

    [报价用户="Jordan Zhou ]]返回错误代码22后、实际的步骤擦除操作将转到哪个位置? 第2步还是第1步?  如果步骤1成功完成、这是否意味着扇区 F 中没有过度擦除?

    第1步和第2步似乎通过了"确定"。 错误指向步骤3、擦除、失败。 需要离线进一步调查。

    [引用用户="Jordan Zhou ]3)其他 F28235 (用于牵引)是否具有相同的风险?  [/报价]

    对于此器件、我们不会发现这样的系统性问题。

    最棒的

    Kevin