阅读:5721回复: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-01 20:17
建议仔细读一下9054 手册第6章,LOCAL INTERRUPT;
看是否有没想到的地方。 而且最好能传一份时序图,便于大家分析提建议! |
|
地板#
发布于:2008-04-02 13:41
是不是由于MARBR[16,7:0]设置使能本地总线的Local Bus Latency Timer的缘故,仅供参考...也请楼主如果搞定了共享一下
|
|
|
地下室#
发布于:2008-04-02 21:01
好的,谢谢楼上两位的忠告!
我先试下! 晚上将时序图上传哈! 谢谢 |
|
5楼#
发布于:2008-04-02 22:23
我的项目硬件架构,FPGA和9054之间的连接,我用的是一条30cm长的屏蔽线(会不会这个干扰比较大,造成数据传输不稳定啊??),见附件图一
附件图二是正常运行的情况下,我用逻辑分析仪测得的时序图 附件图三是在9054死机的情况下测得的时序图 请大牛帮帮忙!! 谢谢 |
|
|
6楼#
发布于:2008-04-08 15:24
楼主9054 PCI配置空间的Device ID 写多少,9054h还是5046h?
|
|
|
7楼#
发布于:2008-04-11 13:07
引用第6楼765shm于2008-04-08 15:24发表的 : 9054h 有问题吗? |
|
8楼#
发布于:2008-04-14 11:05
我也在做FPGA+9054,也遇到了类似的问题,依然没有解决:
不过参照时序图,提2个建议,希望有用: 1、你的local_data数据所占时钟周期不一样?? 2、可以检查一下fifo(fifo的那些标志信号并不一定可信,可能出现错误时你没有抓到到),是不是可能溢出。 在FPGA做一下fifo溢出处理,建议最好用内部逻辑分析仪看(xilinx、altera都有) 3、问题2,lint问题只能问论坛大牛了或再看手册,俺也没搞明白(正在坚持查找俺自己项目的问题,等清楚了马上告诉你) |
|
9楼#
发布于: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! 能留下你的联系方式吗? |
|
10楼#
发布于:2008-04-21 17:32
pzczly@163.com
我用的是ready_n信号,没用LINT信号(由PC控制本地的读写)。并参照datasheet时序图来做; 你那种方法lready信号disable掉,是不用ready信号么?(要是这样的化感觉不行吧) |
|
11楼#
发布于:2009-06-02 21:22
我也遇到了你这个问题,感觉好像是某个时刻ready信号长时间置高造成的。
|
|
12楼#
发布于:2010-03-05 14:05
受启发
|
|