This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LPC3131 : DMA and MCI interface

Hi,

I'm trying to perform DMA transfer from LPC3131 internal RAM to MCI port.
MCI block got 32x32 Bits FIFOs, but I wish to perform 512 bytes transfer ideally without help of the CPU during the transfer.

Can I do this by programming main DMA controller and MCI DMA controller to perform a 512 bytes transfer. In other words does DMA controller is able to automatically manage FIFO of the MCI port ?
Or maybe I can use companion channels to achieve quite the same behaviour ?

Best regards

Parents Reply Children
  • You must configure the DMA to use destination flow control. Then the destination peripherial will inform the DMA when it can accept more data. This is basically the same as when you manually wants to send 512 bytes to a device that has a 32x4 byte FIFO. You will have to poll the status bits of the device, to see if the FIFO has room for more data, or you will have to let the target device create an interrupt when the FIFO can accepts more data. In this case, you configure the DMA channel to poll the status of the destination device.

  • Thanks a lot, I will do that.

    Best regards