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.

[参考译文] TMS320F28375S:TMS320F28375SPTPS 和 TMS320F28375SPZPT 之间的 CAN 通信

Guru**** 2535750 points
Other Parts Discussed in Thread: TMS320F28375S

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1021890/tms320f28375s-can-communication-between-tms320f28375sptps-and-tms320f28375spzpt

器件型号:TMS320F28375S

您好!

我正在尝试在两个控制器(TMS320F28375S PTPS 和 TMS320F28375S PZPT)之间建立 CAN 通信。

首先、我将数据从发送器邮箱为4字节消息长度的前卡传输到接收器邮箱为4字节消息长度的后卡。 数据已正确传输。 我分别验证了前卡和后卡的 CAN_IF1DATA (传输)和 CAN_IF2DATA (接收)中的数据。 此外、当我使用 CRO 检查帧长度时、我观察到帧长度为128usec。

现在、当我尝试将数据从后一张卡传输到前一张卡时、每个卡具有4字节的消息长度(接收器和发送器邮箱)、数据丢失、即前一张卡的 CAN_IF2DATA (接收到的)中的数据与 CAN_IF1DATA (传输的)中的数据不同 后一张卡的位置。 我观察到帧长度为96usec、而不是128usec (如上所述)。

但是、当我从后一个卡传输8字节的消息长度到前一个卡的4字节的消息长度时、数据已正确传输。 我分别使用发送器和接收器卡的 CAN_IF1DATA 和 CAN_IF2DATA 寄存器验证了这一点。 此外、帧长度为128usec。

为什么在第二种情况下不传输正确的数据、而在第一种情况下不传输正确的数据?   请说明原因。

谢谢、

P. Shreni

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

    Shreni

             无需在接收节点上配置消息长度。 只需为发送节点配置它。 接收节点知道要从发送帧的 DLC 字段接收的字节数。 除非示波器能够解码 CAN 帧并向您显示总线流量、否则仅依靠示波器来验证数据不是一个好主意。 如果数据至少以一种方式正确传输、则表示没有硬件问题。 您的模块配置可能存在错误。  

    请下载我的应用报告 http://www.ti.com/lit/sprace5。  它有许多经过测试的示例。 我请求您查看提供的调试提示。 大多数 CAN 问题都可以通过查看此检查清单来解决。