> I need to transfer large amount of data via Bulk Endpoint with DMA to a
> USB Host.
>
> 1. How exactly is the communication between USB Host and Device (LPC)
> to the DMA-enabled endpoint?
>
> For example,
> A. Host is already requesting for data and therefore IN token is sent
> to device but device does not have data yet to transfer. What interrupt
> takes place? isit NewDD interrupt? INAK-BI? how is the mechanism of new
> DD interrupt? if slavemode is disabled, how can we receive Interrupt to
> indicate host request?
>
> B. Device has data to send to host, but host has not requested. Should
> the DMA be enabled at this point? or device need to wait for host to
> request then enable the DMA?
>
> Basically Im stil not clear in terms of the set of messages/interrupt
> that should happen during the process (from Host or Device) and how
> should they be handled
>
> 2. In the DMA Descriptor, what is the content of Word 2? address of the
> databuffer? can the databuffer located outside of the USB_RAM? or
> databuffer needs to be copied first into USB_RAM before enabling DMA?
>
> 3. if data tobe transffered is greater than 64 bytes, does it mean it
> requires more than one DD to transmit? do we have to prepare all DDs
> (for example 4 DDs to transfer 64*4 bytes) before we actually send (or
> enable the DMA)?
>
The TNKernel USB Bulk firmware has working DMA code that will answer
most of your questions:
http://www.tnkernel.com/usb_bulk.html
Joel

(You need to be a member of lpc2000 -- send a blank email to lpc2000-subscribe@yahoogroups.com )