打印
[STM32G4]

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

[复制链接]
1961|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 | 只看该作者
接收速率不足

使用特权

评论回复
地板
stormwind123|  楼主 | 2024-5-11 22:00 | 只看该作者
优化数据发送速率

使用特权

评论回复
5
powerantone| | 2024-5-11 22:00 | 只看该作者
检查CANFD配置是否正确

使用特权

评论回复
6
Bowclad| | 2024-5-12 22:22 | 只看该作者
速度不行是吧

使用特权

评论回复
7
classroom| | 2024-5-13 16:00 | 只看该作者
如果发现问题是由硬件连接引起的

使用特权

评论回复
8
probedog| | 2024-5-14 16:00 | 只看该作者
更新配置

使用特权

评论回复
9
大鹏2365| | 2024-7-28 23:45 | 只看该作者
当TXFIFO满时,意味着数据无法继续进入FIFO,这通常是由于数据未能成功发送到总线上。可能的原因包括总线忙碌、节点无法应答等。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

438

主题

2263

帖子

3

粉丝