Showing results for 
Search instead for 
Did you mean: 

Configuring SDADC and ADC Repeat Triggering With DMA

Associate II
Posted on January 16, 2016 at 07:06

I am triggering ADC1 from TIM4->CCR4 and SDADC1 from TIM4->CCR1. ADC1 is configured for regular conversions and no injected conversions. SDADC1 is configured for injected conversions and no regular conversions.

For both converters I need the conversions transferred by DMA into buffer arrays on every trigger from TIM4. When the arrays are filled, and the callback is called, I need the conversions to stop until the next triggers from TIM4. I hope to do this witout having to call HAL_ADC_Start_DMA() and HAL_SDADC_InjectedStart_DMA() every time the buffers are filled.

Should the DMA mode be Circular or Normal?

Should Continuous Mode be enabled or disabled?

Posted on January 16, 2016 at 15:12

Do you need to keep changing the buffer address where you store the values? If NO use circular

Do you want to sample at some triggered intervals, or continuously?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Associate II
Posted on February 13, 2016 at 02:07

I need the data to be placed in the same buffer address range each time.

I need the SDADCs triggered at regular intervals, every time the timer triggers it.