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

Max DMA transfer speed

Note: This was originally posted on 4th January 2009 at http://forums.arm.com

My application requires that I transfer data from a external device connected via one of the gpio ports. I need to transfer data at about 40MSps. 8 bit samples.

From what I have read about the DMA controller, I can get transfers at 1/4 the clock speed (1/4 of 72MHz). Is that correct? I was think of pulling in two samples at a time (use a 16bit buffer).

Also, if I want to get data from the GPIO port, what would be the dma configuration that most makes sense? My external device is a A/D. I have to clock it somehow. assuming I can use any peripheral to drive the dma which should I use?


Thanks!
  • Note: This was originally posted on 5th January 2009 at http://forums.arm.com

    Hi, sorry for the lack of info (was late when i posted)

    I am using a cortex M3. Currently I am using an eval board from STMicro, but we aren't fixed on using STMicro's product.

    From the data sheets, the gpio ports can be configured to run at upto 50Mhz.

    The limiting issue that I see is that the DMA runs at 1/4 the main clock speed.

    What I was planning to do was buffer the incoming 36MSps 8bit data into a 16bit buffer and read in two samples per dma transfer cycle (at 18MHz).

    Does that sound doable (i have never used dma before so i may be totally mistaken in whats possible)?

    Thanks
  • Note: This was originally posted on 5th January 2009 at http://forums.arm.com

    What device are you using?
  • Note: This was originally posted on 5th January 2009 at http://forums.arm.com

    Be aware that many microcontrollers have slow GPIO peripherals, so even though your DMA can operate at that speed, your GPIO may not be able to. The data sheet should contain this information.

    If that is a problem for you, you might want to consider using some kind of communications peripheral. I²C is common on both microcontrollers and ADC chips, as is SPI. Either would be suitable. Whilst the throughput may appear slower than a parallel solution, some microcontrollers have communications peripherals that are capable of faster pin transitions than the GPIO blocks and your processor would be free to do other tasks, so it may work out better.