MPR121
Sensors
12 Freescale Semiconductor, Inc.
5.3 Electrode Filtered Data Register (0x04~0x1D)
The MPR121 provides filtered electrode output data for all 13 channels. The output data is 10-bit and comes from the internal
2nd stage filter output. The data range is 0~1024 or 0x000~0x400 in Hex. Bit 0~7 of the 10-bit data are stored in the low byte and
bit 9 and bit 8 are stored in the high byte. The data is the measured voltage on each channel and inversely proportional to the
capacitance on that channel.
These registers are read only and are updated every {ESI x SFI}. A multibyte read operation to read both LSB and MSB is
recommended to keep the data coherency (i.e, LSB and MSB matching). A multibyte reading of 0x00~0x2A returns results of a
single moment without mixing up old and new data.
5.4 Baseline Value Register (0x1E~0x2A)
Along with the 10-bit electrode filtered data output, each channel also has a 10-bit baseline value. The update rate of these
registers is {ESI x SFI} if baseline tracking operation is enabled. These values are the output of the internal baseline filter
operation tracking the slow-voltage variation of the background capacitance change. Touch/release detection is made based on
the comparison between the 10-bit electrode filtered data and the 10-bit baseline value.
Note: Although internally the baseline value is 10-bit, users can only access the 8 MSB of the 10-bit baseline value through the
baseline value registers. The read out from the baseline register must be left shift two bits before comparing it with the 10-bit
electrode data.
The Baseline Value register is writable in Stop Mode. Note: when the user writes into the baseline value register, the lower two
bits of the 10-bit baseline value are automatically cleared internally upon write operation. The Write to Baseline Value Register
by specific values can be sometimes useful if user wants to manipulate the touch/release status. For example, manually setting
the target channel from a touch locked state into a touch released state is easily done by setting the baseline value above the
signal data.
Refer to the Electrode Configuration Register (ECR, 0x5E) on how to control the on/off operation of baseline tracking and further
details on how the initial baseline data is loaded into Run Mode. Refer to Baseline Filtering Control registers(0x2B~0x2A) on how
to control the filtering of the baseline value.
5.5 Baseline Filtering Control Register (0x2B~0x40)
All12 of the electrode baseline values are controlled by the same set of filtering control registers, 0x2B ~ 0x35. The 13th channel
ELEPROX is controlled by registers 0x36 ~ 0x40. Both sets of registers have the same structure using three different scenarios;
rising, falling, and touched.
Rising is defined as when the electrode data is greater than the baseline value. Falling is defined as when the electrode data is
less than the baseline value. Touched is when the electrode is in touched status. For each scenario, the filtering characteristic is
further defined by four parameters: the maximum half delta (MHD), noise half delta (NHD), noise count limit (NCL) and filter delay
count limit (FDL). Note: there is no maximum half delta for the touched scenario.
Maximum Half Delta (MHD): Determines the largest magnitude of variation to pass through the baseline filter. The range of the
effective value is 1~63.
Noise Half Delta (NHD): Determines the incremental change when non-noise drift is detected. The range of the effective value
is 1~63.
Electrode Filtered Data Low Byte (0x04,0x06,...,0x1C)
Bit D7 D6 D5 D4 D3 D2 D1 D0
Read Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Write — — — — — — — —
Electrode Filtered Data High Byte (0x05,0x07,...,0x1D)
Bit D7 D6 D5 D4 D3 D2 D1 D0
Read — — — — — — Bit 9 Bit 8
Write — — — — — — — —
Electrode Baseline Value (0x1E~0x2A)
Bit D7 D6 D5 D4 D3 D2 D1 D0
Read
Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2
Write