7.3.4 Button Output Interfaces
Button events may be reported by using two methods. The first method is to monitor the OUT
n
pins (
n
= 0, 1, 2,
or 3), which are push-pull outputs and can be used as interrupts to a microcontroller. The polarities of these pins
are programmable through
Register OPOL_DPOL (Address 0x1C)
. Any button press or error condition is also
reported by the open-drain pin, INTB. The INTB pin polarity is configurable through
Register INTPOL (Address
0x11)
. Any assertion of INTB is cleared upon reading
Register STATUS (Address 0x00)
. Each push-pull output
must be assigned to a dedicated general-purpose input pin on the microcontroller to avoid potential current
fights.
The second method is through the I
2
C interface. The
Register OUT (Address 0x01)
contains the fields OUT0,
OUT1, OUT2, and OUT3, which indicate when a button press has been detected. For more advanced button
press measurements, the output DATA
n
registers (
n
= 0, 1, 2, or 3,
Register DATA0_LSB - Address 0x02
), which
are 12-bit two’s complements, can be retrieved for all active buttons, and processed on a microcontroller. A valid
button push is represented by a positive value. The polarity is configurable in
Register OPOL_DPOL (Address
0x1C)
. The DATA
n
values can be used to implement multilevel buttons, where the data value is correlated to the
amount of force applied to the button.
7.3.5 Programmable Button Sensitivity
The GAIN
n
registers (Addresses
0x0E
,
0x10
,
0x12
, and
0x14
) enable sensitivity enhancement of individual
buttons to ensure consistent behavior of different mechanical structures. The sensitivity has a 64-level gain
factor for a normalized gain between 1 and 232. Each gain step increases the gain by an average of 9%.
The gain required for an application is primarily determined by the mechanical rigidity of each individual button.
The individual gain steps are listed in the
.
7.3.6 Baseline Tracking
The LDC3114 incorporates a baseline tracking algorithm to automatically compensate for any slow change in the
sensor output caused by environmental variations, such as temperature drift. The baseline tracking is configured
independently for Normal Power Mode and Low Power Mode. For more information, refer to
Note
The baseline tracking feature is applicable only for button algorithm functionality and cannot be
bypassed. To disable baseline tracking, LDC3114 must be used in raw data access mode. See
7.3.7 Integrated Button Algorithms
The LDC3114 features several algorithms that can mitigate false button detections due to mechanical non-
idealities. The algorithms look for correlated button responses, such as similar or opposite responses between
two neighboring buttons, to determine if there is any undesirable mechanical crosstalk. For more information,
refer to
Mitigating False Button Detections
.
7.3.8 I
2
C Interface
The LDC3114 features an I
2
C Interface that can be used to program the internal registers and read channel
data. Before reading the OUT (Address 0x01) or channel DATA
n
(
n
= 0, 1, 2 or 3, Addresses 0x02 through 0x09)
registers for button press data or raw channel data, RAW_DATAn_x (
n
= 0, 1, 2, or 3, for each channel,
x
= 1,
2, or 3 splitting 24-bit data over 3 8-bit register fields), the user should always read
Register STATUS (Address
0x00)
first to lock the data. The LDC3114 supports burst mode with auto-incrementing register addresses. The
LDC3114 has a fixed I
2
C address of 0x2A.
For the write sequence, there is a special handshake process that has to take place to ensure data integrity. The
sequence of register writes is:
• Set CONFIG_MODE (
Register RESET, Address 0x0A
) bit = 1 to start the register write session.
• Poll for RDY_TO_WRITE (
Register STATUS, Address 0x00
) bit = 1.
• Perform I
2
C write to configure registers.
• Set CONFIG_MODE (
Register RESET, Address 0x0A
) bit = 0 to terminate the register write session.
SNOSDD0 – DECEMBER 2021
Copyright © 2021 Texas Instruments Incorporated
11