ZhouZhengtian 发表于 2020-5-1 21:11

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

   使用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

楼主解决了吗

systemchip 发表于 2021-4-12 11:35

只有发送器才会有BUS OFF状态,接收节点不会产生BUS OFF, 很大的原因可能是接收溢出导致,尤其是在用查询的方式进行处理,你应该考虑使用中断的方式来提高系统响应处理能力

李不走寻常路 发表于 2021-10-28 19:34

请问您的问题解决了吗,我也遇到相同的问题了

李不走寻常路 发表于 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,所以我遇到的问题解决了。希望看到的人也有帮助。
页: [1]
查看完整版本: MCP2517FD 接收数据一段时间后停止接数据