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.

[参考译文] SM320F28335-EP:闪存编程 API 失败、闪存无法恢复

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1115598/sm320f28335-ep-flash-programming-api-fails-and-flash-cannot-be-recovered

器件型号:SM320F28335-EP
主题中讨论的其他器件:C2000WAREUNIFLASH

团队、
您能在以下方面提供帮助吗?
不久将添加更多详细信息(使用的工具、API 版本和错误消息)。

闪存的写入分为两个步骤:
 1) 1)自定义引导加载程序通过 Lauterbach 仿真器写入闪存
 2) 2)自定义引导加载程序使用闪存 API 通过最终应用程序烧录闪存
在评估板上、步骤1和2都相应地工作。  
在生产板上、步骤2失败。 闪存 API 返回错误、闪存无法恢复。
这种情况发生在第一批生产的多个电路板上。

提前感谢、

A.

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

    您好!

    要更正上述陈述:

    这两个步骤都是与 Lauterbach 一起执行的。 (我刚刚得到了团队的确认、很抱歉给我带来不便)  

    更多详细信息:

    我们使用 C2000Ware v:2.00.03中的 Flash28335_API_V210.lib 库。 发生此故障后:我们尝试执行首次加载到目标的存储器加载程序、但未成功。 然后、我们使用 CCS 创建了一个小的 RAM 可执行文件、并使用 Lauterbach 加载该文件。 在执行以下函数时、我们得到了以下错误代码:

    • Flash28335_DepRecover 23.
    • Flash28335_Erase 24.
    • Flash28335_Program 30.

    (在评估板上、此可执行文件没有问题。 所有情况下的错误代码都为0。)

    我们在七个预制(零系列)板中的一个(可能是第二个)有这个问题(将在本周结束前确认)。  

    我们可以从这一点恢复吗?  是什么使我们陷入这种局面?

    此致

    Sebastian

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

    塞巴斯蒂安

    如果闪存编程在评估板(我假设是 F28335控制卡)上工作、而不是在最终生产板上工作、我将查看支持引脚连接和2个 PCB 之间的任何差异。

    这将包括:

    所有 VDDIO、VDD、VSS 引脚、尤其是 VDD3FL、因为这是闪存电源引脚

    如果以上所有内容在原理图上与评估板相同、我们可能需要在器件运行时查看它们的稳定性、在这种情况下、除了探测总线外、您还可以比较使用的衰减。

    test1和 TEST2应悬空(这也适用于闪存)

    根据 DS、时钟引脚、XCLKIN 或 X1或 X2以及不使用的任何引脚都被连接。  输入频率与评估板相同

    引导引脚的设置方式相同(假设自定义引导加载程序在加电时调用)

    JTAG 引脚的端接方式相同

    XRSn 引脚的控制方式与之类似

    最棒的
    Matthew

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

    塞巴斯蒂安

    更一般而言、根据我们提供的硬件设计指南仔细检查您的硬件也是有道理的:
    TMS320F28xx 和 TMS320F28xxx DSC 的硬件设计指南(修订版 D)

    BR、

    A.

     

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

    可能损坏的第二个装置正常。 供应商加载软件的设置不正确。  

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

    在闪存过程中、由于外部电源的限流器、可能会出现压降。 这是问题的原因吗?

    是否仍然可以保存该板?

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

    塞巴斯蒂安

    如果器件由于电流限制而被锁定、即闪存操作在 CSM 密码位置编辑了一个非0xFFFF 的值、那么此器件被认为是永久锁定并且不能被恢复。  

    您可以检查 JTAG 连接的情况是否如此、并查看存储器中的 CSM 密码。  如果您读回所有0x0000、则器件被锁定。  如果您读取0xFFFF、那么除了 CSM 已编程之外、还有其他一些问题会导致 After Effects。

    最棒的

    Matthew

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

    您好 Matthew、该器件未锁定、因为在首次闪存操作期间加载的代码调试工作无问题。 当我们使用闪存库加载极简演示程序时、我们会得到以下错误代码:

    • Flash28335_DepRecover 23.
    • Flash28335_Erase 24.
    • Flash28335_Program 30.

    在另一个电路板上、此应用程序仅返回0。 此外、擦除和编程成功。 因此、您有什么想法吗?

    此致、

    Sebastian

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

    塞巴斯蒂安

    您能否澄清一下"坏"器件、您是否能够连接并只执行 CCS/Uniflash 中的"擦除"选项?  只有在加载演示时才会出现问题?  或者器件当前也无法擦除。

    最棒的

    Matthew

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

    有问题的器件是我们的定制器件。 我们使用 Lauterbach 进行刷写、然后我们可以选择使用驻留存储器加载程序加载软件。 在我们第二次尝试加载 Lauterbach 之后、它失败了。 为了进行调查、我创建了一个小的可执行文件、该文件将从 RAM 中执行、报告上述错误。 在另一个定制器件(相同的硬件)上、我没有遇到任何错误。 我这样做是为了仔细检查我的测试。

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

    塞巴斯蒂安

    在今天的定制器件上、您可以连接 CCS 并验证它是否未锁定、但无法通过 Lauterback 刷写新代码、对吧?  如果器件未意外锁定、我不会期望器件闪烁持续出现问题。  但是、如果该工具始终报告擦除失败且删除恢复不起作用、则表明闪存处于未定义状态。  我认为同样的根本原因也适用于这里。

    最棒的

    Matthew

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

    您好、Matthew、我们无法连接 CCS、因为我们没有调试器。 使用 Lauterbach 时:

    • 我们可以正常调试:内存可见、您可以单步调试代码=>器件未锁定
    • 当我们尝试闪存其他内容时=> Trace32报告错误

    =>因此、我认为器件处于未定义状态。 我们能否从这种情况中恢复?

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

    塞巴斯蒂安

    如果我们无法擦除闪存、则下一个操作是运行删除恢复、看起来就像工具正在执行的那样。  由于在此步骤电气之后擦除仍然没有通过、因此我们无法尝试恢复闪存/使其再次工作。

    唯一的选择是更换设备。

    最棒的

    Matthew