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.

[参考译文] TMS320C6748:引导加载程序-在少数 PCB 上多次失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/566498/tms320c6748-bootloader---crc-fails-repeatedly-on-a-few-pcbs

器件型号:TMS320C6748

我构建了22块电路板、其中只有5块电路板出现此问题。  我使用通过 AISgen 工具生成的.AIS 文件将 TMS320C6748引导加载为 SPI 从站。  运行启动(SPI 主器件)的微控制器固件在所有22个电路板上都是相同的。  所有22个电路板上的.AIS 文件都是相同的。  我已经验证了.AIS 已成功加载到所有电路板上、并且正在准确地写入 C6748。  

所有板上的所有初始握手都正常。  在这之后、会调用几个执行函数命令。  然后启用 CRC 校验。  随后是多个段加载和 CRC 检查。  这在所有电路板上都是正常的。  在我执行第4个段加载和 CRC 校验之前、这将继续运行正常。  第4段加载的地址明显高于前3段。  此时、5个坏板始终报告一个无效的 CRC 值。

我不知道为什么我在有限的电路板上遇到这个问题。  在这些电路板上组装期间、如果 C6748在坏电路板上通信良好、直至在较高地址加载段、可能会发生什么情况。  它看起来不像一个汇编问题。  固件和.AIS 代码是相同的、因此我认为不存在问题。  好电路板和坏电路板在 C6748上的器件标识完全相同、因此我假设它们是相同的器件版本等  这些是:

TMS320

C6748EZWT

63A80ZW GI 450

527 ZWT

有没有人曾遇到过这样的问题、或知道我的问题可能是什么?

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

    我已将其转发给设计团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    选中 Enable CRC (启用 CRC)复选框后、AISgen 会在 AIS 中添加额外的命令、以在传输/加载应用程序数据时检查是否存在错误。 对于主引导模式、引导加载程序会计算应用程序数据的每个部分的 CRC、并根据来自 AIS 的预期值进行检查。 如果发生错误、引导加载程序会再次加载该段、重新计算 CRC 并再次检查预期值。 如果连续三次尝试中发现 CRC 错误、则引导过程将中止。

    启用 CRC -->段加载-->如果错误-->再次启用段加载(循环继续)

    对于从器件引导模式、外部主器件从器件读取计算出的 CRC 并根据 AIS 的预期值对其进行验证。 如果发生错误、则由外部主器件决定在报告失败之前重试加载段的次数。

    我们建议您在微控制器上添加一个循环、如果报告 CRC 故障、该循环将重试加载。 如果您以高 SPI 速度启动、您还可以尝试以较慢的速度启动、看看这是否会产生影响。 您还可以尝试在段传输后插入一些延迟、以便在数据传输中实现更好的同步。

    您能否还澄清一下您所说的更高存储器的含义。 是在第4节中的 DDR 中加载的代码。 如果是、则可能需要在这些器件上运行内存测试、以确保 DDR 已正确初始化、并且时序配置没有问题。 另外一个我们看到类似故障的地方是电力线上的噪声、该噪声会导致数据损坏并导致 CRC 故障。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您回答 Rahul、澄清了一些问题...

    无论我尝试循环多少次并将数据重新加载到存储器的那个部分、在同一组电路板上的相同 CRC 校验都会发生故障。 CRC 检查在其他电路板上从未失败。 这听起来不像是我的随机数据传输错误。 如果是这种情况、我希望间歇性发生、并且可能在所有电路板上都发生。 我将尝试降低 SPI 时钟信号的速度、但考虑到大多数电路板上都不存在该问题、并且从有问题的电路板开始、通信一直很好、我怀疑这会解决问题。

    为了澄清"更高的存储器"、我的意思是更高的存储器地址。 前3个段的加载命令分别转至地址0x1182ece8、0x1182f1e8和0x1182f400。 所有这些都起作用。 当有一个段加载到地址0xc7e052c8时、在坏电路板组上会发生问题。 我不确定该地址是否会将数据放入 DDR 中。 我将深入了解这一点、并尝试运行内存测试。

    我还将研究电力线上的噪声、但我假设这也会产生更多 CRC 误差的随机结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、位置0xc7e052c8位于外部存储器中、因此这可能是 DDR 初始化或时序问题。

    此致、
    Rahul