主题中讨论的其他器件: LAUNCHXL-F28P65X、LP-AM263、 SysConfig
工具/软件:
尊敬的团队:
我们通过 CAN 将 AM2634板与 LaunchXL-F28P65X 连接时遇到问题。 我们无法成功通过 CAN 传输数据。 我们应该在两块电路板上检查哪些配置来实现 CAN 通信? 我们是否还应考虑其他因素?
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.
工具/软件:
尊敬的团队:
我们通过 CAN 将 AM2634板与 LaunchXL-F28P65X 连接时遇到问题。 我们无法成功通过 CAN 传输数据。 我们应该在两块电路板上检查哪些配置来实现 CAN 通信? 我们是否还应考虑其他因素?
嗨、Ralph
我们在外部连接了 CAN 端口、AM263X 上的 MCAN1 (MCAN1_CAN_H、 MCAN1_CAN_L、GND)通过 J5以及 F28P65X 上的 CAN_HI、CAN_LO 和 GND 通过 J14连接。
在内部、在 SysConfig 文件中:
您好、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 通信、并确认它们运行正常。 具体来说:
AM263X_CC 板:
F28P65X 板:
MCAN 收发器状态:
尊敬的 Anjana:
感谢分享这些详细信息、由此确认电路板之间没有硬件配置问题。 这些是 这些电路板的最常见问题、尤其是由于 AM26x 侧的 MUX 参与。 接下来、我将向 CAN 专家汇报、他们可以帮助您更好地完成后续步骤。
我最开始的想法包括确保 CAN 数据速率和其他协议相关设置正确。 还确认两个器件都作为 CAN-FD 工作(我预计会是、但可能会进行健全性检查)。
此致、
Ralph Jacobi
尊敬的 Fleenor:
如前所述、同一板内使用环回模式的 MCAN 通信正常运行。 此外、两个相同电路板之间的通信也能按预期工作。
但是、当尝试在 AM263X_CC 板和 F28P65X 板之间建立 MCAN 通信时、通信将失败。 我们遇到 MCAN_INTR_SRC_PROTOCOL_ERR_DATA 中断、由于以下情况、传输失败:
can_bus->tx_done!=true
没有满足。
此外、即使将 S4 (CAN 路由)开关设置为0、该问题仍然存在。
我们需要有关如何进一步排除和解决此问题的指导。 您能否提供有关潜在原因和调试步骤的见解?
尊敬的 Fleenor:
我已探测所有场景的 CAN_H 和 CAN_L 行、并将结果记录在随附的 PDF 文件中。 PDF 中包含的屏幕截图捕获了通信过程中观察到的信号波形和任何异常。
PDF 中涵盖的方案如下:
F28P65X 至 F28P65X 通信:
AM2634到 AM2634通信:
F28P65X 至 AM2634通信:
F28P65X 发送到 AM2634:
AM2634发送到 F28P65X:
请查看包含这些波形屏幕截图的 PDF 文档、并告诉我们应该如何进一步进行调试和解决问题。
e2e.ti.com/.../CAN-Probe-_2D00_-File.pdf
您好、Anjana、
您能否确认用于这些测试的 LP-AM263x EVM 版本?
使用 MCAN1接口时、电路板的 E2版本存在一个已知问题。
如果是这种情况、您能否拆下盖 C85和 C86并重新测试?
此致、
Zackary Fleenor
您好、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) |
使用上述时序参数时、我们观察到以下结果:
当 AM2634_CC 尝试向 F28P65X_LP 发送数据时:
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.
当 F28P65X_LP 尝试向 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
嗨、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 位计时计算器来验证和微调时序参数、从而在两个电路板之间建立可靠的通信。
此外、我们尝试使用上述频率来设置位计时计算器并进行检查、我们无法进行通信并获得与之前相同的误差。


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