Beruflich Dokumente
Kultur Dokumente
8 Channel Capacitive
Touch Sensor with 8
LED Drivers
Block Diagram
SMCLK / BC_CLK /
SMBus / SPI_CLK
BC-Link SMDATA / BC_DATA /
LED Driver, Breathe, or SPI
Capacitive Sensing Algorithm SPI_MSIO / SPI_MISO
and Dimness control Slave
Protocol ALERT# / BC_IRQ#
ADDR_COMM
LED5 LED6 LED7 LED8 CS1 CS2 CS3 CS4 CS5 CS6 CS7 CS8
Note: I2C is a trademark of NXP semiconductor. BC-Link is a trademark of SMSC.
Datasheet
ORDERING INFORMATION
CAP1088-1-CP-TR 24-pin QFN 4mm x 4mm Eight Capacitive Touch Sensors, Eight
(Lead Free RoHS compliant) LED drivers, Dedicated Wake, Reset,
SMBus / BC-Link / SPI interfaces
Datasheet
Table of Contents
Chapter 3 Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 SMBus (I2C) Communications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 SPI Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.3 BC-Link Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 System Management Bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.1 SMBus Start Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.2 SMBus Address and RD / WR Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.3 SMBus Data Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.4 SMBus ACK and NACK Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.5 SMBus Stop Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.6 SMBus Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.7 SMBus and I2C Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 SMBus Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 SMBus Write Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Block Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.3 SMBus Read Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.4 Block Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.5 SMBus Send Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.6 SMBus Receive Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 SPI Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.1 SPI Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.2 SPI Bi-Directional Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.3 SPI_CS# Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.4 Address Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.5 SPI Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 Normal SPI Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5.1 Reset Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.2 Set Address Pointer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.3 Write Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.4 Read Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.6 Bi-Directional SPI Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6.1 Reset Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6.2 Set Address Pointer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6.3 Write Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6.4 Read Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.7 BC-Link Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Datasheet
Datasheet
List of Figures
Figure 1.1 CAP1088 Pin Diagram (24-Pin QFN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Figure 3.1 SMBus Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Figure 3.1 SPI Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Figure 3.1 Example SPI Bus Communication - Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figure 3.2 SPI Reset Interface Command - Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figure 3.3 SPI Set Address Pointer Command - Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figure 3.4 SPI Write Command - Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figure 3.5 SPI Read Command - Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figure 3.6 SPI Read Command - Normal Mode - Full . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figure 3.7 SPI Reset Interface Command - Bi-directional Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figure 3.8 SPI Set Address Pointer Command - Bi-directional Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 3.9 SPI Write Data Command - Bi-directional Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 3.10 SPI Read Data Command - Bi-directional Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure 4.1 System Diagram for CAP1088 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figure 4.2 Sensor Interrupt Behavior - Repeat Rate Enabled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figure 4.3 Sensor Interrupt Behavior - No Repeat Rate Enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figure 5.1 Pulse Behavior with Non-Inverted Polarity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Figure 5.2 Pulse Behavior with Inverted Polarity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Figure 5.3 Pulse 2 Behavior with Non-Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Figure 5.4 Pulse 2 Behavior with Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Figure 5.5 Direct Mode Behavior for Non-Inverted Polarity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Figure 5.6 Direct Mode Behavior for Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Figure 6.1 CAP1088 Package Drawing - 24-Pin QFN 4mm x 4mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Figure 6.2 CAP1088 Package Dimensions - 24-Pin QFN 4mm x 4mm . . . . . . . . . . . . . . . . . . . . . . . . . 67
Figure 6.3 CAP1088 PCB Footprint - 24-pin QFN 4mm x 4mm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Figure 6.4 CAP1088 Package Markings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Datasheet
List of Tables
Table 1.1 Pin Description for CAP1088 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Table 1.2 Pin Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Table 2.1 Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Table 2.2 Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Table 3.1 ADDR_COMM Pin Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Table 3.2 Protocol Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Table 3.3 Write Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Table 3.4 Block Write Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 3.5 Read Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 3.6 Block Read Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 3.7 Send Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 3.8 Receive Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table 5.1 Register Set in Hexadecimal Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Table 5.2 Main Status Control Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Table 5.3 Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Table 5.4 Noise Flag Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 5.5 Sensor Delta Count Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 5.6 Data Scaling Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Table 5.7 DELTA_SENSE Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Table 5.8 BASE_SHIFT Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Table 5.9 Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Table 5.10 Sensor Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Table 5.11 Sensor Configuration Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Table 5.12 MAX_DUR Bit Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Table 5.13 RPT_RATE Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table 5.14 Sensor Configuration 2 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table 5.15 Averaging and Sampling Configuration Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Table 5.16 AVG Bit Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Table 5.17 CYCLE_TIME Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 5.18 Calibration Activate Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 5.19 Interrupt Enable Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table 5.20 Repeat Rate Enable Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table 5.21 Multiple Touch Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table 5.22 B_MULT_T Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table 5.23 Recalibration Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Table 5.24 NEG_DELTA_CNT Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Table 5.25 CAL_CFG Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Table 5.26 Sensor Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Table 5.27 Sensor Noise Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Table 5.28 CSx_BN_TH Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Table 5.29 Standby Channel Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Table 5.30 Standby Configuration Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Table 5.31 STBY_AVG Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Table 5.32 STBY_CY_TIME Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Table 5.33 Standby Configuration Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Table 5.34 STBY_SENSE Bit Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Table 5.35 Standby Threshold Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Table 5.36 Sensor Base Count Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Table 5.37 LED Output Type Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Table 5.38 Sensor LED Linking Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Table 5.39 LED Polarity Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Table 5.40 LED Output Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Datasheet
Datasheet
RESET
VDD
CS1
CS2
CS3
CS4
24
23
22
21
20
19
SPI_CS# 1 18 CS5
11
12
7
GND
LED3
LED4
LED5
LED6
LED7
LED8
PIN
NUMBER PIN NAME PIN FUNCTION PIN TYPE
Datasheet
PIN
NUMBER PIN NAME PIN FUNCTION PIN TYPE
Datasheet
PIN
NUMBER PIN NAME PIN FUNCTION PIN TYPE
The pin types are described in detail below. All pins labelled with (5V) are 5V tolerant.
APPLICATION NOTE: For the 5V tolerant pins that have a pull-up resistor, the pull-up voltage must not exceed 3.6V
when the CAP1088 is unpowered.
.
Datasheet
Note 2.1 Stresses above those listed could cause permanent damage to the device. This is a stress
rating only and functional operation of the device at any other condition above those
indicated in the operation sections of this specification is not implied.
Note 2.2 For the 5V tolerant pins that have a pull-up resistor, the voltage difference between
VPULLUP and VDD must never exceed 3.6V.
Note 2.3 The Package Power Dissipation specification assumes a recommended thermal via design
consisting of a 3x3 matrix of 0.3mm (12mil) vias at 1.0mm pitch connected to the ground
plane with a 2.5 x 2.5mm thermal landing.
Note 2.4 Junction to Ambient (θJA) is dependent on the design of the thermal vias. Without thermal
vias and a thermal landing, the θJA is approximately 60°C/W including localized PCB
temperature increase.
VDD = 3V to 3.6V, TA = 0°C to 100°C, all Typical values at TA = 27°C unless otherwise noted.
DC Power
Datasheet
VDD = 3V to 3.6V, TA = 0°C to 100°C, all Typical values at TA = 27°C unless otherwise noted.
LED Drivers
Datasheet
VDD = 3V to 3.6V, TA = 0°C to 100°C, all Typical values at TA = 27°C unless otherwise noted.
SMBus Timing
BC-Link Timing
SPI Timing
SPI_CS# to tSU:CS 0 ns
SPI_CLK setup time
Datasheet
Chapter 3 Communications
3.1 Communications
The CAP1088 communicates using the 2-wire SMBus or I2C bus, the 2-wire proprietary BC-Link, or
the SPI bus. Regardless of communication mechanism, the device functionality remains unchanged.
The communications mechanism as well as the SMBus (or I2C) slave address is determined by the
resistor connected between the ADDR_COMM pin and ground as shown in Table 3.1.
.
See Section 3.2 and Section 3.3 for more information on the SMBus bus and protocols respectively.
See Section 3.4 and Section 3.6 for more information on the SPI bus and protocols respectively.
See Section 3.7 for more information on the BC-Link Bus and protocols respectively.
APPLICATION NOTE: Upon power up, the CAP1088 will not respond to any communications for up to 15ms. After
this time, full functionality is available.
Datasheet
TRISE TFALL
SMCLK
SMDATA
TBUF
The Host will NACK (not acknowledge) the last data byte to be received from the client by holding the
SMBus data line high after the 8th data bit has been sent. For the Block Read protocol, the Host will
ACK each data byte that it receives except the last data byte.
Datasheet
The timeout function defaults to disabled. It can be enabled by setting the TIMEOUT bit in the
Configuration register (see Section 5.6).
Datasheet
APPLICATION NOTE: When using the Block Write protocol, the internal address pointer will be automatically
incremented after every data byte is received. It will wrap from FFh to 00h.
START SLAVE WR ACK REGISTER ACK START CLIENT RD ACK REGISTER NACK STOP
ADDRESS ADDRESS ADDRESS DATA
APPLICATION NOTE: When using the Block Read protocol, the internal address pointer will be automatically
incremented after every data byte is received. It will wrap from FFh to 00h.
SLAVE REGISTER
START ADDRESS WR ACK ADDRESS ACK STOP
Datasheet
SLAVE
START ADDRESS RD ACK REGISTER DATA NACK STOP
The SPI bus will latch data on the rising edge of the clock and the clock and data both idle high.
All commands are supported via both operating modes. The supported commands are: Reset Serial
interface, set address pointer, write command and read command. Note that all other codes received
during the command phase are ignored and have no effect on the operation of the device.
tP
tHIGH
tLOW
SPI_CLK tFALL
tRISE
tSU:DAT
SPI_MSIO or
SPI_MOSI or tD:CLK
tHD:DAT
SPI_MISO
All basic transfers consist of two 8 bit transactions from the Master device while the slave device is
simultaneously sending data at the current address pointer value.
Data writes consist of two or more 8-bit transactions. The host sends a specific write command
followed by the data to write the address pointer. Data reads consist of one or more 8-bit transactions.
Datasheet
The host sends the specific read data command and continues clocking for as many data bytes as it
wishes to receive.
All basic transfers consist of two 8 bit transactions. The first is an 8 bit command phase driven by the
Master device. The second is by an 8 bit data phase driven by the Master for writes, and by the
CAP1088 for read operations.
The auto increment feature of the address pointer allows for successive reads or writes. The address
pointer will return to 00h after reaching FFh.
Datasheet
SPI_MOSI 7Ah 7Ah 7Dh 41h 7Eh 66h 7Dh 41h 7Fh 7Fh 7Fh 7Fh 7Fh 7Fh 7Dh 40h 7Fh 7Fh
SPI Address Pointer 00h 41h 42h 41h 41h 42h 43h 44h 45h 46h 40h 40h
SPI Data output buffer XXh 45h AAh 55h 66h AAh 55h 80h 43h 78h 80h 56h
Register Address / 40h / 56h 40h / 56h 40h / 56h 40h / 56h 40h / 56h 40h / 56h 40h / 56h 40h / 56h 40h / 56h 40h / 56h
Data 41h / 45h 41h / 45h 41h / 66h 41h / 66h 41h / 66h 41h / 66h 41h / 66h 41h / 66h 41h / 66h 41h / 66h
42h / AAh 42h / AAh 42h / AAh 42h / AAh 42h / AAh 42h / AAh 42h / AAh 42h / AAh 42h / AAh 42h / AAh
43h / 55h 43h / 55h 43h / 55h 43h / 55h 43h / 55h 43h / 55h 43h / 55h 43h / 55h 43h / 55h 43h / 55h
44h / 80h 44h / 80h 44h / 80h 44h / 80h 44h / 80h 44h / 80h 44h / 80h 44h / 80h 44h / 80h 44h / 80h
45h / 43h 45h / 43h 45h / 43h 45h / 43h 45h / 43h 45h / 43h 45h / 43h 45h / 43h 45h / 43h 45h / 43h
46h / 78h 46h / 78h 46h / 78h 46h / 78h 46h / 78h 46h / 78h 46h /78h 46h /78h 46h / 78h 46h /78h
DATASHEET
Figure 3.1 Example SPI Bus Communication - Normal Mode
20
3.5.1 Reset Interface
Resets the Serial interface whenever two successive 7Ah codes are received. Regardless of the current phase of the transaction - command or data,
the receipt of the successive reset commands resets the Serial communication interface only. All other functions are not affected by the reset operation.
SMSC CAP1088
8 Channel Capacitive Touch Sensor with 8 LED Drivers
Datasheet
SPI_CS#
SPI_CLK
Master SPDOUT ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ ‘1’ ‘0’ ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ ‘1’ ‘0’
SPI_MOSI
Reset - 7Ah Reset - 7Ah
SPI_CS#
SPI_CLK
Master SPDOUT
SPI_MOSI ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ ‘1’ Register Address
Datasheet
SPI_CS#
SPI_CLK
Master SPDOUT
SPI_MOSI Write Command – 7Eh Data to Write
SPI_CS#
SPI_CLK
Master SPDOUT
‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’
SPI_MOSI
Subsequent Read
First Read Command – 7Fh
Commands – 7F
SPI_MISO Invalid, Unknown Data * Data at Current Address Pointer
* The first read command after any other command will return invalid data for the first
byte. Subsequent read commands will return the data at the Current Address Pointer
** The Address Pointer is incremented 8 clocks after the Read Command has been
received. Therefore continually sending Read Commands will result in each command
reporting new data. Once Read Commands have been finished, the last data byte will be
read during the next 8 clocks for any command
Datasheet
SPI_CS#
SPI_MISO ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’
XXh
Read Command – 7Fh Subsequent Read Commands – 7Fh
Master SPDOUT Data at previously set register address = current Data at previously set register address = current Data at previously set register address = current
SPI_MOSI SPI_CLK address pointer address pointer (SPI) address pointer (SPI)
SPI_CS#
SPI_CLK
Master SPDOUT ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ ‘1’ ‘0’ ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ ‘1’ ‘0’
SPI_MSIO
Datasheet
SPI_CS#
SPI_CLK
SPI_CS#
SPI_CLK
Master SPDOUT
‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘0’ Register Write Data
SPI_MSIO
Write Command – 7Eh
SPI_CS#
SPI_CLK
Master SPDOUT
SPI_MSIO ‘0’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ ‘1’ Register Read Data
Datasheet
Refer to documentation for the BC-Link comptabile host controller for details on how to access the
CAP1088 via the BC-Link Interface.
Datasheet
The CAP1088 is a multiple channel Capacitive Touch sensor with multiple power LED drivers. It
contains eight (8) individual Capacitive Touch sensor inputs with programmable sensitivity for use in
touch sensor applications. Each sensor automatically recalibrates to compensate for gradual
environmental changes.
The CAP1088 also contains eight (8) low side (or push-pull) LED drivers that offer full-on / off, variable
rate blinking, dimness controls, and breathing. Each of the LED drivers may be linked to one of the
sensors to be actuated when a touch is detected. As well, each LED driver may be individually
controlled via a host controller.
Finally, the device contains a dedicated RESET pin to act as a soft reset by the system.
The CAP1088 offers multiple power states operating at low quiescent currents during its Deep Sleep
state. The device also contains a wake pin (WAKE/SPI_MOSI) output to wake the system when a
touch is detected in Standby and to wake the device from Deep Sleep. It can monitor one or more
channels while in a lower power state and respond to communications normally.
The device communicates with a host controller using the SPI bus, SMSC BC-Link bus, or via SMBus
/ I2C. The host controller may poll the device for updated information at any time or it may configure
the device to flag an interrupt whenever a touch is detected on any sensor.
Datasheet
ALERT# / BC_IRQ#
SPI_CS#
RESET
SMDATA / BC_DATA / SPI_MSIO / SPI_MISO
WAKE / SPI_MOSI
ADDR_COMM
3.3V – 5V 3.3V – 5V
LED1 LED8
Touch
CAP1088 Touch
Button CS1 CS8 Button
LED2 LED7
Touch Touch
Button CS2 CS7
Button
LED3 LED6
Touch Touch
Button CS3 CS6 Button
LED4 LED5
Touch Touch
Button CS4 CS5 Button
Datasheet
1. Fully Active - The device is fully active. It is monitoring all active Capacitive Sensor channels and
driving all LED channels as defined.
2. Standby - The device is in a lower power state. It will measure a programmable number of channels
(as determined by the Standby Channel register - default none). Interrupts will still be generated
based on the active channels. The device will still respond to communications normally and can
be returned to the Fully Active state of operation by clearing the STBY bit.
3. Deep Sleep - The device is in its lowest power state. It is not monitoring any Capacitive Sensor
channels. It can be awakened by SMBus or SPI communications targeting the device (which will
cause the DSLEEP bit to be automatically cleared).
If the device is not communicating via the 4-wire SPI bus, then during this state of operation, if the
WAKE/SPI_MOSI pin is driven high by an external source, the device will clear the DSLEEP bit
and return to Fully Active.
APPLICATION NOTE: The Deep Sleep state does not change LED drive behavior so it is It is the user’s
responsibility to ensure that the LEDs are driven to the desired state prior to entering Deep
Sleep. This is best achieved by unlinking the LEDs from the sensors and driving the LEDs
to the desired state using the LED Output Control register.
APPLICATION NOTE: If the CAP1088 is configured to communicate using the BC-Link protocol, the device does
not support Deep Sleep.
All configuration settings will be reset to default states (thus waking the device from Deep Sleep) and
all readings will be cleared. Once the RESET pin is pulled low, the CAP1088 will begin operation as
if a power-on-reset had occurred.
When the CAP1088 is placed in Deep Sleep and it is not commuicating using the 4-wire SPI protocol,
the WAKE/SPI_MOSI pin is monitored by the device as an input. If the WAKE/SPI_MOSI pin is driven
high by an external source, the CAP1088 will clear the DSLEEP bit.
When the device is placed in Deep Sleep, this pin is a High-Z input and must have a pull-down resistor
to GND for proper operation.
Datasheet
3. Pulse 2 - The LED is configured to “Breathe” while actuated and then “Pulse” when the sensor is
released.
4. Breathe - The LED is configured to fade continuously ON-OFF-ON (i.e. to "Breathe”) with a
programmable rate and min / max brightness.
In addition to these four behaviors, all LED drivers support host initiated LED actuation. All LEDs also
have an option to assert the ALERT# pin when the initated behavior has reached its maximum or
minimum brightness levels.
It is possible that the device loses sensitivity to a touch. This may happen as a result of a noisy
environment, an accidental recalibration during a touch, or other environmental changes. When this
occurs, then the base untouched sensor may generate negative delta count values. The device will
detect this condition based on a programmable number of consecutive negative delta readings. When
it detects the condition, the CAP1088 will automatically re-calibrate the base-count settings. During this
recalibration, the device will not respond to touches.
Whenever an interrupt is generated, the INT bit (see Section 5.1) is set. The ALERT# pin is cleared
when INT bit is cleared by the user. Additionally, when the INT bit is cleared by the user, status bits
are only cleared if no touch is detected.
Datasheet
2. If the repeat rate is enabled (see Section 5.6), then, so long as the touch is held, another interrupt
will be generated based on the programmed repeat rate (see Figure 4.2).
When the repeat rate is enabled, the device uses an additional control called MPRESS that determines
whether a touch is flagged as a simple “touch” or a “press and hold”. The MPRESS[3:0] bits set a
minimum press timer. When the button is touched the timer begins. If the sensor is released before
the minimum press timer expires, then it is flagged as a touch and an interrupt is generated upon the
release. If the sensor detects a touch for longer than this timer value, then it is flagged as a “press
and hold” event. So long as the touch is held, interrupts will be generated at the programmed repeat
rate and upon a release.
Polling Cycle
Interrupt on (35ms)
Touch Interrupt on
Release
Touch Detected Button Repeat Rate Button Repeat Rate Button Repeat Rate
(175ms) (175ms) (175ms)
Button Status
APPLICATION NOTE: The host may need to poll the device twice to determine that a release has been detected.
Polling Cycle
Interrupt on (35ms)
Touch Interrupt on
Release
Touch Detected
ALERT Pin /
INT bit
Button Status
SMBus Write to
INT bit
Datasheet
The registers shown in Table 5.1 are accessible through the communications protocol. An entry of ‘-’
indicates that the bit is not used and will always read ‘0’.
REGISTER DEFAULT
ADDRESS R/W REGISTER NAME FUNCTION VALUE PAGE
04h R LED Status Stores status bits for LEDs 00h Page 35
0Ah R Noise Flag Status Stores the noise flags for sensors 00h Page 36
10h R Sensor 1 Delta Count Stores the delta count for CS1 00h Page 36
11h R Sensor 2 Delta Count Stores the delta count for CS2 00h Page 36
12h R Sensor 3 Delta Count Stores the delta count for CS3 00h Page 36
13h R Sensor 4 Delta Count Stores the delta count for CS4 00h Page 36
14h R Sensor 5 Delta Count Stores the delta count for CS5 00h Page 36
15h R Sensor 6 Delta Count Stores the delta count for CS6 00h Page 36
16h R Sensor 7 Delta Count Stores the delta count for CS7 00h Page 36
17h R Sensor 8 Delta Count Stores the delta count for CS8 00h Page 36
Datasheet
REGISTER DEFAULT
ADDRESS R/W REGISTER NAME FUNCTION VALUE PAGE
Datasheet
REGISTER DEFAULT
ADDRESS R/W REGISTER NAME FUNCTION VALUE PAGE
73h R/W LED Polarity Controls the output polarity of LEDs 00h Page 56
74h R/W LED Output Control Controls the output state of the LEDs 00h Page 53
Datasheet
REGISTER DEFAULT
ADDRESS R/W REGISTER NAME FUNCTION VALUE PAGE
During Power-On-Reset (POR), the default values are stored in the registers. A POR is initiated when
power is first applied to the part and the voltage on the VDD supply surpasses the POR level as
specified in the electrical characteristics. Any reads to undefined registers will return 00h. Writes to
undefined registers will not have an effect.
Main Status
00h R/W - - STBY DSLEEP - - - INT 00h
Control
The Main Status and Control register controls the primary power state of the device.
Bit 4 - DSLEEP - Enables Deep Sleep by deactivating all functions. This bit will be cleared when the
WAKE pin is driven high or when SPI or SMBus are received targeting the CAP1088. If the CAP1088
is configured to communicate using the BC-Link protocol, then this bit is ignored.
‘0’ (default) - Sensor scanning is active and LEDs are functional.
‘1’ - All sensor scanning is disabled and all LEDs are disabled. The status registers are
automatically cleared and the INT bit is cleared.
Bit 0 - INT - Indicates that there is an interrupt. This bit is only set if the ALERT# pin has been asserted.
If a channel detects a touch and its associated interrupt enable bit is not set to a logic ‘1’ then no
action is taken.
This bit is cleared by writing a logic ‘0’ to it. When this bit is cleared, the ALERT# pin will be deasserted
and all status registers will be cleared if the condition has been removed. If the WAKE/SPI_MOSI pin
is asserted as a result of a touch detected while in Standby, it will likewise be deasserted when this
bit is cleared.
Note that this pin is not driven when communicating via the 4-wire SPI protocol
Datasheet
03h R Sensor Status CS8 CS7 CS6 CS5 CS4 CS3 CS2 CS1 00h
04h R LED Status LED8_ LED7_ LED6_ LED5_ LED4_ LED3_ LED2_ LED1_ 00h
DN DN DN DN DN DN DN DN
The Sensor Status Registers store status bits that indicate a touch has been detected. A value of ‘0’
in any bit indicates that no touch has been detected. A value of ‘1’ in any bit indicates that a touch
has been detected.
All status bits are cleared when the device enters the Deep Sleep (DSLEEP = ‘1’ - see Section 5.1).
All status bits are cleared when the INT bit is cleared and if a touch on the respective Capacitive Touch
Sensor is no longer present. If a touch is still detected, then the bits will not be cleared (but this will
not cause the interrupt to be asserted - see Section 5.6).
Bit 6 - CS7 - Indicates that a touch was detected on Sensor 7. This sensor can be linked to LED7.
Bit 5 - CS6 - Indicates that a touch was detected on Sensor 6. This sensor can be linked to LED6.
Bit 4 - CS5 - Indicates that a touch was detected on Sensor 5. This sensor can be linked to LED5.
Bit 3 - CS4 - Indicates that a touch was detected on Sensor 4. This sensor can be linked to LED4.
Bit 2 - CS3 - Indicates that a touch was detected on Sensor 3. This sensor can be linked to LED3.
Bit 1 - CS2 - Indicates that a touch was detected on Sensor 2. This sensor can be linked to LED2.
Bit 0 - CS1 - Indicates that a touch was detected on Sensor 1. This sensor can be linked to LED1.
Bit 6 - LED7_DN - Indicates that LED7 has finished its ramping behavior as determined by the
LED7_CTL bits.
Bit 5 - LED6_DN - Indicates that LED6 has finished its ramping behavior as determined by the
LED6_CTL bits.
Bit 4 - LED5_DN - Indicates that LED5 has finished its ramping behavior as determined by the
LED5_CTL bits.
Bit 3 - LED4_DN - Indicates that LED4 has finished its ramping behavior as determined by the
LED4_CTL bits.
Bit 2 - LED3_DN - Indicates that LED3 has finished its ramping behavior as determined by the
LED3_CTL bits.
Datasheet
Bit 1 - LED2_DN - Indicates that LED2 has finished its ramping behavior as determined by the
LED2_CTL bits.
Bit 0 - LED1_DN - Indicates that LED1 has finished its ramping behavior as determined by the
LED1_CTL bits.
0Ah R Noise Flag Status CS8_ CS7_ CS6_ CS5_ CS4_ CS3_ CS2_ CS1_ 00h
NOISE NOISE NOISE NOISE NOISE NOISE NOISE NOISE
The Noise Flag Status registers store status bits that are generated from the analog block if the
detected noise is above the operating region of the analog detector. These bits indicate that the most
recently received data from the sensor is invalid and should not be used for touch detection.
Furthermore, so long as the bit is set for a particular channel, no decisions are made with the data. A
touch is not detected, and a release is not detected.
These bits are not sticky and will be cleared automatically if the analog block does not report a noise
error.
Sensor 1 Delta
10h R Sign 64 32 16 8 4 2 1 00h
Count
Sensor 2 Delta
11h R Sign 64 32 16 8 4 2 1 00h
Count
Sensor 3 Delta
12h R Sign 64 32 16 8 4 2 1 00h
Count
Sensor 4 Delta
13h R Sign 64 32 16 8 4 2 1 00h
Count
Sensor 5 Delta
14h R Sign 64 32 16 8 4 2 1 00h
Count
Sensor 6 Delta
15h R Sign 64 32 16 8 4 2 1 00h
Count
Sensor 7 Delta
16h R Sign 64 32 16 8 4 2 1 00h
Count
Sensor 8 Delta
17h R Sign 64 32 16 8 4 2 1 00h
Count
The Sensor Delta Count registers store the delta count that is compared against the threshold used to
determine if a touch has been detected. The count value represents a change in input due to the
capacitor associated with a touch on one of the sensors and is referenced to a calibrated base “Not
Datasheet
touched” count value. The delta is an instantaneous change and is updated once per sensor per
sensing cycle (see Section 4.5.1 - sensor cycle).
The value presented is a standard 2’s complement number. In addition, the value is capped at a value
of 7Fh. A reading of 7Fh indicates that the sensitivity settings are too high and should be adjusted
accordingly (see Section 5.5).
The value is also capped at a negative value of FFh for negative delta counts which may result upon
a release.
Bits 6- 4 DELTA_SENSE[2:0] - Controls the sensitivity of a touch detection. The sensitivity settings act
to scale the relative delta count value higher or lower based on the system parameters. A setting of
000b is the most sensitive while a setting of 111b is the least sensitive. At the more sensitive settings,
touches are detected for a smaller delta C corresponding to a “lighter” touch. These settings are more
sensitive to noise however and a noisy environment may flag more false touches than higher sensitivity
levels.
APPLICATION NOTE: A value of 128x is the most sensitive setting available. At the most sensitivity settings, the
MSB of the Delta Count register represents 64 out of ~25,000 which corresponds to a touch
of approximately 0.25% of the base capacitance (or a ΔC of 25fF from a 10pF base
capacitance). Conversely a value of 1x is the least sensitive setting available. At these
settings, the MSB of the Delta Count register corresponds to a delta count of 8192 counts
out of ~25,000 which corresponds to a touch of approximately 33% of the base capacitance
(or a ΔC of 3.33pF from a 10pF base capacitance).
DELTA_SENSE[2:0]
2 1 0 SENSITIVITY MULTIPLIER
0 0 1 64x
0 1 0 32x (default)
0 1 1 16x
1 0 0 8x
1 0 1 4x
1 1 0 2x
1 1 1 1x - (least sensitive)
Bits 3 - 0 - BASE_SHIFT[3:0] - Controls the scaling and data presentation of the Base Count registers.
The higher the value of these bits, the larger the range and the lower the resolution of the data
Datasheet
presented. The scale factor represents the multiplier to the bit-weighting presented in these register
descriptions.
APPLICATION NOTE: The BASE_SHIFT[3:0] bits normally do not need to be updated. These settings will not affect
touch detection or sensitivity. These bits are sometimes helpful in analyzing the Cap Sensing
board performance and stability.
BASE_SHIFT[3:0]
DATA SCALING
3 2 1 0 FACTOR
0 0 0 0 1x
0 0 0 1 2x
0 0 1 0 4x
0 0 1 1 8x
0 1 0 0 16x
0 1 0 1 32x
0 1 1 0 64x
0 1 1 1 128x
1 0 0 0 256x
256x
All others
(default = 1111b)
The Configuration register controls general global functionality that affects the entire device.
Bit 7 - TIMEOUT - Enables the timeout and idle functionality of the SMBus protocol.
‘0’ (default) - The SMBus timeout and idle functionality are disabled. The SMBus interface will not
time out if the clock line is held low. Likewise, it will not reset if both the data and clock lines are
held high for longer than 150us. This is used for I2C compliance.
‘1’ - The SMBus timeout and idle functionality are enabled. The SMBus interface will time out if the
clock line is held low for longer than 30ms. Likewise, it will reset if both the data and clock lines
are held high for longer than 150us.
Datasheet
‘1’ - The WAKE pin will be asserted high when a touch is detected while the device is in Standby.
It will also be used to wake the device from Deep Sleep when driven high.
Bit 5 - BLK_DIG_NOISE - Determines whether the digital noise threshold is used by the device.
‘0’ - The digital noise threshold is used. If a delta count value exceeds the noise threshold but does
not exceed the touch threshold, then the sample is discarded and not used for the automatic re-
calibration routine.
‘1’ (default) - The noise threshold is not used. Any delta count that is less than the touch threshold
is used for the automatic re-calibration routine.
Bit 4 - BLK_ANA_NOISE - Determines whether the analog noise flag setting will block a touch
detection as well as the analog calibration routine.
‘0’ (default) - If the analog noise bit is set, then a touch is blocked on the corresponding channel
and will force the analog calibration routine to retry.
‘1’ - A touch is not blocked even if the analog noise bit is set. Likewise, the analog calibration
routine will not retry if the analog noise bit is set.
Bit 3 - MAX_DUR_EN - Determines whether the maximum duration recalibration is enabled for non-
grouped sensors.
‘0’ (default) - The maximum duration recalibration functionality is disabled. A touch may be held
indefinitely and no re-calibration will be performed on any sensor.
‘1’ - The maximum duration recalibration functionality is enabled. If a touch is held for longer than
the MAX_DUR bit settings, then the re-calibration routine will be restarted (see Section 5.8).
21h R/W Sensor Enable CS8_EN CS7_EN CS6_EN CS5_EN CS4_EN CS3_EN CS2_EN CS1_EN FFh
The Sensor Enable registers determine whether a Capacitive Touch Sensor input is included in the
sampling cycle. The length of the sampling cycle is not affected by the number of sensors measured.
Bit 7 - CS8_EN - Enables the CS8 input to be included during the sampling cycle.
‘0’ - The CS8 input is not included in the sampling cycle.
‘1’ (default) - The CS8 input is included in the sampling cycle.
Bit 6 - CS7_EN - Enables the CS7 input to be included during the sampling cycle.
Bit 5 - CS6_EN - Enables the CS6 input to be included during the sampling cycle.
Bit 4 - CS5_EN - Enables the CS5 input to be included during the sampling cycle.
Bit 3 - CS4_EN - Enables the CS4 input to be included during the sampling cycle.
Bit 2 - CS3_EN - Enables the CS3 input to be included during the sampling cycle.
Bit 1 - CS2_EN - Enables the CS2 input to be included during the sampling cycle.
Bit 0 - CS1_EN - Enables the CS1 input to be included during the sampling cycle.
Datasheet
Sensor
22h R/W MAX_DUR[3:0] RPT_RATE[3:0] A4h
Configuration
The Sensor Configuration Register controls timings associated with the Capacitive Sensor channels 1
- 8.
Bits 7 - 4 - MAX_DUR[3:0] - (default 1010b) - Determines the maximum time that a sensor is allowed
to be touched until the Capacitive Touch sensor is recalibrated as shown in Table 5.12.
MAX_DUR[3:0]
0 0 0 0 560ms
0 0 0 1 840ms
0 0 1 0 1120ms
0 0 1 1 1400ms
0 1 0 0 1680ms
0 1 0 1 2240ms
0 1 1 0 2800ms
0 1 1 1 3360ms
1 0 0 0 3920ms
1 0 0 1 4480ms
1 0 1 0 5600ms
1 0 1 1 6720ms
1 1 0 0 7840ms
1 1 0 1 8906ms
1 1 1 0 10080ms
1 1 1 1 11200ms
Bits 3 - 0 - RPT_RATE[3:0] - (default 0100b) Determines the time duration between interrupt assertions
when auto repeat is enabled. The resolution is 35ms the range is from 35ms to 560ms as shown in
Table 5.13.
Datasheet
RPT_RATE[3:0] OR M_PRESS[3:0]
INTERRUPT REPEAT RATE
3 2 1 0 OR M_PRESS TIME
0 0 0 0 35ms
0 0 0 1 70ms
0 0 1 0 105ms
0 0 1 1 140ms
0 1 0 0 175ms
0 1 0 1 210ms
0 1 1 0 245ms
0 1 1 1 280ms
1 0 0 0 315ms
1 0 0 1 350ms
1 0 1 0 385ms
1 0 1 1 420ms
1 1 0 0 455ms
1 1 0 1 490ms
1 1 1 0 525ms
1 1 1 1 560ms
Sensor
23h R/W - - - - M_PRESS[3:0] 07h
Configuration 2
Bits 3- 0 - M_PRESS[3:0] - (default 0111b) - Determines the minimum amount of time that sensors
configured to use auto repeat must detect a sensor touch to detect a “press and hold” event. If the
sensor detects a touch for longer than the M_PRESS[3:0] settings, then a “press and hold” event is
detected.
This is the maximum amount of time that sensors can detect a sensor touch to differentiate between
a “touch” and a “press and hold”. If a sensor detects a touch for less than or equal to the
M_PRESS[3:0] settings, then a touch event is detected.
The resolution is 35ms the range is from 35ms to 560ms as shown in Table 5.13.
Datasheet
The Averaging and Sampling Configuration register controls the number of samples taken and the total
sensor cycle time for all active sensors while the device is functioning normally.
Bits 5 - 3 - AVG[2:0] - Determines the number of samples that are taken for all active channels during
the sensor cycle as shown in Table 5.16. All samples are taken consecutively on the same channel
before the next channel is sampled and the result is averaged over the number of samples measured
before updating the measured results.
For example, if CS1, CS2, and CS3 are sampled during the sensor cycle, and the AVG[2:0] bits are
set to take 4 samples per channel, then the full sensor cycle will be: CS1, CS1, CS1, CS1, CS2, CS2,
CS2, CS2, CS3, CS3, CS3, CS3.
AVG[2:0]
NUMBER OF SAMPLES TAKEN
2 1 0 PER MEASUREMENT
0 0 0 1
0 0 1 2
0 1 0 4
0 1 1 8 (default)
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
Bits 1 - 0 - CYCLE_TIME[1:0] - Determines the overall cycle time for all measured channels during
normal operation as shown in Table 5.17. All measured channels are sampled at the beginning of the
cycle time. If additional time is remaining, then the device is placed into a lower power state for the
remaining duration of the cycle.
Datasheet
CYCLE_TIME[1:0]
0 0 35ms
0 1 70ms (default)
1 0 105ms
1 1 140ms
APPLICATION NOTE: The programmed cycle time is only maintained if the total averaging time for all samples is
less than the programmed cycle. The AVG[2:0] bits will take priority so that if more samples
are required than would normally be allowed during the cycle time, the cycle time will be
extended as necessary to accommodate the number of samples to be measured.
Calibration
26h R/W CS8_CAL CS7_CAL CS6_CAL CS5_CAL CS4_CAL CS3_CAL CS2_CAL CS1_CAL FFh
Activate
The Calibration Activate register force the respective sensors to be re-calibrated. When a bit is set,
the corresponding Capacitive Touch Sensor will be re-calibrated and the bit will be automatically
cleared once the re-calibration routine has finished. During the re-calibration routine, the sensors will
not detect a press for up to 600ms and the Sensor Base Count register values will be invalid. During
this time, any press on the corresponding sensors will invalidate the re-calibration.
Bit 7 - CS8_CAL - When set, the CS8 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Bit 6 - CS7_CAL - When set, the CS7 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Bit 5 - CS6_CAL - When set, the CS6 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Bit 4 - CS5_CAL - When set, the CS5 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Bit 3 - CS4_CAL - When set, the CS4 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Bit 2 - CS3_CAL - When set, the CS3 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Bit 1 - CS2_CAL - When set, the CS2 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Bit 0 - CS1_CAL - When set, the CS1 input is re-calibrated. This bit is automatically cleared once the
sensor has been re-calibrated successfully.
Datasheet
27h R/W Interrupt CS8_ CS7_ CS6_ CS5_ CS4_ CS3_ CS2_ CS1_ FFh
Enable INT_EN INT_EN INT_EN INT_EN INT_EN INT_EN INT_EN INT_EN
The Interrupt Enable registers determine whether a sensor touch or release causes the interrupt pin
to be asserted.
Bit 7 - CS8_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS8
(associated with the CS8 status bit).
‘0’ - The interrupt pin will not be asserted if a touch is detected on CS8 (associated with the CS8
status bit).
‘1’ (default) - The interrupt pin will be asserted a touch is detected on CS8 (associated with the
CS8 status bit).
Bit 6 - CS7_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS7
(associated with the CS7 status bit).
Bit 5 - CS6_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS6
(associated with the CS6 status bit).
Bit 4 - CS5_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS5
(associated with the CS5 status bit).
Bit 3 - CS4_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS4
(associated with the CS4 status bit).
Bit 2 - CS3_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS3
(associated with the CS3 status bit).
Bit 1 - CS2_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS2
(associated with the CS2 status bit).
Bit 0 - CS1_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS1
(associated with the CS1 status bit).
Repeat Rate CS8_ CS7_ CS6_ CS5_ CS4_ CS3_ CS2_ CS1_
28h R/W Enable RPT_EN RPT_EN RPT_EN RPT_EN RPT_EN RPT_EN RPT_EN RPT_EN FFh
The Repeat Rate Enable register determines the interrupt behavior of the buttons as described in
Section 4.6.1.
Bit 7 - CS8_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 8.
‘0’ - The repeat rate for CS8 is disabled. It will only generate an interrupt when a touch is detected
and when a release is detected no matter how long the touch is held for.
‘1’ (default) - The repeat rate for CS8 is enabled. In the case of a “touch” event, it will generate an
interrupt when a touch is detected and a release is detected. In the case of a “press and hold”
Revision 1.0 (06-16-09) 44 SMSC CAP1088
DATASHEET
8 Channel Capacitive Touch Sensor with 8 LED Drivers
Datasheet
event, it will generate an interrupt when a touch is detected and at the repeat rate so long as the
touch is held. It will not generate an interrupt when a release is detected.
Bit 6 - CS7_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 7.
Bit 5 - CS6_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 6.
Bit 4 - CS5_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 5.
Bit 3 - CS4_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 4.
Bit 2 - CS3_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 3.
Bit 1 - CS2_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 2.
Bit 0 - CS1_RPT_EN - Enables the repeat rate for Capacitive Touch Sensor 1.
The Multiple Touch Configuration register controls the settings for the multiple touch detection circuitry.
These settings determine the number of simultaneous buttons that may be pressed before action is
taken.
Bits 3 - 2 - B_MULT_T[1:0] - Determines the number of simultaneous touches on all sensors before a
Multiple Touch Event is flagged. If the number of multiple sensors touched is greater than the threshold
value then a Multiple Touch Event is flagged. The bit decode is given by Table 5.22.
B_MULT_T[1:0]
0 0 1 (default)
0 1 2
1 0 3
1 1 4
Datasheet
The Recalibration Configuration register controls the automatic re-calibration routine settings as well
as advanced controls to program the Sensor Threshold register settings.
Bit 7 - BUT_LD_TH - Enables setting all Sensor Threshold registers by writing to the Sensor 1
Threshold register.
‘0’ - Each Sensor X Threshold register is updated individually.
‘1’ (default) - Writing the Sensor 1 Threshold register will automatically overwrite the Sensor
Threshold registers for all sensors (Sensor Threshold 1 through Sensor Threshold 8). The
individual Sensor X Threshold registers (Sensor 2 Threshold through Sensor 8 Threshold) can be
individually updated at any time.
NEG_DELTA_CNT[1:0]
NUMBER OF CONSECUTIVE NEGATIVE DELTA
1 0 COUNT VALUES
0 0 8
0 1 16 (default)
1 0 32
1 1 None (disabled)
Bits 2 - 0 - CAL_CFG[2:0] - Determines the update time and number of samples of the automatic re-
calibration routine. The settings applies to all sensors universally (though individual sensors can be
configured to support re-calibration - see Section 5.11).
CAL_CFG[2:0] RECALIBRATION
SAMPLES (SEE UPDATE TIME (SEE
2 1 0 Note 5.1) Note 5.2)
0 0 0 16 16
0 0 1 32 32
0 1 0 64 64
1 0 0 256 1024
Datasheet
CAL_CFG[2:0] RECALIBRATION
SAMPLES (SEE UPDATE TIME (SEE
2 1 0 Note 5.1) Note 5.2)
1 0 1 256 2048
1 1 0 256 4096
1 1 1 256 7936
Note 5.1 Recalibration Samples refers to the number of samples that are measured and averaged
before the Base Count is updated.
Note 5.2 Update Time refers to the amount of time (in polling cycle periods) that elapses before the
Base Count is updated.
Sensor 1
30h R/W - 64 32 16 8 4 2 1 40h
Threshold
Sensor 2
31h R/W - 64 32 16 8 4 2 1 40h
Threshold
Sensor 3
32h R/W - 64 32 16 8 4 2 1 40h
Threshold
Sensor 4
33h R/W - 64 32 16 8 4 2 1 40h
Threshold
Sensor 5
34h R/W - 64 32 16 8 4 2 1 40h
Threshold
Sensor 6
35h R/W - 64 32 16 8 4 2 1 40h
Threshold
Sensor 7
36h R/W - 64 32 16 8 4 2 1 40h
Threshold
Sensor 8
37h R/W - 64 32 16 8 4 2 1 40h
Threshold
The Sensor Threshold registers store the delta threshold that is used to determine if a touch has been
detected. When a touch occurs, the input signal of the corresponding sensor changes due to the
capacitance associated with a touch. If the sensor input change exceeds the threshold settings, then
a touch is detected.
When the BUT_LD_TH bit is set (see Section 5.15 - bit 7), writing data to the Sensor 1 Threshold
register will update all of the sensor threshold registers (31h - 37h inclusive).
Datasheet
The Sensor Noise Threshold registers control the value of a secondary internal threshold to detect
noise and improve the automatic recalibration routine. If a Capacitive Touch Sensor output exceeds
the Sensor Noise Threshold but does not exceed the sensor threshold, then it is determined to be
caused by a noise spike. That sample is not used by the automatic re-calibration routine.
The Sensor Noise Threshold is proportional to the programmed threshold as shown in Table 5.28.
CSX_BN_TH[1:0]
0 0 25%
0 1 37.5% (default)
1 0 50%
1 1 62.5%
Bits 7-6 - CS4_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 4.
Bits 5-4 - CS3_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 3.
Bits 3-2 - CS2_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 2.
Bits 1-0 - CS1_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 1.
Bits 7-6 - CS8_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 8.
Bits 5-4 - CS7_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 7.
Bits 3-2 - CS6_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 6.
Bits 1-0 - CS5_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 5.
Datasheet
The Standby Channel register controls which (if any) Capacitive Touch Sensors are active during
Standby.
STBY_
Standby AVG_ STBY_CY_TIME
41h R/W Configuration SUM - STBY_AVG[2:0] SAMP_ [1:0] 1Dh
TIME
The Standby Configuration register controls averaging and cycle time for those sensors that are active
in Standby.
Bit 7 - AVG_SUM - Determines whether the active sensors will average the programmed number of
samples or whether they will accumulate for the programmed number of samples.
‘0’ - (default) - The active sensor delta count values will be based on the average of the
programmed number of samples when compared against the threshold.
‘1’ - The active sensor delta count values will be based on the summation of the programmed
number of samples when compared against the threshold.
Bits 5 - 3 - STBY_AVG[2:0] - Determines the number of samples that are taken for all active channels
during the sensor cycle as shown in Table 5.31. All samples are taken consecutively on the same
channel before the next channel is sampled and the result is averaged over the number of samples
measured before updating the measured results.
Datasheet
STBY_AVG[2:0]
NUMBER OF SAMPLES TAKEN
2 1 0 PER MEASUREMENT
0 0 0 1
0 0 1 2
0 1 0 4
0 1 1 8 (default)
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
Bit 2 - STBY SAMP_TIME - Determines the sampling time used while in Standby.
‘0’ - The sampling time is ~2.56ms for each sensor.
‘1’ (default) - The sampling time is ~1.28ms for each sensor.
Bits 1 - 0 - STBY_CY_TIME[2:0] - Determines the overall cycle time for all measured channels during
normal operation as shown in Table 5.17. All measured channels are sampled at the beginning of the
cycle time. If additional time is remaining, then the device is placed into a lower power state for the
remaining duration of the cycle.
STBY_CY_TIME[1:0]
0 0 35ms
0 1 70ms (default)
1 0 105ms
1 1 140ms
APPLICATION NOTE: The programmed cycle time is only maintained if the total averaging time for all samples is
less than the programmed cycle. The STBY_AVG[2:0] bits will take priority so that if more
samples are required than would normally be allowed during the cycle time, the cycle time
will be extended as necessary to accommodate the number of samples to be measured.
Datasheet
Standby
42h R/W - - - - - STBY_SENSE[2:0] 02h
Sensitivity
The Standby Sensitivity register controls the sensitivity for sensors that are active in Standby.
Bits 2 - 0 - STBY_SENSE[2:0] - Controls the sensitivity for sensors that are active in Standby. The
sensitivity settings act to scale the relative delta count value higher or lower based on the system
parameters. A setting of 000b is the most sensitive while a setting of 111b is the least sensitive. At the
more sensitive settings, touches are detected for a smaller delta C corresponding to a “lighter” touch.
These settings are more sensitive to noise however and a noisy environment may flag more false
touches than higher sensitivity levels.
APPLICATION NOTE: A value of 128x is the most sensitive setting available. At the most sensitivity settings, the
MSB of the Delta Count register represents 64 out of ~25,000 which corresponds to a touch
of approximately 0.25% of the base capacitance (or a ΔC of 25fF from a 10pF base
capacitance). Conversely a value of 1x is the least sensitive setting available. At these
settings, the MSB of the Delta Count register corresponds to a delta count of 8192 counts
out of ~25,000 which corresponds to a touch of approximately 33% of the base capacitance
(or a ΔC of 3.33pF from a 10pF base capacitance).
STBY_SENSE[2:0]
2 1 0 SENSITIVITY MULTIPLIER
0 0 1 64x
0 1 0 32x (default)
0 1 1 16x
1 0 0 8x
1 0 1 4x
1 1 0 2x
1 1 1 1x - (least sensitive)
Standby
43h R/W - 64 32 16 8 4 2 1 40h
Threshold
Datasheet
The Standby Threshold registers stores the delta threshold that is used to determine if a touch has
been detected. When a touch occurs, the input signal of the corresponding sensor changes due to the
capacitance associated with a touch. If the sensor input change exceeds the threshold settings, then
a touch is detected.
Sensor 1 Base
50h R 128 64 32 16 8 4 2 1 C8h
Count
Sensor 2 Base
51h R 128 64 32 16 8 4 2 1 C8h
Count
Sensor 3 Base
52h R 128 64 32 16 8 4 2 1 C8h
Count
Sensor 4 Base
53h R 128 64 32 16 8 4 2 1 C8h
Count
Sensor 5 Base
54h R 128 64 32 16 8 4 2 1 C8h
Count
Sensor 6 Base
55h R 128 64 32 16 8 4 2 1 C8h
Count
Sensor 7 Base
56h R 128 64 32 16 8 4 2 1 C8h
Count
Sensor 8 Base
57h R 128 64 32 16 8 4 2 1 C8h
Count
The Sensor Base Count registers store the calibrated “Not Touched” input value from the Capacitive
Touch Sensor inputs. These registers are periodically updated by the re-calibration routine.
The routine uses an internal adder to add the current count value for each reading to the sum of the
previous readings until sample size has been reached. At this point, the upper 16 bits are taken and
used as the Sensor Base Count. The internal adder is then reset and the re-calibration routine
continues.
The data presented is determined by the BASE_SHIFT[3:0] bits (see Section 5.5).
LED Output LED8_ LED7_ LED6_ LED5_ LED4_ LED3_ LED2_ LED1_
71h R/W 00h
Type OT OT OT OT OT OT OT OT
The LED Output Type register controls the type of output for the LED pins. Each pin is controlled by
a single bit.
Datasheet
Sensor LED CS8_ CS7_ CS6_ CS5_ CS4_ CS3_ CS2_ CS1_
72h R/W Linking LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 00h
The Sensor LED Linking registers control whether a Capacitive Touch Sensor is linked to an LED
output or not. If the corresponding bit is set, then the appropriate LED output will change states defined
by the LED Behavior controls (see Section 5.27) in response to the Capacitive Touch sensor.
Bit 7 - CS8_LED8 - Links the LED8 output to a detected touch on the CS8 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
‘0’ (default) - The LED8 output is not associated with a the CS8 input. If a touch is detected on the
CS8 input, then the LED will not automatically be actuated. The LED is enabled and controlled via
the LED Output Configuration register (see Section 5.24) and the LED Behavior registers (see
Section 5.27).
‘1’ - The LED8 output is associated with the CS8 input. If a touch is detected on the CS8 input
then the LED will be actuated and behave as defined in Table 5.43.
Bit 6 - CS7_LED7 - Links the LED7 output to a detected touch on the CS7 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
Bit 5 - CS6_LED6 - Links the LED6 output to a detected touch on the CS6 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
Bit 4 - CS5_LED5 - Links the LED5 output to a detected touch on the CS5 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
Bit 3 - CS4_LED4 - Links the LED4 output to a detected touch on the CS4 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
Bit 2 - CS3_LED3 - Links the LED3 output to a detected touch on the CS3 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
Datasheet
Bit 1 - CS2_LED2 - Links the LED2 output to a detected touch on the CS2 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
Bit 0 - CS1_LED1 - Links the LED1 output to a detected touch on the CS1 sensor. When a touch is
detected, the LED is actuated and will behave as determined by the LED Behavior controls.
The LED Polarity registers control the logical polarity of the LED outputs.
APPLICATION NOTE: The polarity controls determine the final LED pin drive. A touch on a linked Capacitive Touch
Sensor is treated in the same way as the LED Output Control bit being set to a logic ‘1’.
APPLICATION NOTE: For LED operation, the duty cycle settings determine the % of time that the LED pin will be
driven to a logic ‘1’ state in a non-inverted system or to a logic ‘0’ state in an inverted system.
The duty cycle settings operate independently of the polarity controls. Therefore, the Max
Duty Cycle settings define the maximum % of time that the LED pin will be driven high in a
non-inverted system while the Min Duty Cycle settings determine the minimum % of time that
the LED pin will be driven high in a non-inverted system.
The LED drive assumes that the LEDs are configured such that if the LED pin is driven to
a logic ‘0’ then the LED will be on and that the CAP1088 LED pin is sinking the LED current.
Conversely, if the LED pin is driven to a logic ‘1’ then the LED will be off and there is no
current flow.
Finally, the breathe operations will always ramp the duty cycle from the minimum duty cycle
to the maximum duty cycle and then back down to the minimum duty cycle.
The LED Polarity controls lead to two conditions that have the apparent effect of changing
the duty cycle settings. If an LED output is non-inverted then the Maximum Duty Cycle
settings will define the maximum % of time that the LED is off. Conversely the Minimum
Duty Cycle settings will define the minimum % of time that the LED is off. As well, when
there is no touch detected or the LED Output Control register bit is at a logic ‘0’ then the
LED output will be driven at the minimum duty cycle setting. The relative brightness will then
ramp from maximum to minimum and back.
If an LED output is inverted, then the Maximum Duty Cycle settings will define the maximum
% of time that the LED is on and the Minimum Duty Cycle settings will determine the
minimum % of time that the LED is on. As well, when there is no touch detected, or the LED
Output Control register bit is at a logic ‘0’, then the LED output will be driven at the minimum
duty cycle setting. The relative brightness will then ramp from minimum to maximum and
back.
Datasheet
LED behavior. Similarly, the duty cycles corresponding to Pulse and Breathe operations will indicate
to the amount of time that the LED is driven to a logic ‘1’ state (corresponding to “inactive”).
74h R/W LED Output LED8_ LED7_ LED6_ LED5_ LED4_ LED3_ LED2_ LED1_ 00h
Control DR DR DR DR DR DR DR DR
The LED Output Control Register controls the output state of the LED pins.
All LEDs that are associated with a Capacitive Touch Sensor channel are automatically enabled and
will be actuated per the LED Behavior.
For those LEDs that are not linked with a Capacitive Touch Sensor channel, then the bit state
determines whether the LED is actuated or not actuated.
The LED Polarity Control register will determine the non actuated state of the LED pins.
Table 5.41 shows the interaction between the polarity controls, output controls and relative brightness.
LED
OUTPUT
CONTROL LED LED
REGISTER POLARITY MAX DUTY MIN DUTY BEHAVIORS BRIGHTNESS APPEARANCE
maximum % of minimum % of
maximum brightness at on at minimum
0 inverted time that the LED time that the LED off
minimum duty cycle duty cycle
is on (logic 0) is on (logic 0)
Datasheet
Note 5.3 For example: when polarity is non-inverted, if min duty cycle is 0, then the LED would be
at logic 1 (off) 0% of the time. It will be at logic 0 (on), 100% of the time (100 - min duty
cycle).
Bit 7 - LED8_DR - Determines whether the LED8 output is driven high or low.
‘0’ (default) - The LED8 output is driven at the minimum duty cycle or not actuated.
‘1’ - The LED8 output is driven at the maximum duty cycle or is actuated.
Bit 1 - LED2_DR - Determines whether LED2 output is driven high or low.Bit 0 - LED1_DR -
Determines whether LED1 output is driven high or low.
The LED Behavior registers control the operation of LEDs. Each LED pin is controlled by a 2-bit field
and the behavior is determined by whether the LED is linked to a Capacitive Touch Sensor or not.
If the corresponding LED output is linked to a Capacitive Touch Sensor than the Start and Stop triggers
are used. The defined behavior will activate when the Start Trigger is met and will stop when the Stop
Trigger is met.
If the LED output is not associated with a a Capacitive Touch Sensor, then the appropriate behavior
will be enabled / disabled by the LED Output Control register. If the respective LEDx_DR bit is set to
a logic ‘1’ then this will be associated as a “touch” and if the LEDx_DR bit is set to a logic ‘0’ then this
will be associated as a “release”.
The LED Polarity Control register will determine the non actuated state of the LED outputs. If the LED
Polarity Control register is set to be inverted (default), then an non actuated LED pin will be driven to
a logic ‘1’ state and the LED will be off. If the LED Polarity Control register is set to be non-inverted,
then the non actuated LED pin will be driven to the logic ’0’ state and the LED will be on.
APPLICATION NOTE: If an LED is not linked to a Capacitive Touch Sensor and is breathing (via the Breathe or
Pulse behaviors), it will finish its current “breath” before any changes to behavior are
processed.
APPLICATION NOTE: If an LED is not linked to the Capacitive Touch Sensor and configured to operate using Pulse
1 Behavior, then the circuitry will only be actuated when the corresponding bit is set. It will
not check the bit condition until the Pulse 1 behavior is finished. The device will not
remember if the bit was cleared and reset while it was actuated.
APPLICATION NOTE: If an LED is actuated and it is switched from linked to a Capacitive Touch Sensor to unlinked
(or vice versa), then the LED will respond to the new command source immediately. For
Datasheet
example, if a linked LED was actuated by a touch and the control is changed so that it is
unlinked, it will check the status of the corresponding LED Output Control bit. If that bit is ‘0’,
then the LED will behave as if a release was detected. LIkewise, if an unlinked LED was
actuated by the LED Output Control register and the control is changed so that it is linked
and no touch is detected, then the LED will behave as if a release was detected.
APPLICATION NOTE: If the period for any breathe operation is changed while the LED is actuated, then the LED
output will be reset to 0% drive and any breathing will re-initiate at the new settings. For
Pulse 1 and Pulse 2 behaviors, the number of pulses will be retained.
LEDX_CTL
[1:0]
START STOP
1 0 OPERATION DESCRIPTION TRIGGER TRIGGER
Release
Touch Detected
The LED is driven to the programmed state Detected or
0 0 Direct or LED Control
(active or inactive). See Figure 5.5 LED Control
bit set
bit cleared
Datasheet
APPLICATION NOTE: The PWM frequency is determined based on the selected LED behavior, the programmed
breathe period, and the programmed min and max duty cycles. For the Direct Mode, the
PWM frequency is calculated based on the programmed Rise and Fall times. If these are
set at 0, then the maximum PWM frequency will be used based on the programmed duty
cycle settings.
LED Pulse 1 ST_ P1_ P1_ P1_ P1_ P1_ P1_ P1_
84h R/W Period TRIG PER6 PER5 PER4 PER3 PER2 PER1 PER0 20h
The LED Pulse Period register determines the overall period of a pulse operation as determined by
the LED_CTL registers (see Table 5.43 - setting 01b). Each LSB represents 32ms so that a setting of
14h (20d) would represent a period of 640ms. The total range is from 32ms to 4.06 seconds as shown
in Table 5.45.
Bit 7 - ST_TRIG - Determines the start trigger for the LED Pulse behavior.
‘0’ (default) - The LED will Pulse when a touch is detected.
‘1’ - The LED will Pulse when a release is detected.
The Pulse 1 operation is shown in Figure 5.1 when the LED output is configured for non-inverted
polarity and in Figure 5.2 for inverted polarity.
.
Touch Detected or
Release Detected
X pulses after touch or after release
Normal – untouched Normal – untouched
operation (100% - Pulse 1 Min Duty Cycle) * Brightness operation
LED
Brightness
Pulse 1 Period
(P1_PER)
Datasheet
Touch Detected or
Release Detected
X pulses after touch or after release
LED
Brightness
Normal – untouched
operation
Normal – untouched
operation Pulse 1 Min Duty Cycle * Brightness
Pulse Period
(P1_PER)
00h 0 32
01h 1 32
02h 2 64
03h 3 96
04h 4 128
85h R/W LED Pulse 2 - P2_ P2_ P2_ P2_ P2_ P2_ P2_ 14h
Period PER6 PER5 PER4 PER3 PER2 PER1 PER0
Datasheet
The LED Pulse 2 Period register determines the overall period of a pulse operation as determined by
the LED_CTL registers (see Table 5.43 - setting 10b). Each LSB represents 32ms so that a setting of
14h (20d) would represent a period of 640ms. The total range is from 32ms to 4.06 seconds (see
Table 5.45).
The Pulse 2 Behavior is shown in Figure 5.3 for non-inverted polarity and in Figure 5.4 for inverted
polarity.
Release Detected
Touch Detected
Normal – untouched Normal – untouched
operation X additional pulses after release operation
(100% - Pulse 2 Min Duty Cycle) *
Brightness
LED
Brightness ...
Release Detected
Touch Detected
Normal – untouched Normal – untouched
operation X additional pulses after release operation
Pulse 2 Max Duty Cycle * Brightness
LED
Brightness ...
The LED Breathe Period register determines the overall period of a breathe operation as determined
by the LED_CTL registers (see Table 5.43 - setting 11b). Each LSB represents 32ms so that a setting
Datasheet
of 14h (20d) would represent a period of 640ms. The total range is from 32ms to 4.06 seconds (see
Table 5.45).
The LED Configuration register controls general LED behavior as well as the number of pulses that
are sent for the PULSE LED output behavior.
Bit 6 - RAMP_ALERT - Determines whether the device will assert the ALERT# pin when LEDs
actuated by the LED Output Control register bits have finished their respective behaviors.
‘0’ (default) - The ALERT# pin will not be asserted when LEDs actuated by the LED Output Control
register have finished their programmed behaviors.
‘1’ - The ALERT# pin will be asserted whenever any LED that is actuated by the LED Output
Control register has finished its programmed behavior.
Bits 5 - 3 - PUSLE2_CNT[2:0] - Determines the number of pules used for the Pulse 2 behavior as
shown in Table 5.49.
Bits 2 - 0 - PULSE1_CNT[2:0] - Determines the number of pulses used for the Pulse 1 behavior as
shown in Table 5.49.
PULSEX_CNT[2:0]
2 1 0 NUMBER OF BREATHS
0 0 0 1 (default - Pulse 2)
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5 (default - Pulse 1)
1 0 1 6
1 1 0 7
1 1 1 8
Datasheet
LED Pulse 1
90h R/W P1_MAX_DUTY[3:0] P1_MIN_DUTY[3:0] F0h
Duty Cycle
LED Pulse 2
91h R/W P2_MAX_DUTY[3:0] P2_MIN_DUTY[3:0] F0h
Duty Cycle
LED Breathe
92h R/W BR_MAX_DUTY[3:0] BR_MIN_DUTY[3:0] F0h
Duty Cycle
Direct Duty
93h R/W DR_MAX_DUTY[3:0] DR_MIN_DUTY[3:0] F0h
Cycle
The LED Duty Cycle registers determine the minimum and maximum duty cycle settings used for the
LED for each LED behavior. These settings affect the brightness of the LED when it is fully off and
fully on.
The LED driver duty cycle will ramp up from the minimum duty cycle (see Section 5.32) to the
maximum duty cycle and back down again.
APPLICATION NOTE: Changes to the Duty Cycle settings will be applied immediately. When the respective register
is written, the LED output will be reset to the minimum (or maximum) setting and restarted
at the updated settings.
APPLICATION NOTE: Upon power on reset (or upon release of the RESET pin), the first breath will breathe from
100% (or 0% duty cycle as determined by the polarity registers) to the programmed minimum
(or maximum as determined by the polarity registers) and then proceed normally.
Bits 7 - 4 - X_MAX_DUTY[3:0] - Determines the maximum PWM duty cycle for the LED drivers as
shown in Table 5.51
Bits 3 - 0 - X_MIN_DUTY[3:0] - Determines the minimum PWM duty cycle for the LED drivers as
shown in Table 5.51.
X_MAX/MIN_DUTY [3:0]
3 2 1 0 DUTY CYCLE
0 0 0 0 1%
0 0 0 1 2%
0 0 1 0 3%
0 1 1 1 4%
0 1 0 0 5%
0 1 0 1 6%
0 1 1 0 7%
0 1 1 1 9%
Datasheet
X_MAX/MIN_DUTY [3:0]
3 2 1 0 DUTY CYCLE
1 0 0 0 11%
1 0 0 1 14%
1 0 1 0 18%
1 0 1 1 25%
1 1 0 0 35%
1 1 0 1 50%
1 1 1 0 70%
1 1 1 1 99%
LED Direct
94h R/W - - RISE_RATE[2:0] FALL_RATE[2:0] 00h
Ramp Rates
The LED Direct Ramp Rates register control the rising and falling edge time of an LED that is
configured to operate in Direct mode. The rising edge time corresponds to the amount of time the LED
takes to transition from its minimum duty cycle to its maximum duty cycle. Conversely, the falling edge
time corresponds to the amount of time that the LED takes to transition from its maximum duty cycle
to its minimum duty cycle.
Bits 5 - 3 - RISE_RATE[2:0] - Determines the rising edge time of an LED when it transitions from its
minimum drive state to its maximum drive state as shown in Table 5.53.
Bits 2 - 0 - FALL_RATE[2:0] - Determines the falling edge time of an LED when it transitions from its
maximum drive state to its minimum drive state as shown in Table 5.53.
0 0 0 0
0 0 1 250ms
0 1 0 500ms
1 1 1 750ms
1 0 0 1s
1 0 1 1.25s
Datasheet
Table 5.53 Rise / Fall Rate and Off Delay Decode (continued)
1 1 0 1.5s
1 1 1 2s
The LED Off Delay register determines the amount of time an LED In Direct Mode remains active after
it is no longer actuated (such as after a release has been detected or the drive state has been
changed).
Bits 2 - 0 - DIR_OFF_DLY[2:0] - Determines the turn-off delay for all LEDs that are configured to
operate in Direct Mode as shown in Table 5.53.
The Direct Mode operation is determined by the combination of programmed Rise Time, Fall Time, Min
and Max Duty cycles, Off Delay, and polarity. Figure 5.5 shows the behavior for Non-Inverted polarity
while Figure 5.6 shows the behavior for inverted polarity.
N orm al – R elease
Touch Norm al –
untouched Detected
Detected untouched
operation
operation
(100% - M in D uty Cycle) *
LE D Brightness
Brightness
Datasheet
Touch R elease
D etected D etected
The Product ID register stores a unique 8-bit value that identifies the device.
The Revision register stores an 8-bit value that represents the part revision.
Datasheet
Datasheet
Datasheet
TOP
0.41
BOTTOM
BOTTOM MARKING NOT ALLOWED
Datasheet
Rev. 1.0 Section 4.3, Updated text for wake pin during Deep Sleep
(06-11-09) "WAKE/SPI_MOSI Pin
Operation"
Rev. 1.0 Chapter 1, Pin Description Updated pin description for WAKE/SPI_MOSI pin
(06-11-09) to identify that it can be an input during Deep
Sleep.
Rev. 1.0 Figure 4.1, "System Updated system diagram for proper ADDR_COMM
(06-11-09) Diagram for CAP1088" pin usage. Changed from pull-up to VDD to pull-
down to GND
Rev. 1.0 Section 3.7, "BC-Link Removed “8051” from 2nd paragraph
(06-10-09) Interface"
Rev. 1.0 Pin Description Pin tables modified adding SPI to “ALERT# /
(06-10-09) BC_IRQ#” pin
Rev. 1.0 Table 3.1, "ADDR_COMM “/I2C” added “SMBus” in “Protocol Used” column
(06-10-09) Pin Decode"
y/Rev. 1.0 Chapter 4, General Second to last paragraph removed, not needed as
(06-10-09) Description clarification follows
Rev. 1.0 Section 4.1, "Power States" Removed mention of LED driver outputs
(06-10-09)
Rev. 1.0 Section 4.2, "RESET Pin" Modified to indicate all communication buses
(06-10-09)
Rev. 1.0 Section 4.4, "LED Drivers" Updated text for # of LEDs
(06-04-09)
Rev. 1.0 Table 5.1, "Register Set in Updated text and register descriptions for incorrect
(06-04-09) Hexadecimal Order" #’s Cap Sense channels
Rev. 1.0 Note following Table 2.1, Text modified from “0.3 (12mil)” to “0.3mm (12mil)”
(06-02-09) "Absolute Maximum
Ratings"
Rev. 0.56 (5/1/09) General Fixed typos and updated text as necessary.
Cleaned up system diagrams
Datasheet
Rev. 0.54 (4/24/09) Figure 4.1, "System Updated figures for pin names
Diagram for CAP1088"
Rev. 0.53 (4/23/09) Section 3.4, "SPI Interface" Updated section to describe Normal operation