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.

[参考译文] Linux/AM3354:CAN 传输问题

Guru**** 2589275 points
Other Parts Discussed in Thread: AM3354

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/637237/linux-am3354-can-transmit-problem

器件型号:AM3354

工具/软件:Linux

您好:

我使用 AM3354已经有一段时间了、我们有许多基于该 MCU 设计的不同产品。

我们经常使用 CAN 通信、大部分产品看起来都不错。但有时新设计的电路板会出现奇怪的 CAN 传输问题。BSP 始终保持不变。

现在、我们有一个硬件原理图版本1.0的产品。 CAN 工作正常。

我要在这里附上原理图。

以及我们尝试传输 CAN 帧时。 波形看起来正常。我们没有将 CAN 连接到其他地方、因此 CAN 总线与任何其他节点断开。这就是您可以看到 MCU 内 CAN 控制器硬件不断重试的原因。

命令行为:

 CANCONFIG CAN0比特率50000 ctrlmode 三路采样打开

CANCONFIG CAN0启动

CAN0 -I 0x10 0x51

我们将发送值0x51的数据。

波形如下所示:

现在、这里是怪异的部分。

但下一个版本的硬件为1.1。 无论我想要发送什么、都可以传输奇怪的波形。当然、接收器也无法正确接收任何内容。

我在这里附加了1.1硬件的原理图、但实际上、您可以看到它与1.0硬件相同。

  以及我们尝试传输 CAN 帧时。 波形看起来很奇怪。我们没有将 CAN 连接到其他地方、因此 CAN 总线与任何其他节点断开。这就是您可以看到 MCU 内 CAN 控制器硬件不断重试的原因。

命令行也相同:

 CANCONFIG CAN0比特率50000 ctrlmode 三路采样打开

CANCONFIG CAN0启动

CAN0 -I 0x10 0x51

我们将发送值0x51的数据。

坏波看起来像:

奇怪的是、BSP 在硬件1.0和1.1之间是100%不变的

至少1.0和1.1的 CAN 功能原理图也是一样的。

大家可以帮帮我吗?

非常感谢您的参与。

延东

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CAN 专家已收到通知。 他们将在这里作出回应。

    请发布您使用的 Linux 版本? 您在哪里测量波形? 在处理器端还是在 CAN 端?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    高 Biser:
    在本产品中、我将使用从 SDK 06.00.00.00中提取的内核3.2.0。
    我将直接在处理器侧引脚处测量波形、也就是我所附原理图上名为"GPIO0_12_CAN0_TXD"的节点。

    谢谢你。


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

    有人可以帮帮我吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉耽误你的时间。 我已上报请求。 同时、您能否检查两个板是否以相同的 OSC0频率运行?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    首先要进行的一项测试是、在不同的位速率下、波形看起来是什么样子的。 您能否使用50000位速率附加一个波形? 另请尝试1000000。 选择50K 是否有原因?

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

    你好、Biser

        我们的电路板由内核板和基板组成。

        MCU、OSC0、Nand FLASH、DDR 位于内核板上。

        两个电路板都使用相同的内核板。

       因此 OSC0和 OSC1的这一部分保持不变。

    谢谢

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

    Schuyler 您好:

      使用50k 的原因是、我们在现场实际应用中实际使用的频率。

       因此、使用相同的命令:

       CAN0 -I 0x10 0x51

       速度为500k 的测试:

    CAN 控制器发送上面的波形、然后进入总线关闭状态、CAN TXD 不再发送任何波形、不像50k。

    第2次测试、速度为1M:

    这次 CAN 控制器发送上面的波形、然后进入总线关闭状态、CAN TXD 不再发送任何波形、也不像50k。

    谢谢!

    延东

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还尝试在具有 Linux 4.4.4.3.2的电路板上从03.02.00.05 SDK 运行 BSP。
    问题是相同的。
    这不太可能是 BSP 引起的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢您尝试稍后的 SDK、以查看问题是否仍然存在。 这将是我将要建议的一种方法、作为隔离问题的一种方法。

    当检测到总线关闭状态时、这可能意味着 SOC 外部的东西、通常是 SOC 之间的路径、应检查收发器以确保终端电阻器就位。 另一个需要考虑的因素是所使用的电缆不会引入不可预料的阻抗。 另一端的器件是否与使用1.0电路板进行测试时使用的器件相同? 1.0电路板是否仍可与其他 CAN 器件配合使用?

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

    感谢 Schuyler 的建议。

    我们没有将1.1或1.0板连接到任何其他 CAN 节点或板。

    CAN 总线是开路的(未连接外部电缆)、我们没有安装终端电阻器。因为我们在这种情况下认为我们没有连接到其他任何地方。因此、在这种情况下、通常还不需要终端电阻器。

    但是、结果是我们安装了120欧姆端接电阻器后、波形看起来正常。

    我们还有其他产品在 CAN 上运行。通常情况下、终端电阻是否安装取决于客户。具体取决于通信距离。

    这就是我们的硬件工程师告诉我的内容。

    如果我们板上有120欧姆等固定终端电阻器、那么客户可能知道也可能不知道120欧姆的固定终端电阻器、然后自己安装另一个、这会产生两个终端电阻器。在这种情况下、我不知道这会是什么问题吗?

    非常感谢您的帮助!

    延东

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

    我很高兴这项建议对你有用。 我将要求硬件团队成员在这里提供一个答案、说明如果线路两次终止会发生什么情况。

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

    谢谢 Schuyler!

    如果您有任何建议、请立即通知我!

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

    您好 Yandong、

    CAN 标准要求连接电缆两端使用120欧姆电阻器端接。 这是 TI 应用手册 《控制器局域网物理层要求》中的一个内容。 传输到未端接电缆将不会提供有效的信令。  

    高速 ISO 11898标准规范适用于最大信号传输速率为1Mbps、总线长度为40m 且节点数最多为30个的应用。 它还建议最大非端接存根长度为0.3m。电缆指定为具有120 Ω 特性阻抗(Zo)的屏蔽或非屏蔽双绞线。 该标准定义了采用网络拓扑的单根双绞线电缆、如图6所示。 它在两端使用120 Ω 电阻器端接、这些电阻器与线路的特性阻抗相匹配、以防止信号反射。 根据 ISO 11898标准、应避免在节点上放置 RL、因为如果节点与总线断开连接、总线线路将失去端接。

    此致、Bill

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

    谢谢 Bill!

    这说明了晶体清晰。