RM0453 Rev 5 537/1450
RM0453 Analog-to-digital converter (ADC)
591
Software calibration procedure
1. Ensure that ADEN = 0, AUTOFF = 0, ADVREGEN = 1 and DMAEN = 0.
2. Set ADCAL = 1.
3. Wait until ADCAL = 0 (or until EOCAL = 1). This can be handled by interrupt if the
interrupt is enabled by setting the EOCALIE bit in the ADC_IER register
4. The calibration factor can be read from bits 6:0 of ADC_DR or ADC_CALFACT
registers.
5. To reduce the noise effect of the calibration factor extraction, the software can make
average of eight CALFACT[6:0] values (optional).
Figure 59. ADC calibration
Calibration factor forcing Software Procedure
1. Ensure that ADEN = 1 and ADSTART = 0 (ADC started with no conversion ongoing)
2. Write ADC_CALFACT with the saved calibration factor
3. The calibration factor is used as soon as a new conversion is launched.
Figure 60. Calibration factor forcing
18.3.4 ADC on-off control (ADEN, ADDIS, ADRDY)
At power-up, the ADC is disabled and put in power-down mode (ADEN = 0).
As shown in Figure 61, the ADC needs a stabilization time of t
STAB
before it starts
converting accurately.
t
CAB
ADCAL
ADC State
ADC_DR[6:0]
0x00
MS33703V1
CALIBRATE
OFFStartup
OFF
by S/W by H/W
CALIBRATION
FACTOR
ADC_CALFACT[6:0]
ADC state
F2
F1
F2
Ready (not converting) Converting channel Ready Converting channel
(Single ended) (Single ended)
Updating
calibration
MS31925V1
by S/W
Internal
calibration factor[6:0]
Start conversion
(hardware or software)
WRITE ADC_CALFACT
CALFACT[6:0]
by H/W