DMA with handshaking?

12 Mar 2011

Maybe the reason I am having trouble understanding this is because the answer is 'no', but my question is - Can DMA on the mbed be set-up to take and/or put bytes to an I/O port with the timing set by hardware handshaking via 2 (other) pins, or can this only be done by interrupt-driven handshaking?

12 Mar 2011

No. The timing is a function of the src and dst of the GPDMA (between which is a fifo within the DMA). So it works "as fast as it can" to move your data.

12 Mar 2011

Hi,

Page 597 mentions a DMACSoftBReq register that can be used to initiate burst by writing a bit. On page 599 mentions DMACSync for syncronizing DMA requests.

Perhaps these might be of use (maybe you can setup interrupt on the pin and initiate a DMA burst)

12 Mar 2011

Andy,

What about internal periferals, i.e. how might the DMA match pace with the USB end points for, say, 64 byte output packets?

12 Mar 2011

It is not worth to setup a DMA to transfer small amount of memory. You'll end up being slower. USB has it's own DMA engine to transfer data. You don't need to setup another one for it.