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.

[参考译文] TMS570LS0432:CAN 接口不发送数据

Guru**** 2606725 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/753016/tms570ls0432-can-interface-not-sending-the-data

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

您好!

我希望您能帮我解决我遇到的 CAN 接口问题。

我使用 Halcogen 来创建这里显示的示例、CAN1发送"Hercules "、CAN2接收它。 所有步骤都已执行、但似乎 CAN 总线中没有转换。

LaunchPad 中的连接为:

红色示波器信号:CAN_TX1 -> CAN_RX2  

蓝色示波器信号:CAN_RX1 <- CAN_TX2

使用示波器探测 CAN_TX1时、发现未发送任何数据、仅发送 Init 部分、而不发送实际数据。

要发送的值的数据寄存器是正确的:

If1Data = 0x43524548
If1Datb = 0x53454C55

但程序仍在等待 CAN2接收任何内容、如下所示:

while (!canIsRxMessageArrived (canREG2、canMESSAGE_BOX1));

TrReq1是0x00000001、因此我认为它应该通过 CAN (??)发送 (笑声) 但它不是!

如前所述、示波器仅显示 CAN1的初始化、因此 CAN2正在等待接收到的内容。 您能否指出问题所在?

代码位于此处:

e2e.ti.com/.../8233.CAN_5F00_1st.zip

此致、

佩雷

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pere、
    CAN 总线使用差分线路。 为了使用 Launchpad 实现此目的、您需要在 CAN1和 CAN2上使用 CAN 收发器(例如 SN65HVDA541)。 此外、使用120欧姆电阻器端接两端也很重要。 您可以在 TMS570LS31x HDK 套件的 HDK 原理图上看到这是如何实现的:
    processors.wiki.ti.com/.../TMS570LS31x_HDK_Schematics_RevE.pdf

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

    感谢您发送电子邮件和附件。

    我知道 CAN 总线上的物理层是差分的。 我认为对于简单的 TX 传输、不需要收发器、这似乎是不正确的。

    谢谢、此致、
    佩雷