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.

[参考译文] CCS/TMS320F2810:STATUS_FAIL_PRECOMPACT 在14年后正常运行

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/858688/ccs-tms320f2810-status_fail_precompact-occur-after-14-years-without-problems

器件型号:TMS320F2810
主题中讨论的其他器件:SPRC125

工具/软件:Code Composer Studio

Hej、

自2005年以来、我们将此 CPU 与闪存 API 一起使用、但实际版本仍为2005 v2.10。 现在、我们得到了一批生成此错误的 CPU、其中批次编号为94A4FPW。 固件最初是在 CCS V3下编写的、后来升级到 CCS V6。 以前从未见过此错误。

固件由1通过 SCI 接口加载。 引导加载程序来实现最终固件。 引导加载工作正常、甚至加载的固件也工作、但闪存擦除功能不工作。

我通过 JTAG 接口加载了固件、但遇到了相同的问题。 Flash2810_Eras()的返回值为值24。

我尝试使用 Flash_DepRecover ()函数但没有成功。

有人能不能对这个批次进行解码? 生产年份是多少? 我们可能购买了带有坏或损坏闪存的旧 CPU 吗? 我们生成此错误的一整批 CPU。

我根据包含切换测试的闪存库手册检查了所有点。 工作过。

有什么想法是要调查更多内容? 感谢您的帮助。

谢谢 Helmut

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

    Helmut、

    感谢您在 E2E 上与我们联系。  我想采取并行方法提交一些器件、以返回 TI 进行故障分析以及在其他一些器件上进行调试。  首先、有几个问题:

    1)您提到同一批次中的所有物料都存在此问题,您能否量化到目前为止您看到的器件数与安装的器件数与发货总数

    2)是否有尚未尝试编程的设备?  从 TI 发货的所有器件都应处于"已擦除"状态;如果可能、我想通过 CCS/JTAG 确认、如果同一批次中有尚未尝试编程的器件确实已擦除(通过手动存储器检查或通过闪存工具)

    3)根据我的理解、器件处于压实状态、这通常是由过擦除(时间)引起的。  这是汇编后的第一次编程、还是之前成功执行的编程/擦除周期?

    4) PCB 中与 MCU 相关的其他更改是否存在、例如电源/时钟 BOM?

    5)从上面看、您好像尝试了耗尽恢复、但没有成功。  我们可以在同一器件上再尝试几次、看看我们是否可以恢复?

    将器件退回 TI 进行评估: 我们需要遵循此网页上概述的流程: https://www.ti.com/support-quality/additional-information/customer-returns.html 请告诉我需要使用哪种方法、以便我可以帮助跟踪我的端对这些器件的情况。  如果可能、最好从同一批次发送2-3个"不良器件"以及1-2个"未编程或良好器件";我唯一的建议是在不良/良好/未编程之间清晰标记(在底部使用金属笔)。

    最后、我了解上述信息中是否有一些可能不希望在公共论坛上共享。  如果我们需要在此基础设施中私下共享信息、我将使用 E2E 工具建立"连接"。  如果我们发现某些事情对本论坛的其余部分有利、我可以将这些内容从 TI POV 传回这里。  我只是想确保我们能够尽可能高效;因此、如果您需要使用该路径、您可以自行决定。

    最棒的
    Matthew

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

    Hej Matthew、

    感谢您的回复。

    您的问题:

    1) 我尚未测试所有板。 我们有100块电路板、10块已经过测试。 闪存擦除功能全部测试失败。 我不知道购买了多少芯片、因为我们不是自己安装电路板。 生产量非常小、每年只有几百个。

    2) 电路板未与 JTAG 触点一起安装。 我焊接了2块带 JTAG 触点的电路板。 闪存最初被擦除。 使用 CCS、可以擦除闪存并对其进行编程。

    3) 这是第一个编程。 在生产测试中、我们不会写入闪存。

    4) PCB 或 BOM 没有变化。 我们自10年以来就一直在生产该板、没有任何变化。

    5) 见第2点。 由于它在 CCS 中工作、因此似乎没有芯片错误。

    我将从较旧的批次在该板上安装另一个 CPU、以查看错误是否连接到 CPU。

    我是否还有其他问题可以检查以解决此问题。 我们使用的固件函数基于闪存库、自14年以来一直在不同的电路板中使用。 根据手册检查所有先决条件。 切换测试正常。 电源正常。 您是否有任何可能出错的想法? 当使用 CCS 闪存函数时、闪存似乎正常、但当调用库函数时、闪存不正常。

    将 struct flash_ST 与 flash_Eras()中的返回代码一起设置为指示第一个故障地址。 返回函数时、该结构的所有3个成员都为"0"。 这告诉您什么?

    感谢你的帮助

    此致 Helmut

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

    Helmut、

    我已要求同事添加一些其他注释、我不知道加载的 API 为什么会与 CCS 连接到器件时的行为不同、因为在根级别、它也会使用相同的 API。

    最棒的

    Matthew  

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

    Helmut、

    由于您的 CCS 闪存插件工作正常、因此器件没有任何问题。 因此、我将注意力转向使用闪存 API 库文件对闪存进行编程的固件。 我立即怀疑闪存 API 算法是否配置为以错误的 CPU 速率运行、这会影响闪存 API 时序、而闪存 API 时序对于闪存 API 函数的正确运行至关重要。 我知道您运行了闪存切换测试吗? 结果如何。 如果 GPIO 以10kHz 的频率切换、则为所选的 CPUATE 正确配置算法。 如果不是、则不正确。

    我还建议您运行以下示例软件、该软件使用闪存 API 文件对闪存进行编程/擦除、并告知我们您的结果。

    此致、

    曼诺伊

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

    Manoj、

    到目前为止、我们测试了35块电路板、并获得了8块具有故障闪存行为的电路板。 然后、"有故障"的电路板被连接至 CCS 并且一个闪存擦除周期由 CCS 闪存实用程序完成。 之后、我们自己的固件将按预期工作。 8块电路板现已通过此程序进行"维修"、以便继续我们的生产。 到目前为止、我还有一个 CPU 显示了这种故障行为、该 CPU 现在安装在不同的电路板上以排除电路板相关性。

    我有一些有关我们固件中调用的闪存 API 擦除函数的回复的更多信息。 擦除函数返回错误代码24、所有结构元素中的 FLASH_ST 结构返回0。 在擦除函数返回之前、它内部没有多少 CPU 周期。

    sprc125是众所周知的、我们的代码构建非常接近该示例。 当我遇到更多"故障" CPU 时、我将测试该代码。

    感谢你的帮助

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

    您能否确认在进行切换测试时是否看到10 KHz GPIO 切换?

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

    Hej Manoj、

    在未正常工作的器件上、切换测试给出了10.02KHz。

    此致

    赫尔穆特

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

    Helmut、

    如果切换测试提供10 KHz GPIO 切换、则会确认您的闪存 API 算法确实相对于 SYSCLK 进行了正确配置。

    不知道为什么在使用 CCS 闪存插件和基于闪存 API 的固件时会看到行为差异、因为在引擎设计中、它们应该使用相同的闪存 API 库。 您是否已向 TI 发送了几个不良器件?

    此致、

    曼诺伊

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

    Manoj、

    我没有将一些芯片焊接到电路板上、因此没有将它们运送到 TI。 在 CCS 执行擦除过程后、电路板按预期工作、并返回到我们的生产线中。 在我们发货之前、我们将具有更多的闪存编程周期、并将仔细观察是否存在更多问题。

    我们不会自行生产电路板。 下一个批次正在进行中、如果我们找到更多具有此问题的电路板、将会很有趣。 如果有更多电路板、我将去除一些芯片的焊料并发送给 TI。 现在我认为没有其他事情可做。

    此致

    赫尔穆特

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

    Helmut、

    我将此主题标记为"TI 认为已解决"、以用于簿记目的。 您可以在此主题上重新发布任何新闻发现、以重新打开此主题。

    此致、

    曼诺伊