单片机/MCU论坛
直播中

飞毛腿452

8年用户 900经验值
擅长:电源/新能源
私信 关注

CANFD SDL无法被接收到的原因?

我使用了 SDL 示例代码 T2G_Sample_Driver_Library_7.8.0tviibh8msrcexamplescanfdCANFDmain_cm0plus.c 但是收不到任何 CANFD 消息,如果把 cy_stc_canfd_config_t 的 .canFDMode 改为 false 就可以收到,是因为 BAUDRATE 与 DATARATE 的关系吗 ?,我应该要填多少 ?,该怎么从代码推算呢 ?

                                                                                                                                                                                                                                                                                                                                                                                                

回帖(1)

韩刚龙

2024-2-1 17:05:54
CANFD SDL无法被接收到的原因可能是由于以下几个方面引起的:

1. Baudrate和Datarate的设置不正确:在CANFD通信中,Baudrate是指物理层的传输速率,而Datarate是指数据层的传输速率。这两个参数需要正确配置,以便确保CANFD消息能够正常传输。可以参考CAN控制器芯片的技术手册或者相关文档来确定正确的Baudrate和Datarate。

2. CAN控制器的配置错误:在示例代码中,cy_stc_canfd_config_t结构体的.canFDMode参数设置为false时能够收到CANFD消息。这可能表明CAN控制器的配置存在问题,请确保配置项正确设置,包括Baudrate、Datarate、CAN FD模式等。

3. 硬件问题:检查硬件连接是否正确,包括CAN收发器、终端电阻等。确保CAN总线上的所有节点使用相同的Baudrate和Datarate设置。

为了确定正确的Baudrate和Datarate设置,你可以参考CAN控制器的技术手册或者寻找相关的参考文档。通常,可以从以下几个方面推算:

1. 确定CAN网络的要求:确定CAN网络要求传输的数据速率是多少,这可以根据实际应用情况确定。

2. 确定CAN控制器的能力:查阅CAN控制器的技术手册,确认CAN控制器支持的Baudrate范围和Datarate范围。

3. 考虑通信距离和环境干扰:对于长距离的通信或者存在严重干扰的环境,可能需要降低Baudrate和Datarate,以提高通信的稳定性。

一旦确定了Baudrate和Datarate设置,你可以根据技术文档或者示例代码来设置对应的参数,以确保CANFD消息能够正常接收。如果问题仍然存在,可能需要检查硬件连接和CAN控制器的配置,以排除其他潜在问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分