
RM0453 Rev 2
541/1454
RM0453
Analog-to-digital converter (ADC)
591
18.3.7 Configuring
the
ADC
Software must write to the ADCAL and ADEN bits in the ADC_CR register if the ADC is
disabled (ADEN must be 0).
Software must only write to the ADSTART and ADDIS bits in the ADC_CR register only if
the ADC is enabled and there is no pending request to disable the ADC (ADEN = 1 and
ADDIS = 0).
For all the other control bits in the ADC_IER, ADC_CFGRi, ADC_SMPR, ADC_CHSELR
and ADC_CCR registers, refer to the description of the corresponding control bit in
ADC_AWDTRx registers can be modified when conversion is ongoing.
Software must only write to the ADSTP bit in the ADC_CR register if the ADC is enabled
(and possibly converting) and there is no pending request to disable the ADC (ADSTART =
1 and ADDIS = 0).
Note:
There is no hardware protection preventing software from making write operations forbidden
by the above rules. If such a forbidden write access occurs, the ADC may enter an
undefined state. To recover correct operation in this case, the ADC must be disabled (clear
ADEN = 0 and all the bits in the ADC_CR register).
18.3.8
Channel selection (CHSEL, SCANDIR, CHSELRMOD)
There are up to 18 multiplexed channels:
•
12 analog inputs from GPIO pins (ADC_INx)
•
4 internal analog inputs (Temperature Sensor, Internal Reference Voltage, DAC internal
channel1, V
BAT
channel)
•
2 reserved analog inputs (ADC V
IN
[16] and V
IN
[15])
It is possible to convert a single channel or a sequence of channels.
The sequence of the channels to be converted can be programmed in the ADC_CHSELR
channel selection register: each analog input channel has a dedicated selection bit
(CHSELx).
The ADC scan sequencer can be used in two different modes:
•
Sequencer not fully configurable:
The order in which the channels are scanned is defined by the channel number
(CHSELRMOD bit must be cleared in ADC_CFGR1 register):
–
Sequence length configured through CHSELx bits in ADC_CHSELR register
–
Sequence direction: the channels are scanned in a forward direction (from the
lowest to the highest channel number) or backward direction (from the highest to
the lowest channel number) depending on the value of SCANDIR bit
(SCANDIR = 0: forward scan, SCANDIR = 1: backward scan)