TI中文支持网
TI专业的中文技术问题搜集分享网站

OMAPL138使用UPP接收数据出现DPFI中断错误

我用OMAPL138的upp模块读取FPGA端发送过来的数据,UPP只用作接收,单通道75M运行。程序运行时,首先FPGA端给DSP中断,之后,DSP首先初始化UPP的三个参数值,即UPID0、UPID1、UPID2,之后UPP开始接收数据,接收完之后等待下一次FPGA端发送的中断。(两次中断间时间间隔为200微妙,UPP传输数据量为7200word,word为16bit,所以两次中断的时间间隔足够UPP接收完7200个16bit的数据),每次UPP都写入到同一个SDRAM地址范围内,但是运行过程中发现DPEI中断出现了,用计数器累加时,发现大部分都是DPEI中断,而EOWI中断数量却很少。如果在写UPID0、UPID1、UPID2寄存器前先用while(((CSL_UppReg->UPIS2) & 0x02) != 0x02)判断的话,这样不会出现DPEI中断了,但是得到的EOWI中断的数目要远远少于正常数目,也就是丢包了。时间,计算着完全够用。不知道咋回事。有知道的帮忙解答一下吧,谢谢啦

Zou Liuhua:

回复 shaotu zhu:

我也注册了NMI中断(硬中断),和EOWI中断(软中断),但中断一直没有触发,不知道是不是中断服务程序没有成功注册的缘故,我现在用轮询接收upp数据,明显来不及接收,还得使用中断。能否将你的例程(含中断)发给我参考一下。谢谢了!

shaotu zhu:

回复 Zou Liuhua:

 kkkkkk=(Upp_handle->DPEI=1)     |

       ((Upp_handle->UORI=1)<<1)|

       ((Upp_handle->ERRI=1)<<2)|

       ((Upp_handle->EOWI=1)<<3)|

       ((Upp_handle->EOLI=0)<<4);

  CSL_UppReg->UPIEC &=0x0000;//先清除

     CSL_UppReg->UPIES=kkkkkk;

你把对应的中断打开不行吗?我就是这样打开的中断,接收完一次会产生一次相应中断。

还有一个就是进入了中断后,你要及时的清除对应的中断位,手册上有那部分程序的。你试试吧。

赞(0)
未经允许不得转载:TI中文支持网 » OMAPL138使用UPP接收数据出现DPFI中断错误
分享到: 更多 (0)