阅读:5563回复:12
请教一个9054 DMA 传输的问题!多次传输后9054自锁!!!!
小弟在开发fpga+9054的数据采集系统,本地时钟为40MHz,数据位宽为32位,
fpga方面是一个FIFO供9054读数据,我将FIFO大小设为32k,每当FIFO>16K是由9054发起本地中断LINT#。在9054方面,我采用的是DMA传输方式,对LINT#采用的是查询方式,查INCSR的状态位,一旦有中断来了后,就DMAstart(); ,然后再DMAClose(myhDev,hDma); ,在DMA的工作方式中,我设置dmamode =0x0143H ,size =16K ! 采用block DMA方式, burst 方式, 现在我的问题是: 1,在执行DMA操作时,刚开始前100多次,都是正常的,都能读到数据到内存。但是读了1分钟后,9054就停在那边不动了!我用逻辑分析仪查看时,发现 lhold = 1, ads = 1, blast = 1, lint = 0 , 但是9054就是不响应???? 2,在执行DMA block 传输的时候,我将wait,breqi等信号都没有使用,为什么每10个burst 周期,9054就释放本地总线一次,然后再重新申请一次,不是应该在DMA传输中一直占用本地总线的吗? 很困惑,麻烦各位高手帮帮忙!!不胜感激! |
|
沙发#
发布于:2008-04-01 10:44
虚心求问!
|
|
板凳#
发布于:2008-04-02 21:01
好的,谢谢楼上两位的忠告!
我先试下! 晚上将时序图上传哈! 谢谢 |
|
地板#
发布于:2008-04-02 22:23
我的项目硬件架构,FPGA和9054之间的连接,我用的是一条30cm长的屏蔽线(会不会这个干扰比较大,造成数据传输不稳定啊??),见附件图一
附件图二是正常运行的情况下,我用逻辑分析仪测得的时序图 附件图三是在9054死机的情况下测得的时序图 请大牛帮帮忙!! 谢谢 |
|
|
地下室#
发布于:2008-04-11 13:07
引用第6楼765shm于2008-04-08 15:24发表的 : 9054h 有问题吗? |
|
5楼#
发布于:2008-04-15 12:53
引用第8楼pzczly于2008-04-14 11:05发表的 : local_data 数据所占的时钟周期不一样是这样造成的,我用xilinx内部的逻辑分析仪查看的,逻辑分析仪的采样周期我设为是5ns,而本地总线的时钟周期是25ns,占空比是1:1的,所以有时在采样出来的信号占空比是3:2 或3:2 ,导致时钟周期不一样!!! fifo的的标志信号,确实不可信的,特别是fifo reset 后,很多信号不可信的! 对于死锁的问题,我昨天将lready信号disable掉,就不会出现死锁了!但是有时数据读出来会出错的! 不知道这样是否可行!!!??? 我的联系方式为xluowell@hotmail.com ,QQ : 342918298! 能留下你的联系方式吗? |
|