微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 请教,这里有用mcp2510的大侠吗?

请教,这里有用mcp2510的大侠吗?

时间:12-12 整理:3721RD 点击:
我们的arm9平台上,mcp2510在退出发送或接收中断处理程序后,会很快再次进入中断服务程序1次,但此时检查CANSTAT和CANINTF均为0。虽然执行一次中断服务程序本身的时间很短只有us级,但是linux内核调用一次中断却需要消耗毫秒级的时间。一个结果就是,由于中间那个空中断消耗了毫秒级的时间,所以,当我们在连续接收多个帧的时候,如果每个帧之间的时间间隔小于1ms,后面的某个帧很容易因为来不及取走而出现错误和被丢弃,从而造成接收丢帧。
我们也检查了硬件中断线(有上拉)上的信号,示波器观察arm9对应的中断输入管脚上并无微秒级或以上的杂波。
请问各位大侠,上述情况一般是什么原因造成的?如何进一步定位和解决?(目前由于和mcp2510通信的其他设备是购买,所以他们发送的帧的时间间隔不可能调整到超过1ms)。
新手请教,如有不周,还望见谅。谢谢!

哦,没看懂

那就看看中断寄存器,是哪个中断啊。。
不可能状态寄存器里面没有啊。

嗯,我看了mcp2510的中断寄存器flag,发现里面是0,表示无任何中断
所以,刚开始推测可能是mcp2510的中断输出管脚到arm9的中断输入管脚
之间有毛刺信号造成的。可是用GHz的示波器只观察到了正常的中断脉冲
并未看到叠加的毛刺信号。
谢谢!

那就检查中断触发模式的设置是否正确。
看描述很像被设置成了双边沿或电平触发。

建议lz去找一找mcp2510的errata sheet,这个器件有很多bug,看看能不能和你的现象对上

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top