嗨,恩智浦社区、
我重定向了 CanIf_RxIndication 函数。当将 CAN 模块设置为环回模式时,测试成功,发送和接收的数据一致。
然而,当我退出环回模式时,却无法发送报文,Can_43_FLEXCAN_Write 函数返回 0x02(忙)。
MCU 的 tx 引脚与 rx 引脚数据同步,而不是预期发送的数据。Rx 数据比 tx 数据慢约 130ns,而且是连续发生的(大约每秒发送一帧)。
收发器是 TJA1043。我已将 STB 和 EN 引脚设置为高电平。CANH 和 CANL 保持不变。
下面是 ESR 寄存器的信息。请帮助排除可能的原因。
非常感谢!
Hi@Johnson97
在你提供的项目中,你的时钟配置完全错误。
您的 FXOSC 时钟为 20MHz
您设置的 MFI 为 120,ODIV2 为 4,超出了 PLL VCO 输出频率(240)的范围。
您必须遵循参考手册中的要求:
供你参考:
最后,不要忘记重新配置 FlexCan 的波特率设置。
抱歉,为该项目购买的 Autosar 软件包已指定使用此版本的 RTD。
因此,我需要根据该版本配置 mcal,并验证其是否无误。
您能安装这个版本并帮我排除故障吗?
Hi@Johnson97
您能否将 RTD 更新到新版本,或者修改 S32 DS 上的测试例程,以便我为您进行检查?(我还没有安装 RTD 版本)。
请查看随附的文件。RTD 软件包的版本是 sw32k3_s32m27x_rtd_rtd_r21-11_4.0.0_p19_d2403
Hi@Johnson97
请分享您的项目,我将花一些时间为您进行审查。
非常感谢。问题已经解决。
除上述问题外,CAN 波特率相关寄存器的配置也与手册中规定的有效值不符。
微控制器 tx 引脚的波形符合预期。随后的问题应与收发器有关。
再次感谢您!