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.

[参考译文] LAUNCHXL2-TMS57012:使用 Halcogen 驱动程序验证 CAN 接口通信

Guru**** 2482225 points
Other Parts Discussed in Thread: LAUNCHXL2-TMS57012, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/726264/launchxl2-tms57012-verify-the-can-interface-communication-using-halcogen-driver

器件型号:LAUNCHXL2-TMS57012
主题中讨论的其他器件: HALCOGEN

您好!

我刚刚开始使用这个 LAUNCHXL2-TMS57012评估板。 我使用的是 CCS v8.1和 Halcogen 4.07.00。 我以前测试过 DIO。

现在、我将尝试了解 CAN 的工作原理并测试板载 CAN 接口。

我首先想尝试 CAN1 RX 到 TX 的简单回送、后来又了解到 CAN 不是那么简单。 至少需要两个节点来对其进行测试。

在 Halcogen、我做到了:

在 CAN1和 CAN2上激活 MSGBOXes 1和2:

CAN1 Mbox1:TX、EOB、DLC=8

CAN1 Mbox2:Rx、EOB、DLC=8

CAN2 Mbox1:TX、EOB、DLC=8

CAN2 Mbox2:Rx、EOB、DLC=8

屏蔽= 0x0000077f 时、所有 Mbox 都被设置。

对于这两个总线、其它 CAN 端口、位速率、时序等参数是一样的。 也启用了 CAN1和 CAN2驱动器。

带有公头连接器的硬件连接:

CAN1_Tx -> CAN2_Rx

CAN2_Tx -> CAN1_Rx

我在 CCS 中的应用程序主代码:

CanInit ();

/*传输数据*/
CANTransmit (canREG1、canMESSAGE_BOX1、TX_DATA);

/*检查 Rx 线路上的数据*/
while (!canIsRxMessageArrived (canREG2、canMESSAGE_BOX1));
canGetData (canREG2、canMESSAGE_BOX1、Rx_DATA);

我无法实现传输。 我已经尝试调试会话、并在传输后观察到 CAN1错误/状态寄存器更新为0xE5、表示遇到 Bit0错误;并且 CAN2状态在初始化后不会改变以指示任何新消息 Rx。

我的问题:

1.此硬件设置是否正确? 如果没有、指向如何测试的任何指针可以连接到我的 Launchpad 板上?

2.是否需要使用120欧姆电阻器端接总线? 我认为没有必要、因为根据原理图、我看不到总线的 CAN_H/CAN_L 对。

是否缺少一些配置来成功实现 CAN1和 CAN2通信?

很抱歉有任何愚蠢的观点或格式错误。 并提前感谢您的参与。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您需要连接 CAN 收发器才能使用 CAN 接口。 例如、SN65HVDA541可以收发器! CAN 总线两侧必须端接120欧姆电阻器!

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

    您好、Miroslav、

    感谢您的参与。 我将根据建议获取硬件更新。 我将在我重新获取电路板并进行更新后立即进行检查。