[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [usb] dma



On Thursday 25 July 2002 12:07 pm, meizx@ict.ac.cn wrote:
> Thanks,rudi,
> I am still not so clear about the second problem.For example,in output
> operation,if the buffer1 is full,the usb core will assert an interrupt to
> the usb function controller.Then the function controller will download
> the data from buffer1.As you have said,only 1 buffer,buffer0,is used in
> DMA mode,how the function deal with buffer1?
> Regards
> MeiZX

Lets assume you are using an external DMA (like WB_DMA that
I wrote).

Once everything is setup, you should not have the USB function
send you interrupts when the buffers are full/empty. It should only
send you interrupts when errors occur.

The external DMA will interact with the USB funct. core through
request/ack lines.

The whole idea is to make data flow completely smooth and
transparent.

At the beginning during initialization phase the function CPU must
interact with the USB bus to follow propers setup procedure. The
control endpoint is never DMA based and must send interrupts to
the CPU. For CTRL endpoints I use buffer0 for OUT transfers and
buffer1 for IN transfers.

After setup is completed, there should be no moper traffic from the
CTRL endpoint (or very very little). So you should leave interrupts
enabled for CTRL endpoint.


Regards,
rudi


--
To unsubscribe from usb mailing list please visit http://www.opencores.org/mailinglists.shtml