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.

[参考译文] AM2634:AM263X 和 AMP;F28P65X:CAN 通信问题

Guru**** 2448780 points
Other Parts Discussed in Thread: LP-AM263, AM2634, LAUNCHXL-F28P65X, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1481438/am2634-am263x-f28p65x-can-communication-issue

器件型号:AM2634
主题中讨论的其他器件: LAUNCHXL-F28P65X、LP-AM263、 SysConfig

工具/软件:

尊敬的团队:

我们通过 CAN 将 AM2634板与 LaunchXL-F28P65X 连接时遇到问题。 我们无法成功通过 CAN 传输数据。 我们应该在两块电路板上检查哪些配置来实现 CAN 通信? 我们是否还应考虑其他因素?

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

    您好、Anjana、

    对于初学者、您在每个主板上使用哪些 CAN 端口?

    我只熟悉 LP-AM263、但我可以与一位了解另一个电路板的专家合作、一旦我知道要重点关注哪两个端口、就会检查是否存在任何依赖关系。

    此致、

    Ralph Jacobi

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

    嗨、Ralph

    我们在外部连接了 CAN 端口、AM263X 上的 MCAN1 (MCAN1_CAN_H、 MCAN1_CAN_L、GND)通过 J5以及 F28P65X 上的 CAN_HI、CAN_LO 和 GND 通过 J14连接。

    在内部、在 SysConfig 文件中:

    • 在 AM263X 上、MCAN1_RX 和 MCAN1_TX 已启用。
    • 在 F28P65X 上、GPIO4和 GPIO5已配置为用于 CAN 通信。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Anjana、

    这便解释了问题。 您正在  F28P65X LaunchPad 上使用正确的 CAN 信号、因为 J14接头是上面带有 CAN 收发器的接头。

    但在 LP-AM263上、您需要使用 MCAN0和 J33端子接头。 MCAN1/J5引脚没有连接 CAN 收发器。 LP-AM263上唯一的 CAN 收发器位于 MCAN0上、并输出到 J33接头。

    或者、您 可以将来自 MCAN1的信号从 J5连接到板载 CAN 收发器、然后连接到  F28P65X LaunchPad。

    CAN 总线的两侧都需要一个收发器、没有这个收发器、就无法进行通信。

    此致、

    Ralph Jacobi

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

    嗨、Ralph

    不同应用 AM263X_CC 不是 LP-AM263 。 。 MCAN1 上的终端接口 AM263X_CC 连接方式 MCAN1_CAN_H、MCAN1_CAN_L 和 GND 、通过路由 J5

    我们测试了 CAN 环回模式 并且工作正常。 不过、在连接两块电路板时、需要考虑以下几点 CAN 通信 、我们无法传输数据。

    尝试从中发送数据时 AM263X_CC 最终目的 F28P65X 、我们遇到了中断 MCAN_INTR_SRC_PROTOCOL_ERR_DATA 和传输因情况而发生故障 can_bus->tx_done!= true 没有满足。

    请帮忙调试它。

    提前感谢。

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

    您好、Anjana、

    感谢您澄清使用的 EVM、很抱歉我误以为使用了 LP-AM263。 我没有意识到 CC 上的 MCAN1接头是 J5。

    对于 CC、需要执行一个额外的步骤来启用 MCAN 收发器、涉及通过写入 I2C 扩展器来控制 MCAN1_STB 引脚。

    这在附加的 C 文件中进行处理、该文件是我们 SDK 的一部分、可在 mcan_external_read_write 等示例中找到。

    检查是否已实现此项、如果未实现、请在 AM263x CC 示例上实现、然后重试。 如果这样无法解决问题、我需要联系 CAN 专家、他们可以进一步调试问题。  

    e2e.ti.com/.../mcan_5F00_external_5F00_read_5F00_write.c

    此致、

    Ralph Jacobi

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

    嗨、Ralph

    我们已分别在 AM263X_CC 和 F28P65X 板上测试了 MCAN 通信、并确认它们运行正常。 具体来说:

    1. AM263X_CC 板:

      • 我们通过两个 AM263X_CC 板的 MCAN 接口连接了两个 AM263X_CC 板、并验证了通信是否按预期运行。
      • 此外、测试了内部环回模式并发现其工作正常。
    2. F28P65X 板:

      • 同样、我们通过其 MCAN 接口连接了两个 F28P65X 板、并确认 MCAN 通信成功。
      • 内部环回模式也在这些板上进行了测试、并且工作正常。
    3. MCAN 收发器状态:

      • AM263X_CC 和 F28P65X 板上均启用了 MCAN 收发器。
      • 使用环回模式在同一板内进行通信以及两块相同板之间进行通信均正常工作。

    问题

    • 当尝试在 AM263X_CC 板和 F28P65X 板之间建立 MCAN 通信时、通信失败。
    • 连接的建立方式如下:
      • AM263x_CC:MCAN1信号(MCAN1_CAN_H、MCAN1_CAN_L 和 GND)通过 J5进行路由。
      • F28P65X:MCAN 信号(CAN_HI、CAN_LO 和 GND)通过 J14连接。
    • 尽管使用了正确的接线配置、但两块电路板仍无法通过 MCAN 接口进行通信。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anjana:

    感谢分享这些详细信息、由此确认电路板之间没有硬件配置问题。 这些是 这些电路板的最常见问题、尤其是由于 AM26x 侧的 MUX 参与。 接下来、我将向 CAN 专家汇报、他们可以帮助您更好地完成后续步骤。

    我最开始的想法包括确保 CAN 数据速率和其他协议相关设置正确。 还确认两个器件都作为 CAN-FD 工作(我预计会是、但可能会进行健全性检查)。

    此致、

    Ralph Jacobi

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

    嗨、Ralph

    我们正在使用 CAN-FD、我们已确认从我们这边正确配置了 CAN 数据速率和其他协议相关设置

    您能分享我们问题状态的最新信息吗? 如有任何新的见解或进展更新、我们将不胜感激

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

    尊敬的 Anjana:

    到目前为止、我已经查看了所提供的信息。

    是否可以探测 CAN_H/CAN_L 和 CAN_RX/CAN_TX 线路、以验证从 CAN 总线到 CAN 收发器再到 MCU 的信号链是否正确。

    当您说通信失败时、这实际上意味着什么? 确切的故障特征是什么?

    此致、

    Zackary Fleenor

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

    您是否还能确认 F28P65x LaunchPad 上 S4 (CAN 路由)开关的设置? 看起来这看起来默认设置为1、用于将 CAN TX/RX 信号路由到 BoosterPack、而不是连接到 J14接头的 CAN 收发器(U15)。

    -Zackary Fleenor

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

    尊敬的 Fleenor:

    如前所述、同一板内使用环回模式的 MCAN 通信正常运行。 此外、两个相同电路板之间的通信也能按预期工作。

    但是、当尝试在 AM263X_CC 板和 F28P65X 板之间建立 MCAN 通信时、通信将失败。 我们遇到 MCAN_INTR_SRC_PROTOCOL_ERR_DATA 中断、由于以下情况、传输失败:

    can_bus->tx_done!=true

    没有满足。

    此外、即使将 S4 (CAN 路由)开关设置为0、该问题仍然存在。

    我们需要有关如何进一步排除和解决此问题的指导。 您能否提供有关潜在原因和调试步骤的见解?

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

    您好:

    哪个设备首次遇到故障?

    您能否探测 CAN_H/CAN_L 行并提供屏幕截图? 我们需要确切了解两个器件之间的信号是什么样子的。

    您是否还可以探测故障器件的 CAN_TX/CAN_RX 线路?

    我还在努力并行设置以尝试重现问题。 您能否共享用于这两个器件的工程文件以进行额外调试?

    此致、

    Zackary Fleenor

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

    尊敬的 Fleenor:

    我已探测所有场景的 CAN_H 和 CAN_L 行、并将结果记录在随附的 PDF 文件中。 PDF 中包含的屏幕截图捕获了通信过程中观察到的信号波形和任何异常。

    PDF 中涵盖的方案如下:

    1. F28P65X 至 F28P65X 通信:

      • 连接两个 F28P65X 器件时 CAN 信号的行为。
    2. AM2634到 AM2634通信:

      • 连接两个 AM2634器件时 CAN 信号的行为。
    3. F28P65X 至 AM2634通信:

      • F28P65X 发送到 AM2634:

        • F28P65X 重复尝试向 AM2634传输数据。
        • 相同的传输过程会重试多次、直到最终超时并失败。
      • AM2634发送到 F28P65X:

        • 当 AM2634向 F28P65X 发送数据时、会遇到 MCAN_INTR_SRC_PROTOCOL_ERR_DATA 错误、指示数据传输期间存在协议问题。

    请查看包含这些波形屏幕截图的 PDF 文档、并告诉我们应该如何进一步进行调试和解决问题。

    e2e.ti.com/.../CAN-Probe-_2D00_-File.pdf

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

    嘿、Anjana、

    请允许我在几天内查看此信息并做出适当的回复。 初步检查发现、将两个不同器件连接在一起时似乎存在明显的阻抗失配、这表示为 CAN 总线上的缓慢/四舍五入转换(与类似 EVM 的正确匹配阻抗相比)。

    您使用什么来连接这两个器件? 所有3种测试设置都使用相同的电缆/连接器?

    谢谢。此致、

    Zackary Fleenor

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

    您能否确认 LaunchPad 上的跳线 JP9已连接、以便将120Ω 端接电阻插入 CAN 总线电路?

    此致、

    Zackary Fleenor

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

    嗨、Fleenor

    我们使用跳线在两个器件之间建立 CAN 连接。 所有三种测试场景中均采用相同的连接器和接线设置、以确保测试条件保持一致。

    此外、LaunchPad 上还连接了跳线 JP9。 这可确保120Ω 端接电阻器正确插入 CAN 总线电路、这对于信号完整性和正确通信至关重要。

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

    您好、Anjana、

    您能否确认用于这些测试的 LP-AM263x EVM 版本?

    使用 MCAN1接口时、电路板的 E2版本存在一个已知问题。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1220660/lp-am263-lp-am263-mcan1-signal-question/4676731#4676731

    如果是这种情况、您能否拆下盖 C85和 C86并重新测试?

    此致、

    Zackary Fleenor

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

    嗨、Fleenor

    我们不使用 LP-AM263x;相反、我们的设置包括 AM263x-CC 和 F28P65X_LP。 鉴于此硬件配置、调试我们所面临问题的推荐方法是什么? 具体来说、我们应该如何验证这两个器件之间的 MCAN 通信并对其进行故障排除?

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

    尊敬的 Anjana:

    感谢您提供更多信息。 因为您使用的是 AM263x-CC。 您能否确认您已编程到 MCAN1接口并连接到电路板中心的 J5跳线?

    此致、

    Zackary Fleenor

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

    尊敬的 Fleenor:

    我们已编程到 MCAN1接口、并将其连接到电路板上的 J5跳线。 此外、我们还附加了设置图像、以供您参考。  

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

    您好、Anjana、

    感谢您分享此信息。 由于我赶上了多个项目、因此对延迟的回复深表歉意。 连接两个 AM263x 控制卡时、您提供的示波器屏幕截图中存在一些明显的信号衰减。 我仍在努力、以便在我这边检查一个等效设置。 感谢您的耐心。

    同时、作为测试、您能否确认 CAN 总线的时序参数? 您能否尝试以较低的数据速率运行并查看是否有任何变化?

    此致、

    Zackary Fleenor

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

    尊敬的 Fleenor:

    我们尝试以较慢的数据速率运行、但仍然遇到问题。

    以下是两个电路板上配置的 CAN 时序参数:

    参数

    AM2634 (80 MHz、1Mbps/5Mbps)

    F28P65X (100 MHz、1Mbps/5Mbps)

    标称波特率预分频器

    8 (0x8)

    10 (0xA)

    标称时间段1

    63 (0x3F)

    63 (0x3F)

    标称时间段2

    16 (0x10)

    16 (0x10)

    标称同步跳转宽度

    16 (0x10)

    16 (0x10)

    数据波特率预分频器

    8 (0x8)

    10 (0xA)

    数据时间段1

    15 (0xF)

    15 (0xF)

    数据时间段2

    4 (0x4)

    4 (0x4)

    数据同步跳转宽度

    4 (0x4)

    4 (0x4)

    使用上述时序参数时、我们观察到以下结果:

    1. 当 AM2634_CC 尝试向 F28P65X_LP 发送数据时:

      • 在 AM2634_CC 上、我们接收以下输出:

        MCAN Interrupt Status: 0x10000000
        ERR (App_mcanIntrISR): MCAN_INTR_SRC_PROTOCOL_ERR_DATA
        CAN Transmission Status = -3

      • On the F28P65X_LP, there are no logs or indications of receiving data.

       

    2. 当 F28P65X_LP 尝试向 AM2634_CC 发送数据时:

      • 在 AM2634_CC 上、我们会接收重复的中断状态日志:

        MCAN Interrupt Status: 0x08000000
        MCAN Interrupt Status: 0x08000000
        ..
        ..
        MCAN Interrupt Status: 0x08000000

      • On the F28P65X_LP, it continuously attempts to send data, but there is no acknowledgment or response from the AM2634_CC.



    您能否确认我们设置的频率、数据速率和时序参数值是否正确?

    如果存在任何不一致或错误的配置、请指导我们如何纠正这些错误?

    此外、如果您建议执行任何特定的调试步骤或检查、请告知我们。

    非常感谢您的支持。

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

    嘿、Anjana、

    感谢您提供此信息。 我会花一些时间来回顾并提供更多反馈。

    同时、请查看这些文档、看看是否有任何帮助您改进工作的地方。

    调试控制器局域网(CAN)物理层的基础知识- https://www.ti.com/lit/slyt529

    用于 CAN 位时序参数的计算器-https://www.ti.com/lit/sprac35

    当 AM263x_CC 正在发送时、F28P65x_LP 没有显示连接/问题的迹象、这一事实令人感兴趣。 您是否已将 CAN 总线分析仪或任何类似设备连接到系统?

    此致、

    Zackary Fleeenor

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

    嘿、Anjana、

    在您为 CAN 时序参数提供的表中、AM2634 -80MHz 和 F28P65x -100MHz 值的值来自哪里?

    您是否使用了 CAN 位计时计算器来验证这些值?

    此致、

    Zackary Fleenor

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

    嗨、Fleenor

    对于 AM2634、在表13-262的 TRM 中、称为    400 MHz 的 DPLL_CORE_HSDIV0_CLKOUT0。  默认 MCANn 分频器为5。 因此、400 MHz CLK 为 MCAN/5 = 80 MHz。  

    此外 、对于 F28P65x、在 SysConfig 文件的时钟域视图中、在 MCANA 时钟下、它被称为100MHz。

    只有这些我们尝试了检查它。 但您能否确认我们所使用的位时序是否正确? 此外、我们使用以下公式  

    bitrate=CAN 时钟 频率/(预分频器×(1+TSEG1+TSEG2​))

    如果我们错了、请纠正我们。

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

    嘿、Anjana、

    您能否在运行期间确认以下寄存器的值:

    MSS_RCM_MSS_MCAN0_CLK_SRC_SEL 寄存器(5320 8100h)

    MSS_RCM_MSS_MCAN0_CLK_DIV_VAL 寄存器(5320 8200h)

    这将为我们提供真正的时钟值。

    如果您参阅上面链接的 CAN 位时序计算器电子表格、其中提到 BitRate 实际上是应用/系统实现中 CAN 总线上预期的比特率。 比特率不是配置要求的结果、而是配置值是比特率要求的结果。

    另一个不错的选择是:  Kvaser 针对 CAN FD 的位计时计算器

    这两个计算器都根据输入总线参数提供 Tseg1、Tseg2、SJW 和 BRP 的标称配置。

    此致、

    Zackary Fleenor

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

    嗨、Fleenor

    对延迟的回复表示歉意。

    我们已经检查了以下寄存器的值、我们从"Memory Browser"中读取这些值:

    • MSS_RCM_MSS_MCAN0_CLK_SRC_SEL

    • MSS_RCM_MSS_MCAN0_CLK_DIV_VAL

    此外、我们并联使用 CAN 位计时计算器来验证和微调时序参数、从而在两个电路板之间建立可靠的通信。

    此外、我们尝试使用上述频率来设置位计时计算器并进行检查、我们无法进行通信并获得与之前相同的误差。

    您能帮助我们查看这些价值观、并为我们提供可能遗漏的任何信息吗?

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

    嘿、Anjana、

    我为这个混乱而道歉。 请记住、仅 MCAN1连接到 AM263xCC 上的 CAN 收发器。 所有这些配置都必须针对 MCAN1外设而不是 MCAN0外设进行。 MCAN1使用您连接到的 J5跳线。

    请验证 MCAN1配置是否正确。

    此致、

    Zackary Fleenor