Convert ADCLO
reference
~20 conversions
Are
any codes
0?
Yes
No
Calculate the average
output code of the
conversions
Subtract the average from
the value in the OFFTRIM
register and write result back
to the OFFTRIM register
Add 40 (decimal)
to the OFFTRIM
register
www.ti.com
ADC Circuit
459
SPRUI07–March 2020
Submit Documentation Feedback
Copyright © 2020, Texas Instruments Incorporated
Analog-to-Digital Converter (ADC)
7.2.5.2 Offset Error Correction
The 2833x ADC supports offset correction via a 9-bit field in the ADC Offset Trim
Register(ADCOFFTRIM). The value contained in this register will be added/subtracted before the results
are available in the ADC result registers. This operation is contained in the ADC module, so timing for
results will not be affected. Furthermore, since the operation is handled inside the ADC, the full dynamic
range of the ADC will be maintained for any trim value.
The ADCOFFTRIM register is pre-loaded by the ADC_cal routine in the boot ROM. To further reduce the
offset error in the target application, connect the signal ADCLO to one of the ADC channels and convert
that channel, modifying the value in the ADCOFFTRIM, until a centered zero code is observed. See
Figure 7-6 for a flow diagram.
Figure 7-6. Flow Chart of Offset Error Correction Process
Example 7-1. Negative Offset
At startup, most of the reference conversions yield a zero result. After writing the value 0x28 (40 decimal) into
the OFFTRIM register, all of the reference conversions give a positive result and average out to 0x19 (25
decimal). The final value written to the OFFTRIM register should be 0x0F (15 decimal).
Example 7-2. Positive Offset
At startup, all of the reference conversions yield a positive result with an average of 0x14 (20 decimal). The
final value written to the OFFTRIM register should be 0x1EC (-20 decimal).
After the offset error correction process is completed, a half bell curved distribution similar to Figure 7-7
should be seen when multiple ADCLO samples are converted. The other half of the bell curve is hidden
due to the fact that the converter bottoms out at a code of zero.