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.

[参考译文] PROCESSOR-SDK-AM335X:CAN0问题

Guru**** 2609955 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/580887/processor-sdk-am335x-can0-issue

器件型号:PROCESSOR-SDK-AM335X

您好!

我在使用 CAN0时遇到了一些奇怪的行为、希望有人能够提供一些见解。 我已成功使用 CAN1验证了一些传感器软件。 但是、当使用 CAN0时、我看到以下情况:

  • 当连接到250k 或500k 的 CAN 收发器时、TX 线在19kHz 左右振荡、并且在不关闭总线的情况下不会停止(IP 链路设置 CAN0向下/向上)。
  • 当未连接到 CAN 收发器或以125k 连接到 CAN 收发器时、我只能发送一个 CAN 帧。 在 CAN TX 线路上没有出现进一步的尝试、即输出总线的掉电并重新上电。
  • 操作系统在访问 CAN0时没有显示错误。

是否有人看到或听到过与此问题类似的内容?

谢谢、
Tom

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

    您使用的是什么软件? 您能否发布原理图中的 CAN0相关部分?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用自己的通信软件、但为了消除软件问题的任何可能性、我改用了 cansend 并看到了相同的行为。

    Cansend CAN0 123#DEADBEEF

    我已附上 CAN 收发器的链接原理图。 参见 U47。

    谢谢、

    Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您在哪里可以看到这些振荡? 您还可以在处理器侧布置 CAN 连接吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    振荡发生在处理器的 CAN TX 线上。 它仅在收发器连接时发生。

    在处理器端、由于 TX/Rx 线路直接连接到引脚 J18/K15、因此实际上没有什么可显示的。 它们配置如下:

    0x120 (PIN_INPUT_PULLUP | MUX_MODE1)/*(K15) gmii1_txd2.dcan0_Rx *
    0x11c (PIN_OUTPUT PULLUP | MUX_MODE1)/*(J18) gmii1_txd3.dcan0_TX *

    Tom
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是非常奇怪的。 我从未见过或听说过这样的问题。 您是否检查过 pinmux 在代码后面没有被其他条目覆盖? 您的 VDDSHV5电源轨是否为3.3V?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我曾考虑过这一点。 我找不到任何引脚定义步进此配置。 我使用的是 Yocto 构建环境、过去、当发现引脚分配冲突时、它引发了构建错误。 但我还没有完全排除它。

    VDDSHV5为3.3V。 我还应该补充的是、AM335x 本身位于 Phytec 生产的 SOM 上。 我更换了它、仍然只能发送一个 CAN 帧。

    Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以下是其 Bosch D/D_CAN 设备树信息。 如果此处的任何内容有用:

    git.phytec.de/.../c_can.txt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将 d_CAN1路由到 MMC 引脚并启用表明其行为与 d_CAN0相同。 我上次对 CAN 进行测试时、使用的是较旧的 BSP 版本、如15.x 我还记得、在较早的版本中、TI 高端 CAN 控制器已启用。 在本例中,将禁用该功能,并启用 Bosch CAN 驱动程序。 我认为 TI 展示了一个配置示例、证实了这一点。 这是我的 CAN 驱动程序配置:
    编号
    CAN 设备驱动程序
    编号
    未设置 CONFIG_CAN_VCAN
    CONFIG_CAN_SLCAN 未设置
    CONFIG_CAN_DEV_y
    CONFIG_CAN_CAL_BITMING=y
    CONFIG_CAN_LED 未设置
    未设置 CONFIG_CAN_TI_HECC
    CONFIG_CAN_FLEXCAN 未设置
    CONFIG_CAN_GRCAN 未设置
    CONFIG_CAN_RCAR 未设置
    CONFIG_CAN_SJA1000未设置
    CONFIG_CAN_C_CAN=y
    CONFIG_CAN_C_CAN_Platform=y
    未设置 CONFIG_CAN_M_CAN
    CONFIG_CAN_CC770未设置
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您联系 Phytec 以获得有关此方面的支持。 我们无法在第三方电路板上提供帮助。 以下是 Linux CAN 驱动程序 wiki、如果可以通过任何方式为您提供帮助、请访问 :processors.wiki.ti.com/.../Linux_Core_DCAN_User's_Guide
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    我们发现、通信问题的根本原因是总线传感器侧的端接电阻器连接问题、加上总线本身由于电路板布局而产生的额外总线电容。 但是、仍然无法解释振荡的原始问题、并返回到 AM335x 上的 CAN 控制器。 在125k 的低波特率下、总线关闭条件如预期的那样出现。 在较高的波特率下、不会发生总线关闭情况、CAN 控制器 TX 线继续以19kHz 的频率进行脉冲。 故障状态的唯一指示器是总线上的器件无响应。  

    我也会提请 Phytec 注意这一点。

    谢谢、

    Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只能重复一遍、我从未在任何 Sitara 器件上看到或听说过此类问题。 您能否发布振荡信号的屏幕截图?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然、在这里。 黄色是 Tx、蓝色是 Rx。 当终端电阻器出现时、总线将从不良连接中恢复、并检测到 CAN 总线无源错误。 在125k 时、总线关闭错误会发生。 我也希望在50万的时候会有巴士掉线、但在 CAN 错误处理方面可能会有一些误解。

    谢谢、

    Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有关此范围的一些问题包括:

    您捕获的19Khz 波形是随流量还是不随流量发生?
    TI EVM 上是否出现19KHz 波形?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    我有一个 Phytec AM335X 开发套件、但尚未尝试在该电路板上重现此问题、我需要切换到较旧的开发。 分支并重新编译内核以执行此操作。 总线上没有其他流量、只有一个器件、无论器件是否已连接、以500k 的速度发送单条消息后都会出现该信号。

    我也一直在和 Phytec 讨论这个问题、他们没有对此进行解释。 当我能够阻断一些时间并让您知道我在那里看到的内容时、我将会看到这在评估套件上是否可重现。  

    谢谢、

    Tom