User manual

...the world's most energy friendly microcontrollers
2012-04-24 - Giant Gecko Family - d0053_Rev0.96 690
www.energymicro.com
The effects of changing the calibration register values are given in Table 28.5 (p. 690) . Step
by step calibration procedures for offset and gain are given in Section 28.3.10.1 (p. 690) and
Section 28.3.10.2 (p. 690) .
Table 28.5. Calibration Register Effect
Calibration Register ADC Result Calibration Binary Value Calibration Hex Value
Lowest Output 0111111 3F
Offset
Highest Output 1000000 40
Lowest Output 0000000 00
Gain
Highest Output 1111111 7F
The offset calibration register expects a signed 2’s complement value with negative effect. A high value
gives a low ADC reading.
The gain calibration register expects an unsigned value with positive effect. A high value gives a high
ADC reading.
28.3.10.1 Offset Calibration
Offset calibration must be performed prior to gain calibration. Follow these steps for the offset calibration
in single mode:
1. Select wanted reference by setting the REF bitfield of the ADCn_SINGLECTRL register.
2. Set the AT bitfield of the ADCn_SINGLECTRL register to 16CYCLES.
3. Set the INPUTSEL bitfield of the ADCn_SINGLECTRL register to DIFF0, and set the DIFF bitfield to
1 for enabling differential input. Since the input voltage is 0, the expected ADC output is the half of
the ADC code range as it is in differential mode.
4. A binary search is used to find the offset calibration value. Set the SINGLESTART bit in the
ADCn_CMD register and read the ADCn_SINGLEDATA register. The result of the binary search is
written to the SINGLEOFFSET field of the ADCn_CAL register.
28.3.10.2 Gain Calibration
Offset calibration must be performed prior to gain calibration. The Gain Calibration is done in the following
manner:
1. Select an external ADC channel (a differential channel can also be used).
2. Apply an external voltage on the selected ADC input channel. This voltage should correspond to the
top of the ADC range.
3. A binary search is used to find the gain calibration value. Set the SINGLESTART bit in the
ADCn_CTRL register and read the ADCn_SINGLEDATA register. The target value is ideally the top
of the ADC range, but it is recommended to use a value a couple of LSBs below in order to avoid
overshooting. The result of the binary search is written to the SINGLEGAIN field of the ADCn_CAL
register.