TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS570LC4357:无法通过 CANbus 接收数据

Guru**** 2048030 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/766572/tms570lc4357-unable-to-receive-data-over-canbus

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

你好

我们最近收购了 TMS570lc 开发套件。 我们正在尝试建立 CAN 通信。 在 DCAN1中、msgbox1配置为发送器、msgbox2配置为接收消息。 启用中断以接收数据。 我们能够成功运行 CAN 的内部回送示例代码。 现在、我们需要测试与其他节点的通信。 另一方面、我们使用的是 CANbus 分析仪。

我们能够成功地从开发板传输数据、但我们能够接收数据。 既不处于中断模式、也不处于轮询模式。

在 VIM 通道中启用 Rx 中断。 在附件中、您可以找到创建用于检查 CAN 通信的项目。 这些驱动程序是使用 HalCoGen v04.06.00创建的。

请帮助我们解决此问题

e2e.ti.com/.../8270.TMS_5F00_CANTEST2.rar

此致

Aditya Saini

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

    您好、Aditya、
    请检查掩码以进行验收过滤。
    您可以将 MASK 设置为0x000以在调试此问题时接受所有消息。

    此致、
    米罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您能否指定用于测试的内部回送示例代码?

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

    通过接受滤波屏蔽、您是指消息 box2寄存器的 IF2MSK 上的屏蔽吗? 我尝试更改了该内容、但在接收端看不到任何数据活动

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

    在 C:\ti\Hercules \HALCoGen\v04.07.00\examples\TMS570LC43x 中,此目录为 example_canCommunication_loopback.c。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Aditya、
    是的、在您的 HALCoGen 项目中、我看到掩码为0x7FF。 这意味着 ID 的所有位都被检查。 如果您将其更改为0x00、则将接受所有消息。 在 HDK 电路板上(我认为这是您正在使用的电路板: www.ti.com/.../TMDX570LC43HDK ),您有2个 CAN 收发器。 您是否尝试连接这两个节点,并且仅将板载设备用作两个节点(将 CAN1上的 CANH 连接到 CAN2上的 CANH,CANL --> CANL)。

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

    感谢您的意见。 我更改了屏蔽并连接了电路板上的两个节点、并且能够成功发送和接收数据。 我尝试了另一个 TMS570lc 开发套件、但也可以正常工作。 但从 CAN 分析仪接收数据仍然不起作用。

    此外、由于它仅在掩码为0x00时起作用、我现在是否始终假设将掩码保持为0x00以使其工作?

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

    您好!
    您可以根据希望通过消息框接收的消息设置掩码。 掩码为0x00的消息框将接受所有消息。 当 MASK 设置为0x7FF (如果使用11位 ID)时、将只接受 ID 与接收器相同的消息。 屏蔽位中的"1"表示消息标识符中的相应位用于接收滤波。
    如果您的消息框 ID 为01、掩码为0x7FF、则仅接受 ID 为01的消息。

    请参阅设备 TRM ()中的图27-4和表27-2  ,其中说明了消息框的结构。

    此致、
    米罗

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

    您好 Miroslav

    感谢您的快速回复。 因此、如果存在掩码、则器件应接受来自具有该特定 ID 的特定器件的数据。 但是,如果我需要为设备设置多个消息 ID,该怎么办? 在这种情况下、我是否需要将掩码保持为0x00?

    这也不能解释为什么即使没有掩码也不能使用 CAN 分析仪工具。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    关于 CAN 分析仪、我不熟悉该分析仪。 我可以说的是、检查所有设置是否都与 Hercules 板的设置相对应。
    关于掩码。 掩码的每个位定义是否检查传入 ID 的相应位。
    以下是一个很好的示例: e2e.ti.com/.../248476

    此致、
    米罗