Thread 中讨论的其他器件:C2000WARE、 TMS320F28377S、 TMS320F2800156-Q1
工具/软件:
尊敬的专家:
我的客户在 OBC 上使用 F280049、并且他们正在斜升、但是、他们发现某些器件首次上电时无法正确传输 CAN 帧、并且需要复位才能恢复 CAN 功能。
事实证明、在这些器件中、PLLCLKEN 寄存器在上电时被设置为 1、即使它在复位后应该为 0 也是如此。 在 PLL 初始化之前、PLLCLKEN 为 1(使用 TI 示例 Device_init () 函数)会导致 PLLCLKEN 在 PLL 初始化后最终变为 0、从而改变 CAN 波特率。

我们使用 CCS 调试工程并在 CPU 在 main 停止时观察 PLLCLKEN、以此来验证这一点。
我们要做的另一件事是使用 CCS 重置并重新启动器件。 重新启动后、CPU 再次在 main 停止、这次 PLLCLKEN 为 0、 Device_init () 可以正确执行、初始化后、PLLCLKEN 最终为 1、CAN 波特率正确。 这就是我们可以通过一次复位来恢复 CAN 通信的原因。
问题是、为什么 在 main 之前将 PLLCLKEN 设置为 1? 请注意、这仅发生在某些器件上、而不是所有器件上。 如果设备“有故障“、则 100%有可能重现故障。
此致、
挂起


