阅读:1273回复:7
大侠们一定来帮帮我啊!!!
isp1581的DMA部分是不是只是为主机DMA VENDOR命令准备的???
只能对主机发来的DMA VENDOR命令做出响应??? 人命关天,望各路高手不吝做答,小弟给您作揖了 :( |
|
沙发#
发布于:2004-05-27 10:45
顶到有人来帮
|
|
板凳#
发布于:2004-05-27 12:05
你可以发一个vendor命令还声明一个dma传输的开始,然后用另一个vendor命令来声明一个dma传输的结束。
当然也可以不这样做,你可以设置对epxin端点的第一个nak产生中断,这样上位机读取数据时马上就可以有一个中断产生,你在这个中断里启动dma,之后的中断就是数据的ack中断了,当然也有可能还会出现第一个nak中断,这都标志端点为空,没有大碍。 |
|
地板#
发布于:2004-05-27 14:27
我是设备只接收数据
按照你的第二种方法,我可以不对host端软件进行任何修改而进行dma传输了? 然后设置对epxout端点的第一个nak产生中断??? |
|
地下室#
发布于:2004-05-27 15:50
设备直接收数据的话那更简单,因为设备接收到数据后会发送ack给主机,这个ack会产生中断,你在这个中断里启动dma传输,把数据从端点读走就是了,至于怎么读你自己决定。
|
|
5楼#
发布于:2004-05-27 16:05
设备直接收数据的话那更简单,因为设备接收到数据后会发送ack给主机,这个ack会产生中断,你在这个中断里启动dma传输,把数据从端点读走就是了,至于怎么读你自己决定。 请问这个ACK触发INTERUPT寄存的器哪一位? 我一收数据就触发RX1(我在描述符里BULK接收端点用的RX1),却收不到DMA中断。 另外既然在描述符里说明了接收端点,那怎么才能使接收到的数据进入到DMA里设置的端点呢?端点描述符里可没有DMA端点这一类啊。 |
|
6楼#
发布于:2004-05-27 17:04
应该是rx1中断,其他的我就不清楚了,我对dma方式了解的很少。实在抱歉
|
|
7楼#
发布于:2004-05-27 17:36
我明白你的意思了
你的意思是:还是BULK方式来收数据,只是收进FIFO的数据往设备内存里写的时候用DMA。我看DATASHEET DMA部分的寄存器好像不是给这种方式用的,我也不知道自己理解的对不对。这也就是我第一个贴子里问的问题。 任老大你对我的帮助实在太大了,所以千万别说客气话。我已经很感谢了!!! 期待其他高手释疑。 |
|