[STM32G4] STM32G474 发送CANFD数据出现异常,FIFO满,没有bus-off

[复制链接]
3241|9
 楼主| stormwind123 发表于 2024-5-11 15:49 | 显示全部楼层 |阅读模式
环境:stm32g474re,加上主板,CAN总线上一共有9个节点,其中有一个节点是CAN扩展帧协议,其他为CANFD BRS开启,标准帧

配置:仲裁域 1M 80%,数据域 5M 75%,开启自动重传

问题现象:通信过程,长时间测试,偶现主板无法往总线上刷数据,我们是一主多从方式,主板依次轮询每个节点的信息,一问一答式,总线上测到无信号,CAN寄存器看到无bus-off,DLEC 和LEC错误码都为7,TEC为0,REC为1,TXFIFO为满

尝试手段:

CAN H和CAN L短路,这样会导致bus off,和我们看到的寄存器状态不匹配,排除;

把主板的CAN从总线断路,TXFIFO为满,应该是开了重传,fifo数据一直在尝试重发,新的数据进不来。这样符合看到问题时的寄存器状态,但是重新接回总线,异常能够恢复,FIFO恢复正常,但是我们的问题是出现后,一直无法恢复,通过重新初始化CAN能够恢复,所以不像是CAN总线接触不良。

问题:所以还有什么情况会造成FIFO一直满的情况,还发送不出数据到总线
laocuo1142 发表于 2024-5-11 16:14 | 显示全部楼层
如果发送数据的速率高于CAN总线的处理能力,FIFO可能会快速填满并导致溢出。
flycamelaaa 发表于 2024-5-11 19:00 | 显示全部楼层
接收速率不足
powerantone 发表于 2024-5-11 22:00 | 显示全部楼层
检查CANFD配置是否正确
 楼主| stormwind123 发表于 2024-5-11 22:00 | 显示全部楼层
优化数据发送速率
Bowclad 发表于 2024-5-12 22:22 | 显示全部楼层
速度不行是吧
classroom 发表于 2024-5-13 16:00 | 显示全部楼层
如果发现问题是由硬件连接引起的
probedog 发表于 2024-5-14 16:00 | 显示全部楼层
更新配置
大鹏2365 发表于 2024-7-28 23:45 | 显示全部楼层
当TXFIFO满时,意味着数据无法继续进入FIFO,这通常是由于数据未能成功发送到总线上。可能的原因包括总线忙碌、节点无法应答等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

605

主题

3747

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部