打印

MCP2517FD 接收数据一段时间后停止接数据

[复制链接]
2798|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ZhouZhengtian|  楼主 | 2020-5-1 21:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     使用MCP2517FD时仅作接收时,如果总线上帧与帧的间隔太短,发现MCP2517FD就会停止接收数据,即使后续读做数据读出也不会恢复(采用查询接收数据)。也没有捕捉到2517FD出错的中断。不知大侠们是否遇到过类似的问题。我估计2515是不是也有类似问题。

使用特权

评论回复
沙发
Latin_newday| | 2020-5-8 10:08 | 只看该作者
帧与帧的间隔太短是多长时间?
有可能触发芯片保护机制了,尝试复位一下芯片。

使用特权

评论回复
板凳
yjmeishao| | 2020-5-8 16:30 | 只看该作者
通过过滤把不相关的帧过滤,不然MCP2517总是处于接收状态去通知上位机做处理,很容易溢出。
出现停止接收的时候,可以读取下出错状态,看是否处于bus off。

使用特权

评论回复
地板
XCYuanAndJYJ| | 2021-4-7 11:31 | 只看该作者
楼主解决了吗

使用特权

评论回复
5
systemchip| | 2021-4-12 11:35 | 只看该作者
只有发送器才会有BUS OFF状态,接收节点不会产生BUS OFF, 很大的原因可能是接收溢出导致,尤其是在用查询的方式进行处理,你应该考虑使用中断的方式来提高系统响应处理能力

使用特权

评论回复
6
李不走寻常路| | 2021-10-28 19:34 | 只看该作者
请问您的问题解决了吗,我也遇到相同的问题了

使用特权

评论回复
7
李不走寻常路| | 2021-11-5 18:43 | 只看该作者
我也遇到了同样得问题,已经解决了,是RAM空间不足导致的,MCP2517的RAM是2k,在配置MCP2517的FIFO寄存器得时候会配置FIFO的的存储深度(也就是每个FIFO最多存储几个CAN报文,最大应该是32个)以及每个CAN报文的字节数(CANFD最大携带64字节的数据),我的情况就是这里没有考虑RAM的大小(注意FIFO存放的CAN报文就是放在RAM里的)。假如使用了一个FIFO,存储深度为20,则,1*20*72=1440字节(已经1K多了)。72是每帧报文实际占用的字节数,即64+8=72,如果报文中携带时间戳的话就是76了,即64+8+4=76。当然这是携带64字节有效数据的情况下。这时候你还要把发送FIFO考虑进去,因为发送FIFO和接收FIFO共用2K的RAM。如果对这些不是很明确的话,很容易把RAM用完,而导致错误。我就是反复看技术手册发现的,我经过调整接收及发送FIFO的配置后,即尽量节约使用RAM,所以我遇到的问题解决了。希望看到的人也有帮助。

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝