阅读:2011回复:4
9054 dma传输暂停问题
c模式下,dma突发方式读local端fifo,当fifo读空后,而dma要求传输的数据没有传完,需要暂停传输,等fifo有数据后接着传输,现方案如下:
1 ready# 信号使能,当fifo空后,ready#置高,自动插入等待状态,fifo有数据后,ready#置低,dma传输自动继续传输。 2 使能BREQi,当fifo空后,BREQi置高,申请local总线,9054就拉低lhold,放弃local总线,此时dma停止传输;当fifo有数据后,BREQi置低,9054自动重新申请local总线,dma继续传输。 3 使能BTERM#,当fifo空后,BTERM#置低,传输暂停;当fifo有数据后,BTERM#置高,dma继续传输。 大虾们说说哪种方法可行? 还有个问题,EOT使能后,当它有效就使dma传输结束,而dma数据传输没有完成,当它无效后,dma会不会自动接着传输?? 我的qq 457129107 邮箱 zhangzhen.1982@stu.xjtu.edu.cn |
|
沙发#
发布于:2008-10-17 09:59
我也在弄这个问题,目前的做法是方法1
不过我目前我的fifo不会空,因为写的快,所以没出现问题. qq: 744015483交流下 |
|
|
板凳#
发布于:2008-09-16 15:44
方法2肯定可以 我现在用的就是这个
|
|
地板#
发布于:2007-09-03 00:11
个人以为三种方法都可以。
只是DMA传输时使能BTERM#后的传输速度最快。 EOT使能后,手册是terminate the DMA transfer.当它有效就使dma传输异常结束,当它无效后,dma不会自动接着传输了。 |
|
地下室#
发布于:2007-08-31 16:25
这么没人气啊,自己顶一下
|
|