HI
在使用 S32K310 的 MCAL 时,我遇到了一些问题。我在 MCAL 中创建了两个控制器 CAN1 和 CAN2。并使 CAN1 处于工作状态,每 500ms 发送一帧报文。奇怪的是,当系统开机或重新启动时,总线上会发送错误帧。此外,即使 CAN2 处于禁用状态,仍会触发错误帧。(如下图所示,PAGE1 为 CAN2,PAGE2 为 CAN1)。使用 JLINK 连接芯片进行调试时不会出现这种现象。
下面是我的 MCAL 驱动程序的初始化过程。
我使用的 MCAL 版本是 SW32K3_S32M27x_RTD_R21-11_5.0.0
我想知道排除故障的方法是什么。非常感谢。
您好,
1) 是的,FlexCAN 模块是独立的控制器。只要它们不在同一条总线上连接,来自CAN1的通信就不会影响CAN2。
2) RTD 版本文档中列出了已知问题列表
3) 是的,我预计会出现硬件问题。或者正如我所写的那样,可能只是启动期间的引脚初始化和收发器激活问题或类似问题。当初始化和启动 CAN 时,在分析器上尝试放大并添加信息。
BR, Petr
目前,我已将 CAN1 和 CAN2 设置为两条独立的 CAN 总线。我尝试在 CAN1 上发送信息,并将逻辑分析仪连接到 CAN2 的 TX 上观察波形。发现开机后总线电平确实发生了变化。我想确认:
1.在 MCU 内部,CAN1 和 CAN2 是两个独立的控制器吗?来自 CAN1 的任何通信都不应影响 CAN2,对吧?
2。我想知道在哪里可以找到 MCAL 的勘误表?
3.目前,我的故障排除方向是否应该更倾向于硬件 PCB 板上的接线问题?因为根据我的理解,CAN1 和 CAN2 不应该相互干扰。
非常感谢你们的帮助!
您好,
我看到重复调用Can_43_FLEXCAN_Init(&Can_43_FLEXCAN_Config); 这是不需要的。在将 CAN 恢复到正常状态之前,使用示波器/分析仪检查是否发送了错误帧,甚至在启动过程中检查模块 TX/RX 和 CAN 线路以查看预期信号。
BR, Petr