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.

[参考译文] LAUNCHXL-F280039C:CAN 模块发送数据包时会出现一个错误帧。

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1451640/launchxl-f280039c-an-error-frame-occurs-when-the-can-module-sends-the-packet

器件型号:LAUNCHXL-F280039C

工具与软件:

您好、TI 工程师、

我将从 LAUNCHXL-280039C 发送 CAN 消息、但只发送错误帧(我的项目基于 watchdong_ex1_service)。

然后我进行了以下测试:

首先、我运行 can_ex5_transmit_receive 例程并发现可以发送数据包、所以我认为硬件和布线应该可以正常。

其次、我检查系统时钟发现它是120MHz、所以 CAN 模块的时钟源应该是正确的。

第三,我比较了两个项目之间的寄存器配置,发现在调用 can_sendMessage()函数之前寄存器的值是相同的。

那么、还有其他哪些检查点可以帮助我解决这个问题? 谢谢!

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

    这是示波器测量的 CAN-H 和 CAN-L 波形。 从波形可以看出、总线电平保持显性电平35us、这不符合填充规则。 CAN 模块似乎无法正常工作。

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

    尊敬的 Zhen:

    错误帧会被发送、这可能是因为没有其他节点应答发送的 CAN 帧。  CAN 总线另一端的示波器无法确认接收到 CAN 帧、因此在满足错误阈值后、CAN 会自动发送错误帧。  确保另一个 LaunchPad 或 CAN 节点连接到 CAN 总线以确认发送的帧、或者使用具有 CAN 解码功能(能够将 ACK 信号发送回有效 CAN 帧)的示波器而不是使用示波器。

    此致、

    Joseph  

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

    尊敬的 Joseph:
    感谢您的答复。
    在测试中、我将 CAN-H 和 CAN-L 连接到 CANFD 解码节点。 程序发送该消息后、位于解码节点处的主机将显示错误帧、然后我将示波器的探针连接到 CAN-H 和 CAN-L 再次发送消息后将收集波形、在此期间、Launchpad 和解码节点保持连接。

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

    尊敬的 Zhen:

    好的、感谢您的澄清。  这对我来说更有意义。  在 CAN_Ex5中、您是否将 LaunchPad 配置为进行传输、并检查是否为 CANTR/RX 分配了正确的 GPIO。  是否还确保 Ex5测试和 接收节点的波特率相同?  Ex 5测试已将波特率设置为500kbps、因此请确保接收节点具有相同的波特率。

    我正在查看您发送的寄存器日志、在 mailbox1上报告了一个奇偶校验错误(CAN_PERR)。  还有 CAN_ES。 LEC 报告的值为7、这意味着 CAN 总线上没有检测到任何事件。  这些表明您的设置有一些不正确之处。

    此致、

    Joseph