主题中讨论的其他器件: ISO7220C
我们在某些 TMS320F28377D MCU 上无法与 CPU2进行 JTAG 通信。 我们之前在 TMS320F29379D 处理器周围实施了定制电路板、但由于这些处理器的采购问题、我们决定使用 TMS320F28377D 作为替代产品。 使用 TMS320F28377D 构建的卡中只有一半按预期工作、其余的卡显示与 JTAG 与 CPU2通信不可靠的问题相同。 JTAG 与 CPU1的通信似乎没有任何问题、可以连接、控制和刷写这些卡上的任何映像。
到目前为止唯一的权变措施是将 JTAG 时钟速度大幅降低至大约20kHz。 在更高的 JTAG 时钟速度下、每次尝试使用 CCS 连接到 CPU2都会返回错误消息(错误-1015 @ 0x0器件可能被锁定、错误-1041 @ 0x0调试探针在无法复位 CPU 之后报告了错误) 这似乎是错误的、因为这些错误不是在非常慢的 JTAG 时钟速度下发生的。
我们以等待引导模式打开卡。 连接到 CPU1并不表示存在任何问题。 CPU1保持暂停状态。 然后、与 CPU2的初始连接会给出错误-1015。 单击"重试"可建立与 CPU2的连接、但指示错误-1041。 CPU2也保持暂停状态。 通过使用存储器浏览器读取用户 OTP 存储器部分(假定仅包含1)、似乎随着 JTAG 时钟频率的增加、更多被读回的数据被损坏。 读取 TI OTP 存储器部分(已知包含工厂中的固定数据)也会返回与每次读取不同的损坏数据。
浏览寄存器空间也表示一些读取可能会返回损坏的数据、例如、在从 CPU2读取时、CPB_DAT 寄存器下方的图像中返回更改的值、但在从 CPU1读取时不返回。
我们使用 CCS V10.4.0.00006、所有软件包都已更新为最新的可用版本。 工作区从用于初始实现 的 CCS v7.1.0.00016移植-这样做是为了适应产品变更通知 e2e.ti.com/.../faq-product-change-notice-pcn-20180523001-1-and-pcn-20200115000-2-for-tms320f2837x-and-tms320f2807x-devices。
我们已查看以下内容、尝试缩小问题所在的范围:
-SPRZ412L 器件勘误表:"INTOSC:在没有 VDD 的情况下由 VDDOSC 供电会导致 INTOSC 频率漂移"建议。
- SPRZ412L 芯 片勘误表:"低功耗模式:关闭闪存或保持最小器件活动"建议、因为我们的问题似乎与 e2e.ti.com/.../tms320f28379d-delfino-tms320f28379-cpu2-not-reliably-flashed-via-jtag-interface-without-severely-slowing-down-clock-from-190mhz-to-25mhz 中讨论的问题类似、因为我们还将自己的次级引导加载程序编程到闪存中。 但是、即使在卡上编程了有效的次级引导加载程序、也需要将 JTAG 时钟设置为20kHz、以便从 RAM 调试 CPU2代码。
-使用 SCI 引导模式、我们能够将 Blinky_LED 测试应用程序编程到 CPU1和 CPU2。 将卡上电进入获取/闪存模式会导致两个 CPU 应用程序按预期运行。
-我们通过 https://software-dl.ti.com/ccs/esd/documents/ccs_debugging_jtag_connectivity_issues.html 以及 前面提到的错误代码的相关问题进行了研究。
-所有电路板均已进行 X 射线检查、以确保 BGA 上的正确连接。 已对电源和去耦合进行了双重检查、以符合数据手册规格。 已验证工作卡和非工作卡之间的组件和设备是否相同。
-所有卡都具有板载隔离式 FTDI USB 转 XDS100v2 JTAG、这通常用于 TI controlCARD 子板。 工作卡和非工作卡的相应 JTAG 信号没有明显的区别。
CPU1没有任何问题似乎相当奇怪、但 CPU2对于某些卡有问题。
您能建议进一步的硬件/软件调试操作吗?