cancel
Showing results for 
Search instead for 
Did you mean: 

DMA - Pheriperal to Memory max Speed

Skadi F
Associate II
Posted on March 27, 2017 at 14:16

Hi,

I'm using a STM32F429 operating at 168 MHz. I want to read in 16 GPIO pins (one port) via DMA. I'm curious what's the maximum input rate is, for a certain number of consecutive level changes (read out of an external ADC).

Has anyone an idea? I couldn't find anything in the reference manual.

BR

Skadi

#stm32f429 #p2m #maxiumum-speed #dma
4 REPLIES 4
Posted on March 27, 2017 at 14:27

Read AN4031.

You won't find a definitive number, though, for the obvious reasons that this depends on several factors - trigger source synchronization, bus contention.

You may also want to consider using FMC and/or DCMI, and/or some external glue logic.

JW

Posted on March 27, 2017 at 15:35

Probably close to 21 MHz, but you'll get an overwhelming amount of data, and a lot of contention. I'd also expect jitter in the sample point/rate

Consider using the DCMI bus, admittedly not 16-bit wide, but could use 8-bit mode. Or the F(S)MC

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Skadi F
Associate II
Posted on March 28, 2017 at 11:51

Hi,

thanks for the replies. The maxim speed I achieved was around ~30 MHz. According to Clive One's comment, I think that's the upper end .

Does anyone know if it is possible to use two DMA streams simultaneously, by means of 32 GPIO pins tiggered by extrenal clock signal? I'm trying to read in 32 GPIO pins, but I'm not able to enable the two DMA streams simultaneously.

BR

Skadi

Posted on March 28, 2017 at 13:04

You may also want to consider using FMC

JW