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.

[参考译文] MSPM0G3507:CAN TX 示例问题

Guru**** 2524550 points
Other Parts Discussed in Thread: MSPM0G3507, LP-MSPM0G3507, TCAN1046ADEVM

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1368872/mspm0g3507-can-tx-example-question

器件型号:MSPM0G3507
主题中讨论的其他器件:TCAN1046ADEVM

工具与软件:

我目前使用 MSPM0G3507开发板、并使用 mspm0_sdk_1_30_00_03中的示例。 我将使用 mcan_single_message_tx  mcan_multi_message_tx 示例。 我尝试通过将示波器连接到 TX 和 GND 引脚来观察传输的波形。 但是、无论我如何尝试、TX 引脚上都没有传输波形。

您能告诉我需要更改什么吗? 谢谢你。

我已经在程序中设置了两个变量、以检查它是否进入中断以及程序是否完成。 一切似乎都正常、但仍然没有生成信号。 问题可能是什么? 两个示例都不会生成 TX 信号。 第一次刷写并运行程序(按 PB21)时、我收到一个奇怪的错误波形。 然而、无论我之后如何测试(按下 PB21)、TX 引脚上都没有任何活动。 示波器显示信号保持在高电平、没有变化。

上图显示了在刷写代码后第一次按下(PB21)时生成的信号(信号内容与传输的数据不匹配)。 但是、无论之后如何测试它、TX 引脚都不会产生任何信号并保持高电平。

谢谢你。

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

    您好、Feng、

    您需要另一个设备来接收数据以完成传输。 仅使用一个来发送数据、但接收数据的任何设备都无法让您看到正确的数据传输。

    1)、您可以选择使用另一个 LaunchPad (下载 mcan_single_message_rx  mcan_multi_message_rx )来接收数据、并使用 示波器观察数据传输。

    2)。 您可以选择使用 CAN 收发器来接收数据。 如果您选择使用 CAN 收发器、则可以参阅 这篇 e2e 文章。

    (33) MSPM0G3507:CAN -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    此致、

    Janz Bai

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

    您好、Janz Bai、

    感谢您的答复。 我将听从您的意见、使用两个电路板进行 CAN 通信。

    现在我有一个问题。 在该示例中、我没有看到您提到的 mcan_single_message_rx 和 mcan_multi_message_rx。

    在我的示例中、CAN_RX 器件只有 mcan_message_rx 和 mcan_message_rx_tcan114x。

    这两个示例是否也可以用作 RX 功能代码? 它们是否能够确保我的 CAN 通信正常工作? 谢谢你。

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

    您好、Feng、

    1)。 可以直接使用 mcan_message_rx、它可用作 RX 功能代码。 可以使用"mcan_single_message_tx"和"mcan_message_rx"或使用"mcan_multi_message_tx"和"mcan_message_rx" 。

    2)。 您可以阅读"Readme"并阅读代码来了解示例代码的具体用法。

    3)。 当您在 CAN 网络中使用 tcan_message_rx_tcan114x 时、可以使用"mcan_message_rx_tcan114x"。

    4)。 当您使用示例代码或任何其他 CAN 代码时、应检查并确保 CAN 发送器和 CAN 接收器的"仲裁比特率"参数相同、并确保 CAN 发送器和 CAN 接收器的"数据比特率"参数相同。  

    此致、

    Janz Bai

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

    您好、Janz Bai、

    我听从了您的意见、使用了两块电路板进行通信。 我的两个板均为 MSPM0G3507。 我使用了程序`mCAN_MESSAGE_Rx`和`mCAN_MULTI_MESSAGE_TX `m以及`mCAN_MESSAGE_Rx`和` CAN_SINGLE_MESSAGE_TX`。 此外、我还关注仲裁比特率和数据比特率、在两块板上都进行了相同设置。

    但是、通过我的测试、我发现 CAN 通信无法正常工作。 当我第一次按下 PB21 (TX)时、RX 板进入中断、但程序没有成功执行。 RX 程序中的`gInterruptLine1Status`的值为0x09800000、所以程序不进入 IF 循环。 当我第二次按 PB21 (TX)时、RX 板无响应、也不会进入中断状态。

    您能告诉我需要更改哪些其他设置吗? 此外、在哪里可以找到`DL_MCAN_getIntrStatus`函数的返回值? 谢谢你。

    黄色波形表示 TX 发送、蓝色波形表示 RX 接收。 仲裁比特率和数据比特率在 TX 和 RX 程序中设置相同。 您能告诉我可能还需要纠正哪些错误吗? 谢谢你。

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

    您好、Janz Bai、
    我已经测试并观察到、`gInterruptLine1Status`值等于0x09800000的原因是`CANFD0_MCAN_IR`寄存器中的 PEA、EW 和 EP 位被设置为1。
    其中、PEA 表示仲裁阶段存在协议错误。
    此外、`CANFD0_MCAN_PSR`中的 LEC 显示001、指示填充错误:一个序列中的超过5个相等的位出现在接收消息中(这是不允许的)、以及其他错误(包括 EP、EW、DLEC)。

    如何解决此问题? 这似乎是配置问题。 我目前使用示例代码提供的几乎所有默认设置、没有任何修改。 如何配置参数、以实现两块电路板之间的正常 CAN 通信?
    谢谢、感谢您的帮助。

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

    尊敬的彭:

    如果要借助两个 LP-MSPM0G3507实现 CAN 通信、还 需要两个 CAN 收发器、用于将 RX/TX 信号传输至差分信号。 在 CAN 标准协议中、MCU 内置的 CAN 控制器在向 CAN 总线传输位时需要监控 CAN 总线的状态。 在仲裁阶段、如果 CAN 总线的状态不等于它设置的状态、将会发生错误并且它将退出 CAN 传输。

    因此建议使用连接到 CAN RX/TX 引脚的 CAN 收发器(例如 TI 的 TCAN1046ADEVM)。  

    此致、

    Pengfei

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

    大家好、Pengfei Xie、

    那么、这意味着、如果我要使用两个 MSPM0G3507板通过 CAN 相互通信、那么我必须首先使用两个 CAN 收发器、对吧? 否则、CAN 通信将不会成功?

    这是什么意思? 谢谢你。

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

    尊敬的彭:

    是的、我认为是这样。 CAN 通信可能需要收发器。  每个连接到 CAN 总线的节点都需要一个收发器。 有关更多信息、请参阅 MSPM0G3507 CAN-FD 器件或 CAN 标准协议的 TRM。  

    此致、

    Pengfei

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

    嗨、Pengfei、

    好的、我现在正在等待材料(CAN 收发器)送达。 一旦我收到它们、我就会对它进行测试。 感谢您的答复、非常感谢。

    此致。

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

    尊敬的彭:

    如果您在收到 CAN 收发器后有任何疑问、可以将消息保留在此主题下。 我将暂时关闭该线程。  

    谢谢!

    此致、

    Pengfei