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.

[参考译文] TMS320F28075:CAN 通信故障

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1195592/tms320f28075-can-communication-failure

器件型号:TMS320F28075

大家好、

最近、我使用 CAN 来实现两个 DSP (一个主机和一个目标)之间的通信。 主机 每1秒向目标发送一次数据。 接收到数据后、从器件将进入 CAN 中断来读取数据并将一段数据返回到主机。 在主机接收到数据后、它还会进入相应的中断来接收数据。

但是 、在实际测试中、我遇到了以下两个问题。

1. 发送数据的频率有问题。 在该程序中、每1秒调用一次 TI 的数据发送命令、以控制 主机向 目标发送数据。 这样、发送数据的频率应非常低。 不过 、我可以通过示波器看到、在1s 间隔期间、仍然可以在总线上读取高频数据传输信号。 这是否意味 着在  发送一段数据后自动发送数据?

开始时、    中断中的目标可以正确接收从主机发送到目标的数据。 但是、经过几次测试 、我发现 目标不再进入读取数据的中断、并且 不会将数据返回到主机。 但是、主机仍在发送数据、并且可以读取目标发送的数据。 在示波器上、我观察到 CAN 传输线路信号 、并同时读取 从主机发送到目标的 MSGID 和从 目标发送回主机的 MSGID。 但通过该标志 、我可以看到 目标没有进入 CAN 并被中断、因此它不会向主机发送数据。 这种情况的原因可能是什么?

3.在 CAN 控制寄存 器中、有一个自动重发送配置位禁用自动重发送、默认情况下启用。   是因为目标不断尝试重新发送数据吗? 在这种情况下、虽然它没有进入 目标的 CAN 中断来发送数据、 但目标是否使用此自动重发送来实现重复的数据发送?

此致、

凯瑟琳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 如果主机每1秒传输一个帧、则只能看到这一点。 我很难在不查看波形的情况下说出这些"高频数据传输信号"是什么。 请捕获这些信号并将其连接到线程。 波形应该看起来像您在 www.ti.com/lit/SPRACQ3中看到的波形一样干净。 有关一般调试提示、请参阅 www.ti.com/lit/SPRACE5。  
    2. 最初通信正常的事实告诉我没有硬件问题。 如果您有 CAN 总线分析仪、则比使用示波器更容易观察总线活动。 我无法告诉您为什么不执行目标中的中断例程、尤其是当主机继续发送正确的数据时。 您需要将 CCS 调试器连接到目标并进行分析。  
    3. 自动重发送适用于仲裁丢失的情况。 如果网络中只有两个节点、并且目标仅在从主机接收到帧后才响应、则不存在仲裁丢失的可能性。