AnsweredAssumed Answered

ADC and DAC via DMA

Question asked by renga.flavio.001 on Jul 12, 2016
Hi,
I need to know the exact sequence to be adopted (if any) in order to use the STM32F3xx HAL drivers to implement the ADC multimode conversion with transfer by DMA, using two separate DMA channels for master and slave.


In fact, the UM1786 report at page 72 the following:
- For devices with several ADCs: ADC multimode conversion with transfer by DMA:
- Activate the ADC peripheral (slave) using function HAL_ADC_Start() (conversion start pending ADC master)
- Activate the ADC peripheral (master) and start conversions using function HAL_ADCEx_MultiModeStart_DMA()
- Wait for ADC conversion completion by call of function HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback() (these functions must be implemented in user program)
- Conversion results are automatically transferred by DMA into destination variable address.
- Stop conversion and disable the ADC peripheral (master) using function HAL_ADCEx_MultiModeStop_DMA()
- Stop conversion and disable the ADC peripheral (slave) using function HAL_ADC_Stop_IT()


Using the mentioned sequence, it is only possible to set the master DMA buffer address (i.e., using the HAL_ADCEx_MultiModeStart_DMA() function).
How can I set the slave DMA buffer address?


My goal is to sample two different inputs at the same time and, using the DMA, transfer the data to two different arrays.

Outcomes