Data Sheet

MPR121 Sensor
16 Freescale Semiconductor
12. Auto Configuration Registers (0x7B~0x7F)
In real application, the capacitance on each of the 13 channels can be various very differently depending on the electrode
pattern, size, overlay and base material dielectric constant used for each channel. For example, the proximity channel
ELEPROX may have a quite larger capacitance than the other individual electrode. The global CDC and CDT value may not fit
all the channels in these cases that the charge is either not strong enough to detect weak capacitance change or too big that
overflow the ADC detectable range.
To optimize the charge setting for each channel, the individual CDCx (I), CDTx (T) need to be properly set if the channel
difference is large. There will be total 26 parameters need to be set if 13 channels are all used. This may consume a lot of
time on trial and test with all possible combinations of different electrode pattern, size, overlay and base material dielectric
constant, charge current value and charge time value used.
However, with auto-configuration, this task can be easily done by MPR121 automatically inside with binary search process on
proper CDCx(I) and CDTx(T) combination so the charge level is as close to a target level as possible. Normally the target
charge level (I x T) may be simply put at close to the input linear upper limit so the highest charge field can be produced to
detect weak capacitance change. The upper limit and lower limit levels are also needed to provide the necessary searching
boundaries. After auto configuration, the proper CDCx and CDTx for each channel are found and automatically filled.
The AUTO-CONFIG runs only once at first transition from Stop Mode to Run Mode. The AUTO-RECONFIG is supplements of
AUTO-CONFIG. If electrode data goes out of valid range during normal measurement, AUTO-RECONFIG starts binary search
for that electrode.
There are 5 registers in this group. Register 0x07D to 0x7F provided the configuration target settings. Registers 0x7B and
0x7C are the auto configuration control registers. Refer to application note AN3889 for details on how to set these registers.
Upper Side Limit Register (0x7D)
Bit
D7
D6
D5
D4
D3
D2
D1
D0
Read
USL
Write
Lower Side Limit Register (0x7E)
Read
LSL
Write
Target Level Register (0x7F)
Read
TL
Write
Note similar to the baseline value, all the three parameters are in the 8bit format but internally treated as the 8MSB of 10bit
data.
USL: Upper Side Limit. This value makes sure that the electrode data level is below the linear upper limit range VDD-0.7V.
Typically the USL is set at the maximum linear limit.
USL = (VDD-0.7) / VDD x 256
LSL: Lower Side Limit. This value results the lower limit for the electrode data. To make sure the touched electrode data still in
the limit, the LSL should be low enough to prevent unnecessary out of range error. In a typical touch application, for example,
the LSL can be set at 65% of the USL, that is
LSL = (VDD-0.7) / VDD x 256 x 0.65
TL: Target Level is the expected target electrode data level when untouched after auto configuration. MPR121 executes binary
search on the proper setting of the charge current and/or charge time for each channel to hit the target level as close as
possible. The TL shall be in between the Upper Side Limit (USL) and Lower Side Limit (LSL), and should be as high as
possible to maximize the sensing charge field to get the maximum touch response.
Note the linear input range for ADC is limited from VDD-0.7 to 0.7V for each channel. To anticipate possible capacitance
decrease range and VDD variation, for example, a typical setting for TL is 90% of the USL, that is
TL= USL x 0.9 = (VDD-0.7) / VDD x 256 x0.9
If a searching result is outside the range limited by USL and LSL, an Out Of Range (OOR) error will be reported at the end of
auto configuration (refer to next section). Set the USL and TL as close to the linear upper input limit as possible will result the
highest possible charge to detect weak capacitance change. Note in case where VDD is changing, the lowest VDD value shall
be used to prevent OOR error.