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.

[参考译文] Tms570ls1224:DCAN 协议、通过 CAN 总线与两个微控制器通信的问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/593719/tms570ls1224-dcan-protocol-problem-of-communicating-two-microcontrollers-through-can-bus

器件型号:TMS570LS1224
主题中讨论的其他器件: HALCOGEN

大家好。 我有2个 TMS570LS1224 Launchpad、我想在它们之间发送和接收 CAN 消息。 我按照 TI 官方教程"training.ti.com/hercules-how-tutorial-can-communication"进行操作。 但是、它不起作用。

首先、对于硬件部件、我使用 CAN 收发器 MCP2551、数据表可在此处找到:"ww1.microchip.com/.../21667f.pdf"。 我将 Launchpad、J10的引脚38 (Rx)和39 (Tx)连接到收发器、RxD 和 TxD。 VSS 接地、VDD 连接到微控制器的5V 电源。 CAN_H 连接到另一个收发器的 CAN_H、CAN_L 也是如此 CAN_H 和 CAN_L 均连接到200欧姆电阻器。 我认为接线正确。 所有导线都紧密插入试验电路板中。

其次是软件部分。 对于传输代码、我不知道如何测试它是否发送。 该代码与上面发布的官方教程相同。 对于接收器代码,此语句"while (!canIsRxMessageArrived(canREG1, canMESSAGE_BOX1));"永不结束。 发送器发送到 canREG1、canMESSAGEBOX_1、接收器也在 canREG1、canMESSAGEBOX_1处接收。 HalCoGen 的配置与教程完全一样、没有任何错误、与 CCSv7一样。

此外、该教程 的接收器代码包含一个行、"error = checkPacket (&TX_DATA[0]、&Rx_DATA[0]、D_SIZE)"、位于视频的13:30。 在接收器的项目中没有定义和声明 TX_DATA、这将导致编译错误。

感谢你的帮助。

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

    是否能够在环回模式下成功发送和接收 CAN 数据? 这可能是您学习体验中最好的第一步。 Halcogen help-->示例中包含一个执行此任务的示例代码集。

    您能否在 Tx/Rx 引脚上放置一个示波器来查看正在发送/接收哪些信号(如果有)、而不是使用环回模式? 这可以在 MCU 引脚和收发器的 CANH/L 引脚上查看、以确保数据传输到总线。 探测 CAN 总线时请小心、因为探头负载可能会影响 CAN 总线。