打印
[PIC32/SAM]

mcp2515通信接收问题算不算是设计bug

[复制链接]
1977|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
abcxyz621|  楼主 | 2019-4-2 07:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 abcxyz621 于 2019-4-2 07:22 编辑

有没有人遇到用mcp2515做的can接口,在接收总线数据时,当接收多组数据且帧间隔小于1毫秒时(250k波特率),可收到多次中断,但好像mcp2515接收缓存器不刷新,从其缓存器中读出的数据总是首先接收到的第一帧数据,如果接收的多组数据帧间隔改为大于1毫秒,又接收正常,数据每组不同,感觉是接收缓存器更新不及时,不知是不是这个芯片的设计问题,还有mcp2515是否能手动更新缓存或清缓存器呢,不用清中断来自动更新缓存的方法,请高手赐教!

使用特权

评论回复
沙发
零三翟邢止胃| | 2019-4-2 08:17 | 只看该作者
不知道的啊! 可以的啊!!!!!

使用特权

评论回复
板凳
abcxyz621|  楼主 | 2019-4-2 08:23 | 只看该作者
零三翟邢止胃 发表于 2019-4-2 08:17
不知道的啊! 可以的啊!!!!!

可以是指什么,能手动刷新缓存器吗,怎么刷,设置哪一个寄存器,望赐教!

使用特权

评论回复
地板
yjmeishao| | 2019-4-2 09:32 | 只看该作者
建议参考下第三方MCP2515驱动例程
只能帮到这里了

使用特权

评论回复
5
systemchip| | 2019-4-2 10:32 | 只看该作者
不存在这种问题,这取决于你有没有及时去读取接收buffer内的内容,如果没有及时读取,会产生溢出,导致无法接收新数据,你可以使用rollover,这样相当可以得到多一级缓存

使用特权

评论回复
6
abcxyz621|  楼主 | 2019-4-2 19:31 | 只看该作者
yjmeishao 发表于 2019-4-2 09:32
建议参考下第三方MCP2515驱动例程
只能帮到这里了

就是用的第三发例程移植的,你那是否有可供参考的驱动例程,若有请发我邮箱:cxy.5313@163.com,谢谢了!

使用特权

评论回复
7
abcxyz621|  楼主 | 2019-4-2 19:37 | 只看该作者
systemchip 发表于 2019-4-2 10:32
不存在这种问题,这取决于你有没有及时去读取接收buffer内的内容,如果没有及时读取,会产生溢出,导致无法 ...

已使用滚存,但当用zlgcan做测试时连续发3帧不一样的数据,发送间隔设为0,产生三次中断,有时能从rx0与rx1缓存器中都收到数,数据都正确,有时只能从rx0中收到数,三帧数都一样,都是发出的第一帧数的值,搞不清程序时序逻辑哪里有问题,望赐教!

使用特权

评论回复
8
sensitivity| | 2019-4-10 16:34 | 只看该作者
可能是溢出了,导致数据写不进去了

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝