RM0390 Rev 4 373/1328
RM0390 Analog-to-digital converter (ADC)
400
– DMA mode 3: This mode is similar to the DMA mode 2. The only differences are 
that the on each DMA request (two data items are available) two bytes 
representing two ADC converted data items are transferred as a half-word. The 
data transfer order is similar to that of the DMA mode 2.
DMA mode 3 is used in interleaved mode in 6-bit and 8-bit resolutions.
Example:
a)  Interleaved dual mode: a DMA request is generated each time 2 data items are 
available
1st request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0]
2nd request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0]
b)  Interleaved triple mode: a DMA request is generated each time 2 data items are 
available
1st request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0]
2nd request: ADC_CDR[15:0] = ADC1_DR[7:0] | ADC3_DR[15:0]
3rd request: ADC_CDR[15:0] = ADC3_DR[7:0] | ADC2_DR[7:0]
4th request: ADC_CDR[15:0] = ADC2_DR[7:0] | ADC1_DR[7:0]
Overrun detection: If an overrun is detected on one of the concerned ADCs (ADC1 and 
ADC2 in dual and triple modes, ADC3 in triple mode only), the DMA requests are no longer 
issued to ensure that all the data transferred to the RAM are valid. It may happen that the 
EOC bit corresponding to one ADC remains set because the data register of this ADC 
contains valid data.
13.9.1 Injected simultaneous mode
This mode converts an injected group of channels. The external trigger source comes from 
the injected group multiplexer of ADC1 (selected by the JEXTSEL[3:0] bits
 in the ADC1_CR2 
register). A simultaneous trigger is provided to ADC2 and ADC3.
Note: Do not convert the same channel on the two/three ADCs (no overlapping sampling times for 
the two/three ADCs when converting the same channel).
In simultaneous mode, one must convert sequences with the same length or ensure that the 
interval between triggers is longer than the longer of the 2 sequences (Dual ADC mode) /3 
sequences (Triple ADC mode). Otherwise, the ADC with the shortest sequence may restart 
while the ADC with the longest sequence is completing the previous conversions.
Regular conversions can be performed on one or all ADCs. In that case, they are 
independent of each other and are interrupted when an injected event occurs. They are 
resumed at the end of the injected conversion group.