GPDMA GPIO to memory with external clock pulse?

01 Apr 2012

Hi,

Can the GPDMA of the LPC1768 be used for GPIO (8bit wide) to memory transfer with an external clock to 'clock in' the data? According to the datasheet GPIO to memory is possible with a timer but in my case I have an external clock that indicates (on the rising edge) that the 8bit data is stable.

Thanks for any help.

Regards, Sjoerd

02 Apr 2012

Sjoerd,

Yes, you can program a counter-timer to trigger DMA as you have requested. I don't think there is a library for doing it yet, so you have to do all register-level programming 'by-hand'.

For the mbed, your first hurdle is finding a string of 8 pins that can connect to a byte-aligned memory location. If you don't mind solder connections to two otherwise un-connected pins, you might try P2.0 .. P2.7 (P2.6 and P2.7 need the soldering).

Next, pick a suitable counter-timer. For C-T#3, you can use mbed pin #9 in mode 4 to access CAP3.0. Then program C-T#3 for external clock of the required edge polarity, set the count limit to '1' count with DMA trigger and reset-to-zero when the limit is reached. Finally, program a DMA channel for byte transfer (with no source increment) from Port P2.0 to your DMA buffer or buffer chain.

Note that I still leave all the details to you :-).