最近在做一个ad7193的高速AD驱动,AD每采样一次都会触发一次低电平中断,中断用gpio引脚来实现,可是发现ad采样频率超过150左右后,中断就会丢失。也就说每秒钟最多能触发150次左右中断。请问是芯片问题还是驱动问题,使用linux3.2.0系统。
希望能得到帮助,谢谢!
yongqing wang:
中断函数中有做啥复杂操作吗
user5274408:
回复 yongqing wang:
以前有,出了问题我直接屏蔽了,现在里边只做一个计数。还是那样。
david hu1:
GPIO中断是有时间间隔的,而且必须达到一定时间才能触发中断,这个你可以做实验。并且你收到中断后还有屏蔽中断,处理数据,使能中断等过程,这里也是需要时间的。先看一下datasheet,再来评估一下需要是否可以满足。
user5274408:
回复 david hu1:
是啊,示波器测试采样频率完全没问题。以前代码确实有屏蔽,处理,使能。后来不是因为上面问题,就都删掉了,结果还是不达标。可能linux根本达不到实时性要求吧。我需要一秒处理1000个中断。
yongqing wang:
回复 user5274408:
你看看给Linux打个实时补丁能不能提高中断频率