AnsweredAssumed Answered

Controlling DMA clock in regular simultaneous ADC

Question asked by zach.juergen on Sep 14, 2012
Latest reply on Sep 15, 2012 by fm
Dear colleagues,

        The CPU is an STM32F407IG, and I am using the standard peripheral libraries for STM32F4xx (both answers in the context of the library or the registers directly are appreciated).

        I'm using ADC1 and ADC2 in regular simultaneous mode to measure two independent signals at the same time. I set the ADC clock to 18MHz based on the peripheral timer:

RCC_PCLK2Config(RCC_HCLK_Div2);
and
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4.

Then I use DMA2_Stream0 to copy the data to an array
__IO uint16_t ADCDualConvertedValue[2]
, all of which works nicely.

The question is whether there is an elegant way to control the dma transfer rate. I guess I could leave it at 16 MHz (same as ADC) and add a separate timer-based interrupt to read out the target array. But that sounds like a waste of resources, and I was looking for a way to control the DMA clock. Ultimately, a measurement frequency of only up to 1 kHz is needed. Any hints which direction to take?

Thanks in advance,

JJ

Outcomes