CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver PRODUCT FEATURES Datasheet General Description Features The CAP1014 is a multiple channel Capacitive Touch sensor and LED Driver. The CAP1014 contains up to fourteen (14) individual Capacitive Touch sensor inputs with programmable sensitivity for use in touch button and slider switch applications. Each sensor also contains automatic recalibration with programmable time delays. The CAP1014 also contains eleven (11) low side LED drivers that offer full-on / off, variable rate blinking, dimness controls, and breathing. Capacitive buttons can be linked to LED outputs. Applications — — — — — Programmable sensitivity High SNR allows for easy tuning Automatic recalibration Slider Acceleration Detection Slider positional detection Low Power operation — 150uA quiescent current in Deep Sleep — 250uA quiescent current in Sleep mode while monitoring 2 buttons. Consumer Electronics Desktop and Notebook PC’s LCD Monitors Fourteen (14) Capacitive Touch Sensor inputs Alert to signal touch to host processor User controlled reset Low External Component Count SMBus 2.0 compliant interface to change operating parameters to work in a wide variety of systems — Block Read and Write function for quick tasking Eleven (11) LED Driver outputs — Programmable blink, breathe, and dimness controls — 8 Configurable as GPIOs — Buttons can be linked to LED responses Development boards and software available Available in 32-pin 5mm x 5mm QFN Lead-free RoHS Compliant package Block Diagram LED2 LED1 LED4 LED3 LED6 LED5 LED8 LED7 LED10 LED9 LED11 RESET LED Blink, Breathe, and Dimness control Capacitive Sensing Algorithm CS1 CS3 CS2 SMSC CAP1014 CS5 CS4 CS7 CS6 CS9 CS8 VDD GND SMBus Slave Protocol SMCLK SMDATA ALERT CS11 CS13 CS10 CS12 CS14 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet ORDER NUMBERS: ORDERING NUMBER PACKAGE FEATURES CAP1014-1-EZK-TR 32-pin QFN 5mm x 5mm (Lead Free RoHS compliant) 14 Capacitive Touch Sensors, 11 LED drivers. Lid Closure. SMBus address 0101_000b CAP1014-2-EZK-TR 32-pin QFN 5mm x 5mm (Lead Free RoHS compliant) 14 Capacitive Touch Sensors, 11 LED drivers. Lid Closure. SMBus address 0101_100b REEL SIZE IS 4,000 PIECES 80 ARKAY DRIVE, HAUPPAUGE, NY 11788 (631) 435-6000, FAX (631) 273-3123 Copyright © 2009 SMSC or its subsidiaries. All rights reserved. Circuit diagrams and other information relating to SMSC products are included as a means of illustrating typical applications. Consequently, complete information sufficient for construction purposes is not necessarily given. Although the information has been checked and is believed to be accurate, no responsibility is assumed for inaccuracies. SMSC reserves the right to make changes to specifications and product descriptions at any time without notice. Contact your local SMSC sales office to obtain the latest specifications before placing your product order. The provision of this information does not convey to the purchaser of the described semiconductor devices any licenses under any patent rights or other intellectual property rights of SMSC or others. All sales are expressly conditional on your agreement to the terms and conditions of the most recently dated version of SMSC's standard Terms of Sale Agreement dated before the date of your order (the "Terms of Sale Agreement"). The product may contain design defects or errors known as anomalies which may cause the product's functions to deviate from published specifications. Anomaly sheets are available upon request. SMSC products are not designed, intended, authorized or warranted for use in any life support or other application where product failure could cause or contribute to personal injury or severe property damage. Any and all such uses without prior written approval of an Officer of SMSC and further testing and/or modification will be fully at the risk of the customer. Copies of this document or other SMSC literature, as well as the Terms of Sale Agreement, may be obtained by visiting SMSC’s website at http://www.smsc.com. SMSC is a registered trademark of Standard Microsystems Corporation (“SMSC”). Product names and company names are the trademarks of their respective holders. SMSC DISCLAIMS AND EXCLUDES ANY AND ALL WARRANTIES, INCLUDING WITHOUT LIMITATION ANY AND ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND AGAINST INFRINGEMENT AND THE LIKE, AND ANY AND ALL WARRANTIES ARISING FROM ANY COURSE OF DEALING OR USAGE OF TRADE. IN NO EVENT SHALL SMSC BE LIABLE FOR ANY DIRECT, INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES; OR FOR LOST DATA, PROFITS, SAVINGS OR REVENUES OF ANY KIND; REGARDLESS OF THE FORM OF ACTION, WHETHER BASED ON CONTRACT; TORT; NEGLIGENCE OF SMSC OR OTHERS; STRICT LIABILITY; BREACH OF WARRANTY; OR OTHERWISE; WHETHER OR NOT ANY REMEDY OF BUYER IS HELD TO HAVE FAILED OF ITS ESSENTIAL PURPOSE, AND WHETHER OR NOT SMSC HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Revision 1.65 (08-11-09) 2 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table of Contents Chapter 1 Pin Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Chapter 2 Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Chapter 3 Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1 3.2 System Management Bus Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 SMBus Start Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 SMBus Address and RD / WR Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 SMBus Data Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.4 SMBus ACK and NACK Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.5 SMBus Stop Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.6 SMBus Time-out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.7 SMBus and I2C Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMBus Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 SMBus Write Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Block Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 SMBus Read Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Block Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.5 SMBus Send Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.6 SMBus Receive Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 15 15 16 16 16 16 16 17 17 17 17 18 18 Chapter 4 Product Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1 4.2 4.3 4.4 4.5 4.6 Power States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RESET Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Linking LEDs to Capacitive Touch Sensors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capacitive Touch Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Multiple Button Presses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.2 Lid Closure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Grouped Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.4 Sensing Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.5 Recalibrating Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grouped Sensor Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Tap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.2 Press and Hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3 Slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.4 Relative Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.5 Slider Velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALERT Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.1 Button Interrupt Behavior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.2 Grouped Sensor Interrupt Behavior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.3 Wake from Deep Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 22 22 22 22 22 22 23 23 23 23 23 23 24 24 24 24 24 24 25 Chapter 5 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1 5.2 5.3 5.4 Main Status Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Button Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Button Status 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Button Status 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Build Revision Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slider Position / Volumetric Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Absolute Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMSC CAP1014 3 DATASHEET 34 35 35 36 36 37 37 Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 5.35 5.36 5.37 5.38 5.39 5.40 5.41 5.42 5.43 5.4.2 Volumetric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vendor ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Volumetric Step Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Noise Flag Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lid Closure Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sensor Delta Count Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Queue Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Sensitivity Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sensor Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Button Configuration Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Configuration Register 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Configuration Register 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calibration Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calibration Activate Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupt Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.21.1 Interrupt Enable 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.21.2 Interrupt Enable 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sleep Channel Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiple Touch Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lid Closure Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lid Closure Queue Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lid Closure Pattern Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recalibration Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sensor Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Button Noise Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.29.1 Button Noise Threshold 1 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.29.2 Button Noise Threshold 2 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lid Closure Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.30.1 Lid Closure Threshold 1 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.30.2 Lid Closure Threshold 2 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.30.3 Lid Closure Threshold 3 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.30.4 Lid Closure Threshold 4 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slider Velocity Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sampling Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sensor Base Count Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED / GPIO Direction Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED / GPIO Output Type Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Input Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Output Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.37.1 LED Output Control 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.37.2 LED Output Control 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Polarity Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.38.1 LED Polarity 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.38.2 LED Polarity 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sensor LED Linking Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Behavior Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.40.1 LED Behavior 1 - 81h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.40.2 LED Behavior 2 - 82h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.40.3 LED Behavior 3 - 83h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Pulse 1 Period Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Pulse 2 Period Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Breathe Period Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revision 1.65 (08-11-09) 4 DATASHEET 38 38 38 39 39 40 40 41 42 42 44 45 46 47 48 48 49 49 50 50 51 51 52 53 53 54 55 56 57 57 57 58 58 58 59 59 60 61 62 62 63 63 63 64 64 65 66 66 67 68 68 68 69 71 72 SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.44 5.45 5.46 5.47 5.48 5.49 LED Pulse Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Pulse and Breathe Duty Cycle Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Direct Ramp Rates Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED Off Delay Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Product ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revision Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 73 74 75 77 77 Chapter 6 Package Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.1 6.2 Package Drawings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Package Marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Chapter 7 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 SMSC CAP1014 5 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet List of Figures Figure 1.1 Figure 3.1 Figure 4.1 Figure 4.2 Figure 4.3 Figure 4.4 Figure 4.5 Figure 4.6 Figure 4.7 Figure 5.1 Figure 5.2 Figure 5.3 Figure 5.4 Figure 5.5 Figure 5.6 Figure 6.1 Figure 6.1 Figure 6.2 Figure 6.3 Figure 6.4 Figure 6.5 Figure 6.1 CAP1014 Pin Diagram (32-Pin QFN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 SMBus Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 System Diagram for CAP1014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Button Interrupt Behavior - Repeat Rate Enabled (default) . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Button Interrupt Behavior - No Repeat Rate Enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Tap Interrupt Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Press and Hold Interrupt Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Slide Interrupt Behavior - No Acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Slide Interrupt Behavior - Acceleration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Pulse 1 Behavior with Non-Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Pulse 1 Behavior with Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Pulse 2 Behavior with Non-Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Pulse 2 Behavior with Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Direct Mode Behavior for Non-Inverted Polarity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Direct Mode Behavior for Inverted Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Package Diagram - 32-Pin QFN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Package Dimensions - 32-Pin QFN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Package PCB Land Pattern and Stencil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Package Detail A - Stencil Opening and Perimeter Lands. . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Package Detail B - Thermal Vias and Stencil Opening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Package Land Pattern Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Package Markings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Revision 1.65 (08-11-09) 6 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet List of Tables Table 1.1 Pin Description for CAP1014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Table 1.2 Pin Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Table 2.1 Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Table 2.2 Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Table 3.1 Protocol Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Table 3.2 Write Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Table 3.3 Block Write Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Table 3.4 Read Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Table 3.5 Block Read Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Table 3.6 Send Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Table 3.7 Receive Byte Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Table 4.1 Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Table 5.1 Register Set in Hexadecimal Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Table 5.2 Main Status Control Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Table 5.3 Button Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Table 5.4 Firmware Revision Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Table 5.5 Build History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Table 5.6 Slider Position / Volumetric Data Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Table 5.7 Example Slider Absolute Position Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Table 5.8 Vendor ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Table 5.9 Volumetric Step Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Table 5.10 Noise Flag Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Table 5.11 Lid Closure Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Table 5.12 GPIO Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Table 5.13 GPIO Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Table 5.14 Sensor Delta Count Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Table 5.15 Queue Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Table 5.16 QUEUE_B Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Table 5.17 Data Scaling Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Table 5.18 D_DSP Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Table 5.19 C_DSP Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Table 5.20 Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Table 5.21 Sensor Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Table 5.22 Button Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Table 5.23 MAX_DUR_B and MAX_DUR_G Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Table 5.24 RPT_RATE_B / SL / PH and M_PRESS Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Table 5.25 Group Configuration Register 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Table 5.26 Group Configuration Register 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Table 5.27 Calibration Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Table 5.28 Calibration Activate Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Table 5.29 Interrupt Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Table 5.30 Sleep Channel Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Table 5.31 Multiple Touch Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Table 5.32 B_MULT_T Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Table 5.33 G_MULT_T Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Table 5.34 Lid Closure Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Table 5.35 Lid Closure Queue Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Table 5.36 Lid Closure Pattern Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Table 5.37 Recalibration Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Table 5.38 ACAL_RT[1:0] Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Table 5.39 CAL_CFG Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Table 5.40 Sensor Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Table 5.41 Button Noise Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 SMSC CAP1014 7 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.42 CSx_BN_TH Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.43 Lid Closure Threshold Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.44 CSx_LD_TH Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.45 Slider Velocity Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.46 MAX_INT Bit Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.47 SLIDE_TIME Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.48 RPT_SCALE Bit Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.49 Sampling Configuration Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.50 Sensor Base Count Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.51 LED / GPIO Direction Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.52 LED / GPIO Output Type Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.53 GPIO Input Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.54 LED Output Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.55 LED Polarity Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.56 LED Polarity Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.57 Sensor LED Linking Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.58 LED Behavior Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.59 LEDx_CTL Bit Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.60 LED Behavior Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.61 LED Pulse / Breathe Period Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.62 LED Behavior Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.63 LED Behavior Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.64 LED Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.65 PULSE_CNT Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.66 LED Period and Duty Cycle Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.67 LED Duty Cycle Decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.68 LED Direct Ramp Rates Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.69 Rise / Fall Rate Cycle Decode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.70 LED Off Delay Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.71 Off Delay Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.72 Product ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 5.73 Revision Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table 7.1 Customer Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revision 1.65 (08-11-09) 8 DATASHEET 57 57 58 59 59 60 60 60 61 62 62 63 63 64 65 66 67 68 69 70 71 72 72 73 73 74 74 75 75 75 77 77 83 SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet CS7 CS6 CS5 CS4 CS3 CS2 CS1 N/C 32 31 30 29 28 27 26 25 Chapter 1 Pin Description CS8 1 24 N/C CS9 2 23 RESET CS10 3 22 SMCLK CS11 4 21 SMDATA 20 ALERT GND 15 16 LED8 / GPIO8 LED9 LED7 / GPIO7 17 14 8 LED6 / GPIO6 VDD 13 LED10 LED5 / GPIO5 18 12 7 LED4 / GPIO4 CS14 11 LED11 LED3 / GPIO3 19 10 6 LED2 / GPIO2 CS13 9 5 LED1 / GPIO1 CS12 Figure 1.1 CAP1014 Pin Diagram (32-Pin QFN) Table 1.1 Pin Description for CAP1014 PIN NUMBER PIN NAME PIN FUNCTION PIN TYPE 1 CS8 Capacitive Touch Sensor 8 AIO 2 CS9 Capacitive Touch Sensor 9 AIO 3 CS10 Capacitive Touch Sensor 10 AIO 4 CS11 Capacitive Touch Sensor 11 AIO 5 CS12 Capacitive Touch Sensor 12 AIO 6 CS13 Capacitive Touch Sensor 13 AIO 7 CS14 Capacitive Touch Sensor 14 AIO SMSC CAP1014 9 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 1.1 Pin Description for CAP1014 (continued) PIN NUMBER PIN NAME PIN FUNCTION PIN TYPE 8 VDD Positive Power supply Power 9 LED1 / GPIO1 LED1 - Open drain LED driver (default) OD (5V) GPI1 - GPIO 1 Input DI (5V) GPO1 - GPIO 1 push-pull output DO LED2 - Open drain LED driver (default) OD (5V) GPI2 - GPIO 2 Input DI (5V) GPO2 - GPIO 2 push-pull output DO LED3 - Open drain LED driver (default) OD (5V) GPI3 - GPIO 3 Input DI (5V) GPO3 - GPIO 3 push-pull output DO LED4 - Open drain LED driver (default) OD (5V) GPI4 - GPIO 4 Input DI (5V) GPO4 - GPIO 4 push-pull output DO LED5 - Open drain LED driver (default) OD (5V) GPI5 - GPIO 5 Input DI (5V) GPO5 - GPIO 5 push-pull output DO LED6 - Open drain LED driver (default) OD (5V) GPI6 - GPIO 6 Input DI (5V) GPO6 - GPIO 6 push-pull output DO LED7 - Open drain LED driver (default) OD (5V) GPI7 - GPIO 7 Input DI (5V) GPO7 - GPIO 7 push-pull output DO LED8 - Open drain LED driver (default) OD (5V) GPI8 - GPIO 8 Input DI (5V) GPO8 - GPIO 8 push-pull output DO 10 11 12 13 14 15 16 LED2 / GPIO 2 LED3 / GPIO3 LED4 / GPIO4 LED5 / GPIO5 LED6 / GPIO6 LED7 / GPIO7 LED8 / GPIO8 17 LED9 LED9 - Open drain LED driver OD (5V) 18 LED10 LED10 - Open drain LED driver OD (5V) 19 LED11 LED11 - Open drain LED driver OD (5V) 20 ALERT Active High Interrupt / Wake Up Input DIO 21 SMDATA Bi-directional SMBus data - requires pull-up resistor DIOD (5V) 22 SMCLK SMBus clock input - requires pull-up resistor DI (5V) Revision 1.65 (08-11-09) 10 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 1.1 Pin Description for CAP1014 (continued) PIN NUMBER PIN NAME PIN FUNCTION PIN TYPE 23 RESET Soft reset for system - resets all registers to default values DI (5V) 24 N/C Not Connected - connect to gnd N/A 25 N/C Not Connected - connect to gnd N/A 26 CS1 Capacitive Touch Sensor 1 AIO 27 CS2 Capacitive Touch Sensor 2 AIO 28 CS3 Capacitive Touch Sensor 3 AIO 29 CS4 Capacitive Touch Sensor 4 AIO 30 CS5 Capacitive Touch Sensor 5 AIO 31 CS6 Capacitive Touch Sensor 6 AIO 32 CS7 Capacitive Touch Sensor 7 AIO Bottom Plate GND Power Ground Power The pin types are described in detail below. All pins labelled with (5V) are 5V tolerant. Note: For all 5V tolerant pins that require a pull-up resistor, the voltage difference between VDD and the pull-up voltage must never exceed 3.6V. Table 1.2 Pin Types PIN TYPE DESCRIPTION Power This pin is used to supply power or ground to the device. DI Digital Input - this pin is used as a digital input. This pin is 5V tolerant. DIO Digital Input Output - this pin is used as a digital input / output. AIO Analog Input / Output - this pin is used as an I/O for analog signals. DIOD Digital Input / Open Drain Output - this pin is used as an digital I/O. When it is used as an output, It is open drain and requires a pull-up resistor. This pin is 5V tolerant. OD Open Drain Digital Output - this pin is used as a digital output. It is open drain and requires a pull-up resistor. This pin is 5V tolerant. DO Push-pull Digital Output - this pin is used as a digital output and can sink and source current SMSC CAP1014 11 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Chapter 2 Electrical Specifications Table 2.1 Absolute Maximum Ratings Voltage on VDD pin -0.3 to 4 V Voltage on 5V tolerant pins (V5VT_pin) -0.3 to 5.5 V Voltage on 5V tolerant pins (|V5VT_pin - VDD|) (see Note 2.1) 0 to 3.6 V Voltage on any other pin to GND -0.3 to VDD + 0.3 V Package Power Dissipation up to TA = 85°C (see Note 2.2) 1 W Junction to Ambient (θJA) (see Note 2.3) 48 °C/W Operating Ambient Temperature Range -40 to 125 °C Storage Temperature Range -55 to 150 °C ESD Rating, All Pins, HBM 8000 V Note: 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.1 For the 5V tolerant pins that have a pull-up resistor, the pull-up voltage must not exceed 3.6V when the device is unpowered. Note 2.2 The Package Power Dissipation specification assumes a thermal via design with the thermal landing be soldered to the PCB ground plane with 0.3mm (12mil) diameter vias in a 4x4 matrix at 0.9mm (35.4mil) pitch. Note 2.3 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. Table 2.2 Electrical Specifications VDD = 3V to 3.6V, TA = 0°C to 100°C, all Typical values at TA = 27°C unless otherwise noted. CHARACTERISTIC SYMBOL MIN TYP MAX UNIT CONDITIONS DC Power Supply Voltage VDD Supply Current Revision 1.65 (08-11-09) 3.0 3.3 3.6 V ISLEEP 220 300 uA Sleep Mode active, 2 sensors monitored IDSLEEP 150 200 uA Deep Sleep or Deact modes active IDD 0.42 1 mA Average current Capacitive Sensing Active, LEDs enabled 12 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 2.2 Electrical Specifications (continued) VDD = 3V to 3.6V, TA = 0°C to 100°C, all Typical values at TA = 27°C unless otherwise noted. CHARACTERISTIC SYMBOL MIN TYP MAX UNIT CONDITIONS Capacitive Touch Sensor Base Capacitance Detectable Capacitive Shift CBASE 5 15 50 pF Pad untouched ΔCTOUCH 0.1 0.4 2 pF Pad touched Sample Time tTOUCH 2.5 ms Update Time ΔtTOUCH 35 ms Recalibration Interval ΔtCAL 8 s Automatic Recalibration active, no touch active, Default settings LED / GPIO Drivers (LED / GPIO 1 - 8) Duty Cycle DUTYLED Sinking Current 0 100 % Programmable ISINK 24 mA VOL = 0.4 Sourcing Current ISOURCE 24 mA VOH = VDD - 0.4 Input High Voltage VIH V LED / GPIO configured as input Input Low Voltage VIL V LED / GPIO configured as input 100 % Programmable 2.0 0.8 LED Drivers (LED 9 - LED 10) Duty Cycle DUTYLED Sinking Current ISINK 24 mA Output Low Voltage VOL 0.4 V ISINK = 24mA 100 % Programmable 0 LED11 Driver Duty Cycle DUTYLED 0 Sinking Current ISINK 48 mA Output Low Voltage VOL 0.4 V ISINK = 48mA I/O Pins - SMDATA, SMCLK, and ALERT Pins Output Low Voltage VOL 0.4 V ISINK_IO = 8mA Output High Voltage VOH VDD 0.4 V ALERT pin active high and asserted ISOURCE_IO = 8mA Input High Voltage VIH 2.0 V Input Low Voltage VIL 0.8 V Leakage Current ILEAK ±5 uA powered or unpowered TA < 85°C pull-up voltage < 3.6V RESET Pin Input High Voltage SMSC CAP1014 VIH 2.0 V 13 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 2.2 Electrical Specifications (continued) VDD = 3V to 3.6V, TA = 0°C to 100°C, all Typical values at TA = 27°C unless otherwise noted. CHARACTERISTIC SYMBOL Input Low Voltage VIL RESET Pin assertion to device reset tRST_OFF RESET Pin release to fully active operation tRST_ON MIN TYP MAX UNIT 0.8 V 1 10 us 400 500 ms CONDITIONS SMBus Timing Input Capacitance CIN Clock Frequency fSMB Spike Suppression tSP Bus free time Start to Stop tBUF 1.3 us Setup Time: Start tSU:STA 0.6 us Setup Time: Stop tSU:STP 0.6 us Data Hold Time tHD:DAT 0.6 6 us Data Setup Time tSU:DAT 0.6 72 us Clock Low Period tLOW 1.3 us Clock High Period tHIGH 0.6 us Clock/Data Fall time tFALL 300 ns Min = 20+0.1CLOAD ns Clock/Data Rise time tRISE 300 ns Min = 20+0.1CLOAD ns Capacitive Load CLOAD 400 pF per bus line Revision 1.65 (08-11-09) 5 pF 10 400 kHz 50 ns 14 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Chapter 3 Communications The CAP1014 communicates via the SMBus or I2C communications protocols. APPLICATION NOTE: Upon power up, the CAP1014 will not respond to any SMBus communications for 10ms. After this time, full functionality is available. 3.1 System Management Bus Protocol The CAP1014 communicates with a host controller, such as an SMSC SIO, through the SMBus. The SMBus is a two-wire serial communication protocol between a computer host and its peripheral devices. A detailed timing diagram is shown in Figure 3.1. Stretching of the SMCLK signal is supported, however the CAP1014 will not stretch the clock signal. TLOW THIGH THD:STA TSU:STO TRISE SMCLK THD:STA THD:DAT TFALL TSU:STA TSU:DAT SMDATA TBUF P S S S - Start Condition P - Stop Condition P Figure 3.1 SMBus Timing Diagram 3.1.1 SMBus Start Bit The SMBus Start bit is defined as a transition of the SMBus Data line from a logic ‘1’ state to a logic ‘0’ state while the SMBus Clock line is in a logic ‘1’ state. 3.1.2 SMBus Address and RD / WR Bit The SMBus Address Byte consists of the 7-bit client address followed by the RD / WR indicator bit. If this RD / WR bit is a logic ‘0’, then the SMBus Host is writing data to the client device. If this RD / WR bit is a logic ‘1’, then the SMBus Host is reading data from the client device. The CAP1014-1 responds to the slave address 0101_000xb. The CAP1014-2 responds to slave address 0101_100xb. Multiple addressing options are available. For more information contact SMSC. 3.1.3 SMBus Data Bytes All SMBus Data bytes are sent most significant bit first and composed of 8-bits of information. SMSC CAP1014 15 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 3.1.4 SMBus ACK and NACK Bits The SMBus client will acknowledge all data bytes that it receives. This is done by the client device pulling the SMBus Data line low after the 8th bit of each byte that is transmitted. This applies to both the Write Byte and Block Write protocols 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. 3.1.5 SMBus Stop Bit The SMBus Stop bit is defined as a transition of the SMBus Data line from a logic ‘0’ state to a logic ‘1’ state while the SMBus clock line is in a logic ‘1’ state. When the CAP1014 detects an SMBus Stop bit, and it has been communicating with the SMBus protocol, it will reset its client interface and prepare to receive further communications. 3.1.6 SMBus Time-out The CAP1014 includes an SMBus time-out feature. Following a 30ms period of inactivity on the SMBus where the SMCLK pin is held low, the device will time-out and reset the SMBus interface. The time-out function defaults to disabled. It can be enabled by setting the TIMEOUT bit in the Configuration register (see Section 5.14). 3.1.7 SMBus and I2C Compliance The major difference between SMBus and I2C devices is highlighted here. For complete compliance information refer to the SMBus 2.0 specification. 1. Minimum frequency for SMBus communications is 10kHz. 2. The client protocol will reset if the clock is held low longer than 30ms. 3. The client protocol will reset if both the clock and the data line are high for longer than 150us (idle condition). 4. I2C devices do not support the Alert Response Address functionality (which is optional for SMBus). 3.2 SMBus Protocols The CAP1014 is SMBus 2.0 compatible and supports Send Byte, Read Byte, Block Read, Receive Byte as valid protocols as shown below. The CAP1014 also supports the I2C block read and block write protocols. Finally, it will respond to the Alert Response Address protocol but is not in full compliance. All of the below protocols use the convention in Table 3.1. Table 3.1 Protocol Format DATA SENT TO DEVICE Data sent Revision 1.65 (08-11-09) DATA SENT TO THE HOST Data sent 16 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 3.2.1 SMBus Write Byte The Write Byte is used to write one byte of data to a specific register as shown in Table 3.2. Table 3.2 Write Byte Protocol START CLIENT ADDRESS WR ACK REGISTER ADDRESS ACK REGISTER DATA ACK STOP 1 ->0 0101_000 0 0 XXh 0 XXh 0 0 -> 1 3.2.2 Block Write The Block Write is used to write multiple data bytes to a group of contiguous registers as shown in Table 3.3. It is an extension of the Write Byte Protocol. 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. Table 3.3 Block Write Protocol START CLIENT ADDRESS WR ACK REGISTER ADDRESS ACK REGISTER DATA ACK 1 ->0 0101_000 0 0 XXh 0 XXh 0 REGISTER DATA ACK REGISTER DATA ACK ... REGISTER DATA ACK STOP XXh 0 XXh 0 ... XXh 0 0 -> 1 3.2.3 SMBus Read Byte The Read Byte protocol is used to read one byte of data from the registers as shown in Table 3.4. Table 3.4 Read Byte Protocol START 1->0 CLIENT ADDRESS 0101_000 3.2.4 WR ACK REGISTER ADDRESS ACK START CLIENT ADDRESS 0 0 XXh 0 1 ->0 0101_000 RD 1 ACK 0 REGISTER DATA XXh NACK 1 STOP 0 -> 1 Block Read The Block Read is used to read multiple data bytes from a group of contiguous registers as shown in Table 3.5. It is an extension of the Read Byte Protocol. 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. SMSC CAP1014 17 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 3.5 Block Read Protocol START CLIENT ADDRESS WR ACK REGISTER ADDRESS ACK START CLIENT ADDRESS RD ACK REGISTER DATA 1->0 0101_000 0 0 XXh 0 1 ->0 0101_000 1 0 XXh ACK REGISTER DATA ACK REGISTER DATA ACK REGISTER DATA ACK ... REGISTER DATA NACK STOP 0 XXh 0 XXh 0 XXh 0 ... XXh 1 0 -> 1 3.2.5 SMBus Send Byte The Send Byte protocol is used to set the internal address register pointer to the correct address location. No data is transferred during the Send Byte protocol as shown in Table 3.6. Table 3.6 Send Byte Protocol START CLIENT ADDRESS WR ACK REGISTER ADDRESS ACK STOP 1 -> 0 0101_000 0 0 XXh 0 0 -> 1 3.2.6 SMBus Receive Byte The Receive Byte protocol is used to read data from a register when the internal register address pointer is known to be at the right location (e.g. set via Send Byte). This is used for consecutive reads of the same register as shown in Table 3.7. Table 3.7 Receive Byte Protocol START CLIENT ADDRESS RD ACK REGISTER DATA NACK STOP 1 -> 0 0101_000 1 0 XXh 1 0 -> 1 Revision 1.65 (08-11-09) 18 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Chapter 4 Product Description The CAP1014 is a multiple channel Capacitive Touch sensor and LED Driver. The CAP1014 contains up to 14 individual Capacitive Touch sensor inputs with programmable sensitivity for use in touch button and slider switch applications. Each sensor also contains automatic recalibration. The CAP1014 also contains eleven (11) open drain LED drivers that offer full-on / off, variable rate breathing, and dimness controls. Eight (8) of these LEDs can double as GPIOs and support open-drain or push-pull operation. Capacitive buttons can be linked to LED outputs. Additionally, LEDs 1-7 may be optionally linked to Buttons 1-7 so that when a touch is detected, the LED is actuated. The device communicates with a host controller using SMBus. 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 press is detected on any sensor. Each sensor is polled by the device approximately every 35 ms. The host may also initiate a recalibratiion routine for one or more sensors or set up times and conditions so that the device automatically invokes the re-calibration routine. The CAP1014 contains multiple power states including several low power operating modes. In addition, it contains a user driven RESET pin to force the device to reset. A typical system diagram is shown in Figure 4.1. SMSC CAP1014 19 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet VDD Embedded Controller 3.3V Touch Button CS1 RESET SMCLK SMDATA 3.3V ALERT 3.3V 3.3V Dual Color LED LED11 LED8 LED1 3.3V 3.3V Touch Button Touch Button CS2 CS7 LED2 LED7 3.3V 3.3V Touch Button Touch Button CAP1014 CS3 CS6 LED3 LED6 3.3V 3.3V Touch Button Touch Button LED10 CS14 CS13 CS12 CS11 CS10 LED5 CS9 LED4 CS8 CS5 LED9 CS4 Slider 3.3V 3.3V Figure 4.1 System Diagram for CAP1014 Revision 1.65 (08-11-09) 20 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 4.1 Power States The CAP1014 has four operating states depending on the status of the SLEEP, DEACT, and DSLEEP bits (see Section 5.1). They are described below and summarized in Table 4.1. When the device transitions between power states, previously detected touches (for deactivated channels) are cleared and the status bits reset. 1. Fully Active - The device is fully active. It is monitoring all active Capacitive Sensor channels and driving all LED channels as defined. 2. Sleep - The device is in Sleep Mode. It is monitoring a limited number of Capacitive Sensor channels (default 0). Interrupts will still be generated based on the active channels. The device will still respond to SMBus commands normally and can be returned to the Fully Active mode by clearing the SLEEP bit. The LED11 channel is controlled via the PWR_LED control (see Section 5.1). All other LEDs will not be affected. 3. Deep Sleep - The device is in Deep Sleep mode. It is not monitoring any Capacitive Sensor channels or the SMBus. The LED11 channel is controlled via the PWR_LED control (see Section 5.1). All other LEDs will have PWM controls suspended so they should be disabled prior to entering this mode. If these LEDs are not disabled, then the system will show excess current draw from these LEDs. When the device leaves the Deep Sleep mode (by externally driving the ALERT pin to its active state), then it automatically returns to its defined state and clears the DSLEEP bit. When the device enters the Deep Sleep mode, it will release control to the ALERT pin and will change the direction of the ALERT pin (i.e. the device will monitor the ALERT pin instead of driving it). 4. Inactive - The device is inactive. It is not monitoring any Capacitive Sensor channels. The device will still respond to SMBus commands normally and can be returned to Fully Active Mode by clearing the DEACT bit. All LEDs will have PWM controls suspended so they should be disabled prior to entering this mode. If these LEDs are not disabled, then the system will show excess current draw from these LEDs. Table 4.1 Power Modes POWER MODE DEACT SLEEP DSLEEP Fully Active 0 0 0 Deep Sleep waking to Fully Active 0 0 1 Sleep 0 1 0 Deep Sleep waking to Sleep 0 1 1 Inactive 1 0 0 Deep Sleep waking to Inactive 1 0 1 Inactive 1 1 0 Deep Sleep waking to Inactive 1 1 1 The priority of power control signals is: 1. DSLEEP - when set will override DEACT, disable all LEDs except LED11 then disable SMBus communications. 2. DEACT - when set, will override the SLEEP controls. It will disable sensor measurement and all LEDs. 3. SLEEP - when set, will enable Sleep mode. SMSC CAP1014 21 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 4.2 RESET Pin The RESET pin is an active high reset that is driven from an external source. While it is asserted high, all the internal blocks will be held in reset including the SMBus. All configuration settings will be reset to default states and all readings will be cleared. Once the RESET pin is pulled low, the CAP1014 will begin operation as if a power-on-reset had occurred. 4.3 LED Drivers The CAP1014 contains eleven (11) LED Drivers. Each LED Driver is controlled independently of the others and may be linked to the corresponding Capacitive Touch Sensor inputs. In addition, LED drivers 1 - 8 can be configured to operate in one of the following modes with either push-pull or opendrain drive. LED drivers 9 - 11 will only operate in as an open-drain driver. 1. Direct - The LED is configured to be on or off when the corresponding button is pressed or not pressed. The dimness of both “on” states and “off” states can be programmed as well as the rising and falling ramp times and delay when the corresponding button is released 2. Breathe - The LED is configured to breathe. Over the course of the programmed cycle the LED will transition from the programmed minimum to the programmed maximum and then back off again. This mode operates independently of any stimuli or may be linked so that the LED breathes when the stimuli is asserted (or deasserted). This feature is commonly used for power LEDs when in standby mode. 3. Pulse - The LED is configured to breathe 5 times with a programmable rate and dimness controls. This mode is linked to a button press detection or release. LED11 operates differently than the other LED outputs in three ways. First, it is configured to drive up to two external LED channels simultaneously. Second, it is not disabled during the Sleep or Deep Sleep modes of operation (see Section 5.1) and allows for different behaviors when the device is in Fully Active Mode versus when the device is in Sleep or Deep Sleep mode. 4.3.1 Linking LEDs to Capacitive Touch Sensors LEDs 1 - 7 can be optionally linked to Capacitive Touch Sensors 1-7 so that when the sensor detects a button press, the corresponding LED will be actuated at one of the programmed responses. 4.4 Capacitive Touch Sensing The CAP1014 contains 14 independent Capacitive Touch Sensor inputs. Each sensor has dynamic range to detect a change of capacitance due to a touch. Additionally, each sensor can be configured to be automatically and routinely re-calibrated. 4.4.1 Multiple Button Presses If multiple sensor buttons (with a programmable threshold - see Section 5.23) are simultaneously detected, then only the first N buttons that are detected are flagged. All other buttons are ignored. Furthermore, the device remembers which buttons were legitimate so new touches are not detected so long as N buttons are pressed. Likewise, if too many (based on the programmed threshold - see Section 5.23) grouped sensor presses are detected, then the device will block all press detections on the grouped buttons and cancel any current presses as if the sensor had been released. 4.4.2 Lid Closure To detect lid closure or other similar events, lid closure sensor thresholds can be set. A Lid Closure Event can be flagged based on either a minimum number of sensors or on specific sensors Revision 1.65 (08-11-09) 22 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet simultaneously exceeding the lid closure threshold. An interrupt can also be generated. During a Lid Closure Event all touches are blocked. 4.4.3 Grouped Sensors Capacitive Touch Sensors 8 through 14 inclusive are automatically grouped as a single entity. Each sensor is sampled independently, however for purposes of activation, recalibration, and repeat rates, all of them are treated as one group. The Group also has different controls and allows for different behavior such as sliding, tapping, or press and hold. 4.4.4 Sensing Cycle Each Capacitive Touch Sensor has controls to be activated and included in the sensing cycle. When the device is active, it automatically initiates a sensing cycle and repeats the cycle every time it finishes. The cycle polls through each active Sensor starting with CS1 and extending through CS14. As each Capacitive Touch Sensor is polled, its measurement is compared against a baseline “not touched” measurement. If the delta measurement is large enough, then a touch is detected and an interrupt generated. 4.4.5 Recalibrating Sensors Each sensor is regularly recalibrated at an adjustable rate. By default, the recalibration routine stores the average 256 previous measurements and periodically updates the base “Not Touched” setting for the Capacitive Touch Sensor input. This routine is disabled automatically if a touch is detected so the touch does not factor into the base “Not Touched” setting. 4.5 Grouped Sensor Behavior The CAP1014 Grouped sensors function as a single entity that operates differently than the individual button sensors. This group functions as a slider and offers three different interface functions associated with it. 4.5.1 Tap If a touch on any Grouped sensor is detected and held for less than or equal to the M_PRESS bit settings (default 245ms), then a group press is detected, the TAP bit is set, and an interrupt is generated. Furthermore, the relative position on the slider is determined and the appropriate UP or DOWN status bits are set and the appropriate LED is actuated. No further action is taken. If a slide is subsequently detected, then the TAP status bit is cleared. 4.5.2 Press and Hold If a touch on any Grouped sensor is held for longer than the M_PRESS bit settings (default 245ms), then a Group Touch is detected and an interrupt is generated. Furthermore, the relative position on the slider is determined and the appropriate UP or DOWN status bits are set, the PH bit is set, and the appropriate LED is actuated. So long as the Grouped sensor is held, it will flag an interrupt at the programmed repeat rate (as determined by the RPT_RATE_PH bit settings) indefinitely. Once the touch has been removed, then the Group is returned to its normal operating condition. The M_PRESS setting is important to distinguish between Tap, Press & Hold and Sliding. If M_PRESS is set too low, a Press & Hold may be detected during a slow slide. This will cause user confusion as the Slide direction and LED may change. Longer M_PRESS settings will ensure that the 3 Group behaviors are reliably distinct and will add more delay prior to the Press & Hold repeat interrupt generation. SMSC CAP1014 23 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 4.5.3 Slider The Grouped sensors have the capability to detect a slide in either the “Up” or “Down” direction as referenced by the sensor numbers that are used. For example, an “Up” direction slide would be detected if CS8 detected a touch, followed by CS9, then by CS10 etc. Likewise, a “Down” direction slide would be detected if CS10 detected a touch, followed by CS9, then by CS8 etc. Slides in either direction are configured to flag an interrupt and to cause an LED to be actuated (separate for each direction). The Slide is detected independently of a Press and Hold or a Tap condition and only one condition may be present at any one time. So long as a slide is maintained in either direction, it will flag an interrupt at the programmed repeat rate (as determined by the RPT_RATE_SL bit settings). If the slide is removed or changes direction, then it will reset and return to normal operation. 4.5.4 Relative Position The CAP1014 has the option to indicate the relative position of a touch on the Grouped sensors. This value is stored either as a scaled number from 2 to 98 indicating where a tap, press and hold, or the end of a slide was detected or as a 8-bit number that represents volumetric data. When configured to store volumetric data, the user may write a base setting at any time that is modified based on Grouped sensor behavior (see Section 5.4). 4.5.5 Slider Velocity The repeat rate can be dynamically increased based on the speed of a slide. This permits slow sliding motions to have precise, step-by-step volume control and faster motions to generate increasingly fast volume changes. Two techniques are employed to make increase the number of interrupts generated based on speed. First, the slide speed is measured and the repeat rate is increased to provide more interrupts for the same distance traveled relative to a slower slide. Second, additional interrupts are generated immediately after the slide ends to further increase the change in volume. The number of additional interrupts is based on slide speed; both of these dynamic slider behaviors are controlled by the Slider Velocity Register. 4.6 ALERT Pin The ALERT pin is an active high output that is driven high when an interrupt event is detected. It is also used to wake the device from Deep Sleep mode. 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 cleared only if no press is detected. 4.6.1 Button Interrupt Behavior For non-grouped buttons, an interrupt is generated when a touch is detected. If the repeat rate is enabled (see Section 5.14), then, so long as the touch is held, another interrupt will be generated based on the programmed repeat rate (see Figure 4.2). An interrupt will be generated whenever a release is detected (see Figure 4.3). 4.6.2 Grouped Sensor Interrupt Behavior For grouped sensors, an interrupt is generated upon initial detection of a tap, slide, or press and hold event. Then, subsequent interrupts are generated as follows: 1. For a slide event, an interrupt is generated based on the programmed repeat rate as well as the velocity of the slide operation. See Figure 4.6 and Figure 4.7. Additionally, additional interrupts are Revision 1.65 (08-11-09) 24 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet generated after the slide has finished. These extra interrupts are generated every round robin cycle (~35ms) and the number is determined by the speed of the slide. 2. For a tap event there are no further interrupts. See Figure 4.4. 3. For a press and hold event, interrupts are generated based on the programmed repeat rate. If the repeat rate is disabled, then no further interrupts are generated. See Figure 4.5. 4.6.3 Wake from Deep Sleep This pin is also used to wake the device from the Deep Sleep power state if it is driven high from an external source. When the device enters the Deep Sleep power state, the ALERT pin output is put into a High Z mode. It requires a pull-down resistor to pull it to the inactive state. Furthermore, the CAP1014 will wait 5ms before it samples the ALERT pin for wake activity. Interrupt on Touch Touch Detected Polling Cycle (35ms) Button Repeat Rate (175ms) Button Repeat Rate (175ms) Button Repeat Rate (175ms) Interrupt on Release ALERT Pin / INT bit Button Status SMBus Write to INT bit Figure 4.2 Button Interrupt Behavior - Repeat Rate Enabled (default) Interrupt on Touch Polling Cycle (35ms) Interrupt on Release Touch Detected ALERT Pin / INT bit Button Status SMBus Write to INT bit Figure 4.3 Button Interrupt Behavior - No Repeat Rate Enabled SMSC CAP1014 25 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Polling Cycle (35ms) Released before M_PRESS Touch Detected M_PRESS Setting (280ms) ALERT Pin / INT bit Tap & UP / DOWN Status SMBus Write to INT bit Figure 4.4 Tap Interrupt Behavior Polling Cycle (35ms) Held longer than M_PRESS Setting Touch Detected ALERT Pin / INT bit Repeat Rate Repeat Rate (RPT_RATE_PH - 175ms) (RPT_RATE_PH - 175ms) M_PRESS Setting (280ms) PH Status UP / DOWN Status SMBus Write to INT bit Figure 4.5 Press and Hold Interrupt Behavior Revision 1.65 (08-11-09) 26 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Polling Cycle (35ms) Touch Detected – CS14 Touch Detected – CS13 Touch Detected CS12 UP DOWN Touch Detected CS11 Touch Detected – CS10 Touch Detected – CS9 Touch Detected – CS8 Repeat Rate (175ms) Repeat Rate (175ms) ALERT Pin / INT bit DOWN Status UP Status SMBus Write to INT bit Figure 4.6 Slide Interrupt Behavior - No Acceleration SMSC CAP1014 27 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Polling Cycle (35ms) Maximum Slide (768ms) Touch Detected – CS14 Touch Detected – CS13 Touch Detected CS12 Normal Slide – no change in repeat rate Touch Detected CS11 Touch Detected – CS10 Minor Acceleration Repeat Rate reduced 70ms Touch Detected – CS9 Slide Ended (525ms) = 0.68 x Max – Generate 2 extra interrupts at 35ms apart Major Acceleration Repeat Rate reduced 35ms Touch Detected – CS8 Repeat Rate (base = 140ms) 140ms 70ms 35ms ALERT Pin / INT bit SMBus Write to INT bit Figure 4.7 Slide Interrupt Behavior - Acceleration Example Revision 1.65 (08-11-09) 28 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Chapter 5 Register Description The registers shown in Table 5.1 are accessible through the SMBus. An entry of ‘-’ indicates that the bit is not used and will always read ‘0’. Table 5.1 Register Set in Hexadecimal Order REGISTER ADDRESS R/W REGISTER NAME FUNCTION DEFAULT VALUE PAGE 00h R/W Main Status Control Controls general sleep states and power dissipation 00h Page 34 03h R Button Status 1 Returns the state of the Cap Sensor group and buttons 1 - 6 and slider controls 00h Page 35 04h R Button Status 2 Returns the state of buttons 7 - 14 00h Page 35 05h R Build Revision Stores the functional revision of the device build 1Xh Page 36 06h R-C / R/W Slider Position / Volumetric Data Returns the relative position of a press on the slider or volumetric data 00h Page 37 08h R Vendor ID Stores a fixed value that Identifies SMSC 5Dh Page 38 09h R/W Volumetric Step Controls the step used for volumetric data increases for a slide 01h Page 38 0Ah R Noise Flag Status 1 Stores the noise flags for sensors 1-7 00h Page 39 0Bh R Noise Flag Status 2 Stores the noise flags for sensors 8 - 14 00h Page 39 0Ch R Lid Closure Status 1 Stores lid closure status bits for sensors 1 - 7 00h Page 39 0Dh R Lid Closure Status 2 Stores lid closure status bits for sensors 8 - 14 00h Page 39 0Eh R-C GPIO Status Stores the status of LED1 / GPIO1 through LED8 / GPIO8 pins 00h Page 40 0Fh R-C Group Status Returns the state of the Grouped sensors 00h Page 40 10h R Sensor 1 Delta Count Stores the delta count for CS1 00h Page 41 11h R Sensor 2 Delta Count Stores the delta count for CS2 00h Page 41 12h R Sensor 3 Delta Count Stores the delta count for CS3 00h Page 41 13h R Sensor 4 Delta Count Stores the delta count for CS4 00h Page 41 SMSC CAP1014 29 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.1 Register Set in Hexadecimal Order (continued) REGISTER ADDRESS R/W REGISTER NAME FUNCTION DEFAULT VALUE PAGE 14h R Sensor 5 Delta Count Stores the delta count for CS5 00h Page 41 15h R Sensor 6 Delta Count Stores the delta count for CS 6 00h Page 41 16h R Sensor 7 Delta Count Stores the delta count for CS7 00h Page 41 17h R Sensor 8 Delta Count Stores the delta count for CS8 00h Page 41 18h R Sensor 9 Delta Count Stores the delta count for CS9 00h Page 41 19h R Sensor 10 Delta Count Stores the delta count for CS10 00h Page 41 1Ah R Sensor 11 Delta Count Stores the delta count for CS11 00h Page 41 1Bh R Sensor 12 Delta Count Stores the delta count for CS12 00h Page 41 1Ch R Sensor 13 Delta Count Stores the delta count for CS13 00h Page 41 1Dh R Sensor 14 Delta Count Stores the delta count for CS14 00h Page 41 1Eh R/W Queue Control Controls how many samples must exceed touch threshold for Button press detections 03h Page 42 1Fh R/W Data Sensitivity Controls the sensitivity of the threshold and delta counts and data scaling of the base counts 2Fh Page 42 20h R/W Configuration Controls some recalibration and LED controls 2Dh Page 44 21h R/W Sensor Enable Controls whether the Capacitive Touch Sensor group and button inputs 1 - 7 are sampled FFh Page 45 22h R/W Button Configuration Controls reset delay and autorepeat delay for buttons A4h Page 46 23h R/W Group Configuration 1 Controls the detection dwell time before a press is detected within the group 47h Page 47 24h R/W Group Configuration 2 Controls reset delay and autorepeat delay for grouped sensors D4h Page 48 25h R/W Calibration Enable Controls automatic calibration for grouped sensors and sensors 1 - 7 FFh Page 48 26h R/W Calibration Activate Activates manual re-calibration for grouped sensors and sensors 1 - 7 00h Page 49 Revision 1.65 (08-11-09) 30 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.1 Register Set in Hexadecimal Order (continued) REGISTER ADDRESS R/W REGISTER NAME FUNCTION DEFAULT VALUE PAGE 27h R/W Interrupt Enable 1 Enables Interrupts associated with the grouped sensors and sensors 1-7 FFh Page 49 28h R/W Interrupt Enable 2 Enables Interrupts associated with GPIOS 1 - 8 00h Page 49 29h R/W Sleep Channel Control Determines the number and which channels are measured during Sleep Mode 00h Page 51 2Ah R/W Multiple Press Configuration Determines the number of simultaneous presses to flag a multiple press condition 82h Page 51 2Bh R/W Lid Closure Configuration Controls Lid Closure detection and operation 00h Page 52 2Ch R/W Lid Closure Queue Control Controls how many samples must exceed the lid closure threshold for Button and Slider operation 02h Page 53 2Dh R/W Lid Closure Pattern 1 Stores pattern bits for lid closure detection for channels 1 - 7 7Fh Page 53 2Eh R/W Lid Closure Pattern 2 Stores pattern bits for lid closure detection for channels 8 - 14 7Fh Page 53 2Fh R/W Recalibration Configuration Determines re-calibration timing and sampling window 93h Page 54 30h R/W Sensor 1 Threshold Stores the delta count threshold to determine a touch for Capacitive Touch Sensor 1 40h Page 55 31h R/W Sensor 2 Threshold Stores the delta count threshold to determine a touch for Capacitive Touch Sensor 2 40h Page 55 32h R/W Sensor 3 Threshold Stores the delta count threshold to determine a touch for Capacitive Touch Sensor 3 40h Page 55 33h R/W Sensor 4 Threshold Stores the delta count threshold to determine a touch for Capacitive Touch Sensor 4 40h Page 55 34h R/W Sensor 5 Threshold Stores the delta count threshold to determine a touch for Capacitive Touch Sensor 5 40h Page 55 35h R/W Sensor 6 Threshold Stores the delta count threshold to determine a touch for Capacitive Touch Sensor 6 40h Page 55 36h R/W Sensor 7 Threshold Stores the delta count threshold to determine a touch for Capacitive Touch Sensor 7 40h Page 55 37h R/W Group Threshold Stores the delta count threshold to determine a touch on any of the Grouped Sensors 40h Page 55 SMSC CAP1014 31 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.1 Register Set in Hexadecimal Order (continued) REGISTER ADDRESS DEFAULT VALUE PAGE Stores controls for selecting the noise threshold for buttons 1 - 4 55h Page 56 Button Noise Threshold 2 Stores controls for selecting the noise threshold for buttons 5 - 7 and the Grouped sensors 55h Page 56 R/W (unlock) Lid Closure Threshold 1 Stores controls for selecting the lid closure threshold for buttons 1 - 4 AAh Page 57 3Bh R/W (unlock) Lid Closure Threshold 2 Stores controls for selecting the lid closure threshold for buttons 5 - 8 AAh Page 57 3Ch R/W (unlock) Lid Closure Threshold 3 Stores controls for selecting the lid closure threshold for buttons 9 - 12 AAh Page 57 3Dh R/W (unlock) Lid Closure Threshold 4 Stores controls for selecting the lid closure threshold for buttons 13 14 0Ah Page 57 3Eh R/W Slider Velocity Configuration Determines speed parameters for the slider C5 Page 59 4Fh R/W Sampling Configuration Changes the sampling time for one or more input channels 00h Page 60 50h R Sensor 1 Base Count Stores the reference count value for sensor 1 00h Page 61 51h R Sensor 2 Base Count Stores the reference count value for sensor 2 00h Page 61 52h R Sensor 3 Base Count Stores the reference count value for sensor 3 00h Page 61 53h R Sensor 4 Base Count Stores the reference count value for sensor 4 00h Page 61 54h R Sensor 5 Base Count Stores the reference count value for sensor 5 00h Page 61 55h R Sensor 6 Base Count Stores the reference count value for sensor 6 00h Page 61 56h R Sensor 7 Base Count Stores the reference count value for sensor 7 00h Page 61 57h R Sensor 8 Base Count Stores the reference count value for sensor 8 00h Page 61 58h R Sensor 9 Base Count Stores the reference count value for sensor 9 00h Page 61 59h R Sensor 10 Base Count Stores the reference count value for sensor 10 00h Page 61 5Ah R Sensor 11 Base Count Stores the reference count value for sensor 11 00h Page 61 5Bh R Sensor 12 Base Count Stores the reference count value for sensor 12 00h Page 61 R/W REGISTER NAME FUNCTION 38h R/W (unlock) Button Noise Threshold 1 39h R/W (unlock) 3Ah Revision 1.65 (08-11-09) 32 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.1 Register Set in Hexadecimal Order (continued) REGISTER ADDRESS R/W REGISTER NAME FUNCTION DEFAULT VALUE PAGE 5Ch R Sensor 13 Base Count Stores the reference count value for sensor 13 00h Page 61 5Dh R Sensor 14 Base Count Stores the reference count value for sensor 14 00h Page 61 70h R/W LED / GPIO Direction Controls the direction for LED1/ GPIO1 through LED8 / GPIO8 00h Page 62 71h R/W LED / GPIO Output Type Controls the output type for LED1 / GPIO1 through LED8 / GPIO8 00h Page 62 72h R GPIO Input Stores the pin state of LED1 / GPIO1 through LED8 / GPIO8 00h Page 63 73h R/W LED Output Control 1 Controls the output state of the LED drivers 1 - 8 00h Page 63 74h R/W LED Output Control 2 Controls the output state of the LED drivers 9 - 11 00h Page 63 75h R/W LED Polarity 1 Controls the output polarity of LEDs 1 - 8 00h Page 64 76h R/W LED Polarity 2 Controls the output polarity of LEDs 9 - 11 00h Page 64 80h R/W Sensor LED Linking Controls linking of CS1 - CS7 to LED channels 00h Page 66 81h R/W LED Behavior 1 Controls the behavior and response of LEDs 1 - 4 00h Page 67 82h R/W LED Behavior 2 Controls the behavior and response of LEDs 5 - 8 00h Page 67 83h R/W LED Behavior 3 Controls the behavior and response of LEDs 9 - 11 00h Page 67 84h R/W LED Pulse 1 Period Controls the period of each breathe during a pulse 20h Page 69 85h R/W LED Pulse 2 Period Controls the period of breath and pulse release operation 14h Page 71 86h R/W LED Breathe Period Controls the period of an LED breathe operation 5Dh Page 72 88h R/W LED Pulse Config Controls the number of pulses for the Pulse 1 and Pulse 2 LED behaviors 24h Page 72 90h R/W LED Pulse 1 Duty Cycle Determines the min and max duty cycle for the pulse operation F0h Page 73 91h R/W LED Pulse 2 Duty Cycle Determines the min and max duty cycle for the breathe and pulse release operation F0h Page 73 92h R/W LED Breathe Duty Cycle Determines the min and max duty cycle for the breathe operation F0h Page 73 SMSC CAP1014 33 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.1 Register Set in Hexadecimal Order (continued) REGISTER ADDRESS R/W REGISTER NAME FUNCTION DEFAULT VALUE PAGE 93h R/W LED Direct Duty Cycle Determines the min and max duty cycle for Direct mode LED operation F0h Page 73 94h R/W LED Direct Ramp Rates Determines the rising and falling edge ramp rates of the LED 00h Page 74 95h R/W LED Off Delay Determines the off delay for all LED behaviors 00h Page 75 FDh R Product ID Stores a fixed value that identifies each product 2Dh Page 77 FFh R Revision Stores a fixed value that represents the revision number 81h Page 77 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. 5.1 Main Status Control Register Table 5.2 Main Status Control Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 00h R/W Main Status Control - DEACT SLEEP DSLEEP - - PWR_ LED INT 00h The Main Status and Control register controls the primary power state of the device. Bit 6 - DEACT - Deactivates all sensor scanning and LED activity. ‘0’ - (default) - Sensor scanning is active and LEDs are functional. ‘1’ - All sensor scanning is disabled and all linked LEDs are disabled (see Section 5.39). The only way to restart scanning is to clear this bit. The status registers are automatically cleared and the INT bit is cleared. Bit 5 - SLEEP - Enables Sleep mode by deactivating the LED activity. ‘0’ (default) - Sensor scanning is active and LEDs are functional. ‘1’ - All LEDs are disabled (except LED11) and the Capacitive Touch Sensor scanning is limited to the sensors set in the Sleep Channel Control register (see Section 5.22). The status registers will not be cleared. Bit 4 - DSLEEP - Enables the Deep Sleep mode by deactivating all functions. ‘0’ (default) - Sensor scanning is active and LEDs are functional. ‘1’ - All sensor scanning is disabled and all LEDs are disabled (except LED11). The device will return to its previous power state when the ALERT pin is driven to its active level (see Section 4.1). The status registers are automatically cleared and the INT bit is cleared. Bit 1 - PWR_LED - Controls the output of LED11 based on the state of bits 5 and 4. ‘0’ (default) - The LED11 output is in the “inactive” or off state. Revision 1.65 (08-11-09) 34 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet ‘1’ - The LED11 output is active in one of the following conditions: a.Both bits 4 and 5 are set to a logic ‘0’ (normal mode). The LED will behave as defined the the LED11_CTL bits (see Section 5.40). b.Either bit 4 or bit 5 are set to a logic ‘1’ (sleep mode). The LED will behave as defined by the LED11_ALT bits (see Section 5.40). 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 press 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. 5.2 ‘0’ - No interrupt pending. ‘1’ - A button press has been detected on one or more channels and the interrupt has been asserted. Button Status Registers Table 5.3 Button Status Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 03h R Button Status 1 UP DOWN CS6 CS5 CS4 CS3 CS2 CS1 00h 04h R Button Status 2 CS14 CS13 CS12 CS11 CS10 CS9 CS8 CS7 00h The Button Status Registers store status bits that indicate a button press has been detected. A value of ‘0’ in any bit indicates that no button press has been detected. A value of ‘1’ in any bit indicates that a button press has been detected. All status bits are cleared when the device enters the Deep Sleep or Inactive states (DSLEEP = ‘1’ or DEACT = ‘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.14) APPLICATION NOTE: When the Button Status 1 Register is read, the Group Status register will be automatically cleared. Therefore, the Group Status register should be read prior to reading the Button Status Registers 5.2.1 Button Status 1 Bit 7 - UP - Indicates that a slide was detected on increasing sensors (i.e. Sensor 8 -> Sensor 9 -> Sensor 10). This bit is also set if a press is detected on the “Up” portion of the slider. If the Group auto-repeat is enabled, then the ALERT pin will be periodically asserted while a slide or press and hold event is still detected. This bit is sticky and will remain set until cleared. Once cleared, it will be re-set when another interrupt is generated in the “UP” direction. This bit is automatically cleared if the DOWN bit is set. Bit 6 - DOWN - Indicates that a slide was detected on decreasing sensors (i.e. Sensor 14 -> Sensor 13-> Sensor 12). This bit is also set if a press is detected on the “Down” portion of the slider. If the Group auto-repeat is enabled, then the ALERT pin will be periodically asserted while a slide or press and hold event is still detected. This bit is sticky and will remain set until cleared. Once cleared, it will be re-set when another interrupt is generated in the “DOWN” direction. This bit is automatically cleared if the UP bit is set. SMSC CAP1014 35 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Bit 5 - CS6 - Indicates that a press was detected on Sensor 6. This sensor can be linked to LED6. ‘0’ - A touch was not detected on the corresponding button. ‘1’ - A touch was detected on the corresponding button. Bit 4 - CS5 - Indicates that a press was detected on Sensor 5. This sensor can be linked to LED5. Bit 3 - CS4 - Indicates that a press was detected on Sensor 4. This sensor can be linked to LED4. Bit 2 - CS3 - Indicates that a press was detected on Sensor 3. This sensor can be linked to LED3 Bit 1 - CS2 - Indicates that a press was detected on Sensor 2. This sensor can be linked to LED2. Bit 0 - CS1 - Indicates that a press was detected on Sensor 1. This sensor can be linked to LED1. 5.2.2 Button Status 2 Bit 7 - CS14 - Indicates that press was detected on Sensor 14. This sensor is part of the group which can be linked to LED9 and LED10. Bit 6 - CS13 - Indicates that press was detected on Sensor 13. This sensor is part of the group which can be linked to LED9 and LED10. Bit 5 - CS12 - Indicates that press was detected on Sensor 12. This sensor is part of the group which can be linked to LED9 and LED10. Bit 4 - CS11 - Indicates that press was detected on Sensor 11. This sensor is part of the group which can be linked to LED9 and LED10. Bit 3 - CS10 - Indicates that press was detected on Sensor 10. This sensor is part of the group which can be linked to LED9 and LED10. Bit 2 - CS9 - Indicates that press was detected on Sensor 9. This sensor is part of the group which can be linked to LED9 and LED10. Bit 1 - CS8 - Indicates that press was detected on Sensor 8. This sensor is part of the group which can be linked to LED9 and LED10. Bit 0 - CS7 - Indicates that a press was detected on Sensor 7. This sensor can be linked to LED7. 5.3 Build Revision Register Table 5.4 Firmware Revision Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 05h R CAP1014-1 Build Revision 0 0 0 1 0 0 0 1 11h 05h R CAP1014-2 Build Revision 0 0 0 1 0 0 1 0 12h The Build Revision register indicates hardware defined settings that are used. Revision 1.65 (08-11-09) 36 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.5 Build History BUILD DEVICE REASON FOR CHANGE 10h CAP1014 Initial Development 11h CAP1014-1 Activated Lid Closure circuitry 12h CAP1014-2 Activated Lid Closure circuitry and changed SMBus address to 0101_100b 5.4 Slider Position / Volumetric Data Register Table 5.6 Slider Position / Volumetric Data Register ADDR R/W REGISTER B7 06h R-C / R/W Slider Position / Volumetric Data - B6 B5 B4 B3 POS[6:0] B2 B1 B0 DEFAULT 00h The Slider Position register indicates the absolute position of a Tap, Slide, or Press and Hold event detected on the Grouped sensors (slider). Alternately, the register stores volumetric data that increases or decreased based on detected operations on the Grouped sensors (slider). Bits 6-0 - POS[6:0] - Indicate absolute position or volumetric data as determined by the POS_VOL bit (see Section 5.14). 5.4.1 Absolute Position The absolute position of a single touch is available from this register. By interpolating information from up to 3 adjacent buttons, 16 different positions are calculated by the CAP1014 from the center of one button to the center of each adjacent button. The bits will encode a range from 2 to 98 indicative of where the touch occurred. Table 5.7 shows an example of the settings assuming a single button is pressed. If a slide is detected on the Grouped sensors, then the POS[6:0] bits will indicate the most recently touched sensor (i.e. where the slide ended) however will not indicate where the slide originated. APPLICATION NOTE: The register will be cleared to a value of 00h when it is read. It will be set to a valid position when the next ALERT is generated. It will be updated at the respective repeat rate for a slide or press and hold event regardless of whether it has been read or not. Therefore, it will only show the position of the last touch detected at the time of the interrupt. Table 5.7 Example Slider Absolute Position Decode SMSC CAP1014 TOUCH POSITION POS[6:0] SETTINGS CS8 02h (2d) CS9 12h (18d) CS10 22h (34d) CS11 32h (50d) 37 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.7 Example Slider Absolute Position Decode (continued) 5.4.2 TOUCH POSITION POS[6:0] SETTINGS CS12 42h (68d) CS13 52h (82d) CS14 62h (98d) Volumetric Data If they are setup to present Volumetric Data (see Section 5.14) then the bits will encode a range from 0 to 100. This value is updated based on the Grouped sensor activity: A slide in the “UP” direction will increase the volumetric data by the Volumetric Step setting (see Section 5.6) whenever an interrupt is generated (including extra interrupts generated after the slide is complete). A slide in the “DOWN” direction will decrease the volumetric data by the Volumetric Step setting (see Section 5.6) whenever an interrupt is generated (including extra interrupts generated after the slide is complete) A tap (see Section 4.5.1) on the “UP” side will increase the volumetric data by a value of 1. A tap on the “DOWN” side will decrease the volumetric data by a value of 1. A press and hold (see Section 4.5.2) on the “UP” side will increase the volumetric data by a value of 1 at every repeat rate interval. A press and hold (see Section 4.5.2) on the “DOWN” side will decrease the volumetric data by a value of 1 at every repeat rate interval. The bits are read / write. 5.5 Vendor ID Register Table 5.8 Vendor ID Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 08h R Vendor ID 0 1 0 1 1 1 0 1 5Dh B2 B1 B0 DEFAULT The Vendor ID register stores an 8-bit value that represents SMSC. 5.6 Volumetric Step Register Table 5.9 Volumetric Step Register ADDR R/W REGISTER B7 B6 B5 B4 09h R/W Volumetric Step - - - - B3 VOL_STEP[3:0] 01h The Volumetric Step register controls the size of a step to the volumetric data when a slide is detected in the UP and DOWN directions. Bits 3 - 0 - VOL_STEP[3:0] - Determines the volumetric data step when a slide is detected. Each LSB corresponds to a value of ±1. Revision 1.65 (08-11-09) 38 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.7 Noise Flag Status Registers Table 5.10 Noise Flag Status Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 0Ah R Noise Flag Status 1 - S7_ NOISE S6_ NOISE S5_ NOISE S4_ NOISE S3_ NOISE S2_ NOISE S1_ NOISE 00h 0Bh R Noise Flag Status 2 - S14_ NOISE S13_ NOISE S12_ NOISE S11_ NOISE S10_ NOISE S9_ NOISE S8_ NOISE 00h 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. The queues are not updated, 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. 5.8 Lid Closure Status Registers Table 5.11 Lid Closure Status Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 0Ch R Lid Closure Status 1 - S7_ LID S6_ LID S5_ LID S4_ LID S3_ LID S2_ LID S1_ LID 00h 0Dh R Lid Closure Status 2 - S14_ LID S13_ LID S12_ LID S11_ LID S10_ LID S9_ LID S8_ LID 00h The Lid Closure Status registers bits are only set if the lid closure detection circuitry is enabled (see Section 5.24, "Lid Closure Configuration Register"). These status bits indicate that the corresponding Capacitive Touch Sensor exceeded the Lid Closure threshold. These bits will be set if a button press is detected, because the Lid Closure threshold is a percentage of the Sensor Threshold. These bits are used in combination with the Lid Closure Pattern register settings to determine when a Lid Closure Event is flagged (see Section 5.26, "Lid Closure Pattern Registers"). These bits are not sticky and will be cleared automatically when the corresponding sensor count drops below the lid closure count threshold. The device does not flag a sensor as above or below the threshold until it has cycled through the queue (see Section 5.25, "Lid Closure Queue Control Register"). APPLICATION NOTE: It is likely that recalibration will occur while the lid is closed, resulting in negative delta counts until recalibration takes place. SMSC CAP1014 39 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.9 GPIO Status Register Table 5.12 GPIO Status Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 0Eh R-C GPIO Status GPIO8_ STS GPIO7_ STS GPIO6_ STS GPIO5_ STS GPIO4_ STS GPIO3_ STS GPIO2_ STS GPIO1_ STS 00h The GPIO Status register bits are set whenever one of the GPIO inputs changes states. If the LEDx / GPIOx pin is not configured as a GPIO or as an input, then the respective bit will be set to a logic ‘0’. The bits are cleared when the register is read. 5.10 Group Status Register Table 5.13 GPIO Status Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 0Fh R-C Group Status LID MULT - - UP DOWN TAP PH 00h The Group Status register indicates that one or more actions was detected on the Grouped sensors. The detectable actions are described in Section 4.5. Bit 7 - LID - Indicates that a Lid Closure Event has been detected. This bit is sticky. When it is set, it will remain set until read. When a Lid Closure Event is detected, all new touches will be blocked. Bit 6 - MULT - This bit is asserted if one or more touches are being blocked because greater than N buttons are simultaneously pressed. Bit 3 - UP - Indicates that a slide was detected on increasing sensors (i.e. Sensor 1 -> Sensor 2 -> Sensor 3). This bit is also set if a touch (tap or press and hold event) is detected on the “Up” portion of the slider. If the Group auto-repeat is enabled, then the ALERT pin will be periodically asserted while a slide or press and hold event is detected. This bit will be cleared when read and re-set when another interrupt is generated. This bit is cleared automatically if the DOWN bit is set. Bit 2 - DOWN - Indicates that a slide was detected on decreasing sensors (i.e. Sensor 6 -> Sensor 5 -> Sensor 4). This bit is also set if a touch (tap or press and hold event) is detected on the “Down” portion of the slider. If the Group auto-repeat is enabled, then the ALERT pin will be periodically asserted while a slide or press and hold event is detected. This bit will be cleared when read and reset when another interrupt is generated. This bit is automatically cleared if the UP bit is set. Bit 1 - TAP - Indicates that a tap was detected on one of the sensors within the Group. The relative position of the tap is indicated by the UP and DOWN bits so that a tap on the “UP” side of the group will assert the UP bit as well as the TAP bit. If the tap event is detected in the “center” of the slider that is neither “UP” nor “DOWN” then the bit will be set however no interrupt will be generated. This bit is sticky and will remain set until read. Bit 0 - PH - Indicates that a press and hold event was detected on one of the sensors within the Group. the relative position of the press is indicated by the UP and DOWN bits so a touch and hold on the “UP” side of the group will assert the UP bit as well as the PH bit. If the press and hold event is detected in the “center” of the slider that is neither “UP” nor “DOWN” then the bit will be set however no interrupt will be generated. This bit is sticky and will remain set until read. If the condition is still present, then this bit will be re-set when the interrupt is generated. Revision 1.65 (08-11-09) 40 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.11 Sensor Delta Count Registers Table 5.14 Sensor Delta Count Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 10h R Sensor 1 Delta Count Sign 64 32 16 8 4 2 1 00h 11h R Sensor 2 Delta Count Sign 64 32 16 8 4 2 1 00h 12h R Sensor 3 Delta Count Sign 64 32 16 8 4 2 1 00h 13h R Sensor 4 Delta Count Sign 64 32 16 8 4 2 1 00h 14h R Sensor 5 Delta Count Sign 64 32 16 8 4 2 1 00h 15h R Sensor 6 Delta Count Sign 64 32 16 8 4 2 1 00h 16h R Sensor 7 Delta Count Sign 64 32 16 8 4 2 1 00h 17h R Sensor 8 Delta Count Sign 64 32 16 8 4 2 1 00h 18h R Sensor 9 Delta Count Sign 64 32 16 8 4 2 1 00h 19h R Sensor 10 Delta Count Sign 64 32 16 8 4 2 1 00h 1Ah R Sensor 11 Delta Count Sign 64 32 16 8 4 2 1 00h 1Bh R Sensor 12 Delta Count Sign 64 32 16 8 4 2 1 00h 1Ch R Sensor 13 Delta Count Sign 64 32 16 8 4 2 1 00h 1Dh R Sensor 14 Delta Count Sign 64 32 16 8 4 2 1 00h 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 touched” count value. The delta is an instantaneous change and is updated once per sensor per sensing cycle (see Section 4.4.4 - 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.13). The value is also capped at a negative value of FFh for negative delta counts which may result upon a release. SMSC CAP1014 41 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.12 Queue Control Register Table 5.15 Queue Control Register ADDR R/W REGISTER B7 B6 B5 B4 B3 1Eh R/W Button Queue Control - - - - - B2 B1 B0 QUEUE_B[2:0] DEFAULT 03h The Queue Control register determines the number of consecutive samples for which a single sensor output is above the Sensor Threshold before a touch is detected. This is also used to determine the number of consecutive samples used to detect a button release. The queue applies independently to all channels. Bits 2 - 0 - QUEUE_B[2:0] - The number of consecutive samples necessary to detect a touch. Default is 3 consecutive samples. See Table 5.16. Table 5.16 QUEUE_B Bit Decode QUEUE_B[3:0] 5.13 2 1 0 NUMBER OF CONSECUTIVE READINGS > THRESHOLD 0 0 0 1 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 Data Sensitivity Register Table 5.17 Data Scaling Register ADDR R/W REGISTER B7 1Fh R/W Data Sensitivity - B6 B5 B4 D_DSP[2:0] B3 B2 B1 C_DSP[3:0] B0 DEFAULT 2Fh The Data Sensitivity register controls the sensitivity of a touch detection. Bits 6- 4 D_DSP[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 0000b is the most sensitive while a setting of 1111b 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. Revision 1.65 (08-11-09) 42 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet APPLICATION NOTE: A value of 128x is the most sensitive setting available. At the most sensitive 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). Table 5.18 D_DSP Bit Decode D_DSP[2:0] 2 1 0 SENSITIVITY MULTIPLIER 0 0 0 128x (most sensitive) 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 - C_DSP[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 presented. The scale factor represents the multiplier to the bit-weighting presented in these register descriptions. APPLICATION NOTE: The C_DSP[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. Table 5.19 C_DSP Bit Decode C_DSP[3:0] 3 2 1 0 DATA SCALING 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 SMSC CAP1014 43 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.19 C_DSP Bit Decode (continued) C_DSP[3:0] 3 2 1 0 DATA SCALING FACTOR 1 0 0 0 256x 256x (default = 1111b) All others 5.14 Configuration Register Table 5.20 Configuration Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 20h R/W Configuration TIME OUT POS_ VOL BLK NOISE_ TH BLK_ NOISE_ DIS MAX_ DUR_ EN_B RPT_ EN_B MAX_ DUR_ EN_G RPT_ EN_G 2Dh 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. Bit 6 - POS_VOL - Determines the behavior of the POS[6:0] status bits when a Grouped sensor is activated - see Section 5.4. ‘0’ (default) - The POS[6:0] bits represent position information that indicates which sensor was touched or the last sensor touched during a slide. ‘1’ - The POS[6:0] bits represent volumetric data. The Position / Volumetric Data register is read / write. Bit 5 - BLK_DIG_NOISE - Determines whether the noise threshold is checked when determining whether to discard samples. ‘0’ - The noise threshold is enabled and checked. If a sample is above the noise threshold, it is not included in the re-calibration routine. ‘1’ (default) - The noise threshold is disabled. No samples are excluded from the re-calibration routine. Bit 4 - BLK_ANA_NOISE - Determines whether the 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_B - Determines whether the maximum duration recalibration is enabled for nongrouped sensors. Revision 1.65 (08-11-09) 44 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet ‘0’ - The maximum duration recalibration functionality is disabled. A press may be held indefinitely and no re-calibration will be performed on any button. ‘1’ (default) - The maximum duration recalibration functionality is enabled. If a press is held for longer than the MAX_DUR_B bit settings, then the re-calibration routine will be restarted (see Section 5.16). APPLICATION NOTE: If the RPT_EN_B bit is updated while a touch is present on a button, then no changes will be made to the interrupts until that button has been released. Bit 2 - RPT_EN_B - Determines the interrupt mechanism used when a press is detected on a nongrouped sensor (button) ‘0’ - An interrupt will be generated when a touch is detected and again when a release is detected. ‘1’ (default) - An interrupt will be generated when a touch is detected and at the programmed repeat rate so long as the button is pressed. Bit 1 - MAX_DUR_EN_G - Determines whether the maximum duration recalibration is enabled for grouped sensors. ‘0’ (default) - The maximum duration recalibration functionality is disabled. A press may be held indefinitely and no re-calibration will be performed on any button. ‘1’ - The maximum duration recalibration functionality is enabled. If a press is held for longer than the MAX_DUR_G bit settings, then the re-calibration routine will be restarted (see Section 5.18). Bit 0 - RPT_EN_G - Determines the interrupt mechanism used when a Press and Hold event is detected on a grouped sensor 5.15 ‘0’ (default) - An interrupt will be generated when a Press and Hold event is detected. ‘1’ - An interrupt will be generated when a Press and Hold event is detected and at the programmed repeat rate so long as the sensor is pressed. Sensor Enable Registers Table 5.21 Sensor Enable Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 21h R/W Sensor Enable G_EN S7_EN S6_EN S5_EN S4_EN S3_EN S2_EN S1_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 - G_EN - Enables all Capacitive Touch Sensors that are grouped to be included during the sampling cycle. ‘0’ - None of the The grouped sensors are included in the sampling cycle. ‘1’ (default) - All of the grouped sensors are included in the sampling cycle. Bit 6 - S7_EN - Enables the CS7 input to be included during the sampling cycle. ‘0’ - The CS7 input is not included in the sampling cycle. ‘1’ - The CS7 input is included in the sampling cycle. Bit 5 - S6_EN - Enables the CS6 input to be included during the sampling cycle. Bit 4 - S5_EN - Enables the CS5 input to be included during the sampling cycle. Bit 3 - S4_EN - Enables the CS4 input to be included during the sampling cycle. Bit 2 - S3_EN - Enables the CS3 input to be included during the sampling cycle. SMSC CAP1014 45 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Bit 1 - S2_EN - Enables the CS2 input to be included during the sampling cycle. Bit 0 - S1_EN - Enables the CS1 input to be included during the sampling cycle. 5.16 Button Configuration Register Table 5.22 Button Configuration Register ADDR R/W REGISTER 22h R/W Button Configuration B7 B6 B5 B4 B3 MAX_DUR_B[3:0] B2 B1 B0 RPT_RATE_B[3:0] DEFAULT A4h The Button Configuration Register controls timings associated with the Capacitive Sensor channels 1 - 7 that are not Grouped. Bits 7 - 4 - MAX_DUR_B [3:0] - (default 1010b) - Determines the maximum time that a button is allowed to be pressed until the Capacitive Touch sensor is recalibrated as shown in Table 5.23. Table 5.23 MAX_DUR_B and MAX_DUR_G Bit Decode MAX_DUR_B[3:0] AND MAX_DUR_G[3:0] 3 2 1 0 TIME BEFORE RECALIBRATION 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_B[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.24. Revision 1.65 (08-11-09) 46 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.24 RPT_RATE_B / SL / PH and M_PRESS Bit Decode RPT_RATE_B / RPT_RATE_SL / RPT_RATE_PH / M_PRESS[3:0] 3 2 1 0 INTERRUPT REPEAT RATE 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 5.17 Group Configuration Register 1 Table 5.25 Group Configuration Register 1 ADDR R/W REGISTER 23h R/W Group Configuration 1 B7 B6 B5 B4 RPT_RATE_PH[3:0] B3 B2 B1 M_PRESS[3:0] B0 DEFAULT 47h Bits 7-4 - RPT_RATE_PH[3:0] - (default 0100b) Determines the time duration between interrupt assertions when auto repeat is enabled. This setting applies when a press and hold condition is detected on the on the Grouped Sensors (see Section 4.5.2). The resolution is 35ms the range is from 35ms to 560ms as shown in Table 5.24. Bits 3- 0 - M_PRESS[3:0] - (default 0111b) - Determines the minimum amount of time that a sensor in the Group must detect a button press 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 has no affect on whether a slide is detected within the group. If a slide is detected before or after the press has been confirmed, it is treated as a separate event. SMSC CAP1014 47 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet This is the maximum amount of time that a sensor in the Group can detect a button press to differentiate between a tap 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 Tap event is detected. The resolution is 35ms the range is from 35ms to 560ms as shown in Table 5.24. 5.18 Group Configuration Register 2 Table 5.26 Group Configuration Register 2 ADDR R/W REGISTER 24h R/W Group Configuration 2 B7 B6 B5 B4 B3 MAX_DUR_G[3:0] B2 B1 B0 DEFAULT RPT_RATE_SL[3:0] D4h The Group Configuration 2 register controls timings associated with the Capacitive Sensor channels 8 - 14 that are included in the group. Bits 7 - 4 - MAX_DUR_G [3:0] - (default 1101b) - Determines the maximum time that a button is allowed to be pressed until the Capacitive Touch sensor is recalibrated as shown in Table 5.23. Bits 3 - 0 - RPT_RATE_SL[3:0] - (default 0100b) Determines the time duration between interrupt assertions when auto repeat is enabled. This setting applies when a slide is detected on the Grouped Sensors and acts as the base repeat rate that is adjusted based on the slide speed (see Section 4.5.3). The resolution is 35ms the range is from 35ms to 560ms as shown in Table 5.24. 5.19 Calibration Enable Registers Table 5.27 Calibration Enable Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 25h R/W Calibration Enable G_ CEN S7_ CEN S6_ CEN S5_ CEN S4_ CEn S3_ CEN S2_ CEN S1_ CEN FFh The Calibration Enable registers control whether the indicated Capacitive Touch Sensor input is automatically re-calibrated. If a sensor is not enabled then the corresponding calibration enable bit is ignored. Bit 7- G_CEN - Enables all sensors in the group to be re-calibrated simultaneously. ‘0’ - None of the grouped channels are automatically re-calibrated. They can be re-calibrated manually by setting the G_CAL bit. ‘1’ (default) - All of the grouped channels are automatically re-calibrated as the CAP1014 samples. Bit 6 - S7_CEN - Enables the CS7 input to be re-calibrated automatically. ‘0’ - The CS7 input is not automatically re-calibrated. ‘1’ (default) - The CS7 input is automatically re-calibrated as the CAP1014 samples. Bit 5 - S6_CEN - Enables the CS6 input to be re-calibrated automatically. Bit 4 - S5_CEN - Enables the CS5 input to be re-calibrated automatically. Bit 3 - S4_CEN - Enables the CS4 input to be re-calibrated automatically. Bit 2 - S3_CEN - Enables the CS3 input to be re-calibrated automatically. Revision 1.65 (08-11-09) 48 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Bit 1 - S2_CEN - Enables the CS2 input to be re-calibrated automatically. Bit 0 - S1_CEN - Enables the CS1 input to be re-calibrated automatically. 5.20 Calibration Activate Registers Table 5.28 Calibration Activate Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 26h R/W Calibration Activate G_ CAL S7_ CAL S6_ CAL S5_ CAL S4_ CAL S3_ CAL S2_ CAL S1_ CAL 00h 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 - G_CAL - When set, all sensors in the group are re-calibrated. This bit is automatically cleared once all of the sensors in the group have been re-calibrated successfully. Bit 6 - S7_CAL - When set, the CS7 input is re-calibrated. This bit is automatically cleared once the sensor has been re-calibrated successfully. Bit 5 - S6_CAL - When set, the CS6 input is re-calibrated. This bit is automatically cleared once the sensor has been re-calibrated successfully. Bit 4 - S5_CAL - When set, the CS5 input is re-calibrated. This bit is automatically cleared once the sensor has been re-calibrated successfully. Bit 3 - S4_CAL - When set, the CS4 input is re-calibrated. This bit is automatically cleared once the sensor has been re-calibrated successfully. Bit 2 - S3_CAL - When set, the CS3 input is re-calibrated. This bit is automatically cleared once the sensor has been re-calibrated successfully. Bit 1 - S2_CAL - When set, the CS2 input is re-calibrated. This bit is automatically cleared once the sensor has been re-calibrated successfully. Bit 0 - S1_CAL - When set, the CS1 input is re-calibrated. This bit is automatically cleared once the sensor has been re-calibrated successfully. 5.21 Interrupt Enable Registers Table 5.29 Interrupt Enable Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 27h R/W Interrupt Enable 1 G_INT_ EN S7_INT_ EN S6_INT_ EN S5_INT_ EN S4_INT_ EN S3_INT_ EN S2_INT _EN S1_INT_ EN FFh 28h R/W Interrupt Enable 2 GPIO8_ INT_EN GPIO7_ INT_EN GPIO6_ INT_EN GPIO5_ INT_EN GPIO4_ INT_EN GPIO3_ INT_EN GPIO2_ INT_EN GPIO1_ INT_EN 00h The Interrupt Enable registers determine whether a button press or GPIO input changing state causes the interrupt pin to be asserted. SMSC CAP1014 49 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.21.1 Interrupt Enable 1 Bit 7 - G_INT_EN - Enables the interrupt pin to be asserted if a slide, tap, or press and hold action is detected on the grouped sensors. ‘0’ - The interrupt pin will not be asserted if a slide, tap, or press and hold action is detected on the grouped sensors (associated with the UP, DOWN, TAP, and PH status bits). ‘1’ (default) - The interrupt pin will asserted if a slide, tap, or press and hold event is detected on the grouped sensors (associated with the UP, DOWN, TAP, and PH status bits). Bit 6 - S7_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS7 (associated with the CS7 status bit). ‘0’ - The interrupt pin will not be asserted if a touch is detected on CS7 (associated with the CS7 status bit). ‘1’ (default) - The interrupt pin will be asserted is detected on CS7 (associated with the CS7 status bit). Bit 5 - S6_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS6 (associated with the CS6 status bit). Bit 4 - S5_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS5 (associated with the CS5 status bit). Bit 3 - S4_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS4 (associated with the CS4 status bit). Bit 2 - S3_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS3 (associated with the CS3 status bit). Bit 1 - S2_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS2 (associated with the CS2 status bit). Bit 0 - S1_INT_EN - Enables the interrupt pin to be asserted if a touch is detected on CS1 (associated with the CS1 status bit). 5.21.2 Interrupt Enable 2 These bits enable the interrupt pin to be asserted when the GPIOx status bit has been set. Bit 7 - GPIO8_INT_EN - Enables the interrupt pin to be asserted if the GPIO8 status bit has been set. ‘0’ - The interrupt pin will not be asserted if the GPIO8 status bit has been set. ‘1’ (default) - The interrupt pin will be asserted if the GPIO8 status bit has been set. Bit 6 - GPIO7_INT_EN - Enables the interrupt pin to be asserted if the GPIO7 status bit has been set. Bit 5 - GPIO6_INT_EN - Enables the interrupt pin to be asserted if the GPIO6 status bit has been set. Bit 4 - GPIO5_INT_EN - Enables the interrupt pin to be asserted if the GPIO5 status bit has been set. Bit 3 - GPIO4_INT_EN - Enables the interrupt pin to be asserted if the GPIO4 status bit has been set. Bit 2 - GPIO3_INT_EN - Enables the interrupt pin to be asserted if the GPIO3 status bit has been set. Bit 1 - GPIO2_INT_EN - Enables the interrupt pin to be asserted if the GPIO2 status bit has been set. Bit 0 - GPIO1_INT_EN - Enables the interrupt pin to be asserted if the GPIO1 status bit has been set. Revision 1.65 (08-11-09) 50 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.22 Sleep Channel Control Register Table 5.30 Sleep Channel Control ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 29h R/W Sleep Channel Control GR_ SLEEP S7_ SLEEP S6_ SLEEP S5_ SLEEP S4_ SLEEP S3_ SLEEP S2_ SLEEP S1_ SLEEP 00h The Sleep Channel control register determine which sensors are sampled when the device is placed into sleep mode. APPLICATION NOTE: If this register is updated while the device is in Sleep Mode, then the conversion cycle may be extended or for the first measurement of the new Capacitive Touch Sensors. It will correct itself on subsequent measurement cycles. APPLICATION NOTE: If this register is updated while the device is in Sleep Mode, it is recommended that force a recalibration routine on newly activated channels. Bit 7 - GR_SLEEP - Enables the Grouped sensors to be sampled when the device is placed into sleep mode. ‘0’ (default) - The Grouped Sensors are not sampled when the device is in Sleep mode ‘1’ - The Grouped Sensors are sampled when the device is in Sleep mode. If a tap, slide, or touch and hold is detected then the appropriate status bit is set and an interrupt generated. Bit 6 - S7_SLEEP - Enables the CS7 sensor to be sampled when the device is placed into sleep mode. ‘0’ (default) - The CS7 input is not sampled when the device is in Sleep mode ‘1’ - The CS7 input is sampled when the device is in Sleep mode. If a touch is detected then the status bit is set and an interrupt generated. Bit 5 - S6_SLEEP - Enables the CS6 sensor to be sampled when the device is placed into sleep mode. Bit 4 - S5_SLEEP - Enables the CS5 sensor to be sampled when the device is placed into sleep mode. Bit 3 - S4_SLEEP - Enables the CS4 sensor to be sampled when the device is placed into sleep mode. Bit 2 - S3_SLEEP - Enables the CS3 sensor to be sampled when the device is placed into sleep mode. Bit 1 - S2_SLEEP - Enables the CS2 sensor to be sampled when the device is placed into sleep mode. Bit 0 - S1_SLEEP - Enables the CS1 sensor to be sampled when the device is placed into sleep mode. 5.23 Multiple Touch Configuration Register Table 5.31 Multiple Touch Configuration ADDR R/W REGISTER B7 B6 B5 B4 2Ah R/W Multiple Touch Config MULT_ BLK_ EN - - - B3 B2 B_MULT_T[1:0] B1 B0 G_MULT_T[1:0] DEFAULT 82h The Multiple Touch Configuration register controls the settings for the multiple touch detection circuitry. These settings determine the sensitivity of this detection and the CAP1014 device behavior. Bit 7 - MULT_BLK_EN - Enables the multiple button blocking circuitry. SMSC CAP1014 51 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet ‘0’ - The multiple touch circuitry is disabled. The device will not block multiple touches. ‘1’ (default)- The multiple touch circuitry is enabled. The device will accept the number of touches equal to programmed multiple touch threshold and block all others. It will remember which sensor is valid and block all others until that sensor has been released. Bits 3 - 2 - B_MULT_T[1:0] - Determines the number of simultaneous touches on all buttons (excluding the Grouped buttons) before a Multiple Touch Event is flagged. If the number of multiple buttons touches is greater than the threshold value then a Multiple Touch Event is flagged. The bit decode is given by Table 5.32. Table 5.32 B_MULT_T Bit Decode B_MULT_T[1:0] 1 0 NUMBER OF SIMULTANEOUS TOUCHES 0 0 1 (default) 0 1 2 1 0 3 1 1 4 Bits 1 - 0 - G_MULT_T[1:0] - Determines the number of simultaneous touches on all Grouped buttons before a Multiple Touch Event is flagged. If the number of multiple buttons touches is greater than the threshold value then a Multiple Touch Event is flagged. The bit decode is given by Table 5.33. Table 5.33 G_MULT_T Bit Decode G_MULT_T[1:0] 5.24 1 0 NUMBER OF SIMULTANEOUS TOUCHES 0 0 2 0 1 3 1 0 4 (default) 1 1 5 Lid Closure Configuration Register Table 5.34 Lid Closure Configuration ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 2Bh R/W Lid Closure Config LID_ CLOSE - - - - - COMP_ PTRN LID_ ALRT 00h The Lid Closure Configuration register controls the settings for the lid closure detection circuitry. Bit 7 - LID_CLOSE - Enables the lid closure circuitry. ‘0’ (default) - The lid closure circuitry is disabled. Revision 1.65 (08-11-09) 52 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet ‘1’ The lid closure circuitry is enabled. The device will use the Lid Closure Status registers in combination with the Lid Closure Pattern register settings to determine when a Lid Closure Event is flagged. In addition, the Noise Status bits are associated with lid closure. Bit 1 - COMP_PTRN - Determines how the Lid Closure Status registers are compared against the Lid Closure Pattern registers. See Section 5.26, "Lid Closure Pattern Registers" for details on how the Lid Closure Pattern registers are used. ‘0’ (default) - The Lid Closure Status registers are not compared directly against the Lid Closure Pattern registers. Instead, the number of bits in the Lid Closure Status registers is compared to the number of bits in the Lid Closure Pattern registers to determine whether a Lid Closure Event is flagged. ‘1’ - The Lid Closure Status registers are compared directly against the Lid Closure Pattern registers. If the bits set in the Lid Closure Pattern are also set in the Lid Status registers, then a Lid Closure Event is flagged. Bit 0 - LID_ALRT - Enables an interrupt if a Lid Closure Event occurs. 5.25 ‘0’ (default) - If a Lid Closure Event occurs, the ALERT pin is not asserted. ‘1’ - If a Lid Closure Event occurs, the ALERT pin will be asserted. Lid Closure Queue Control Register Table 5.35 Lid Closure Queue Control Register ADDR R/W REGISTER B7 B6 B5 B4 B3 2Ch R/W Lid Closure Queue Control - - - - - B2 B1 B0 QUEUE_L_B[2:0] DEFAULT 02h The Lid Closure Queue Control register determines the number of consecutive samples for which a single sensor output is above the Lid Closure Threshold before it is flagged. A value of 0000b is decoded as 1. Bits 2 - 0 - QUEUE_B[2:0] - The number of consecutive samples from an individual sensor necessary to set the Lid Closure status bit associated with the sensor. The queue applies individually to all sensors (including both buttons and grouped sensors) and applies to setting and clearing the respective status bit. Default is 2 consecutive samples. 5.26 Lid Closure Pattern Registers Table 5.36 Lid Closure Pattern Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 2Dh R/W Lid Closure Pattern 1 - S7_LM S6_LM S5_LM S4_LM S3_LM S2_LM S1_LM 7Fh 2Eh R/W Lid Closure Pattern 2 S14_LM S13_LM S12_LM S11_LM S10_LM S9_LM S8_LM 7Fh The Lid Closure Pattern registers act as a pattern to identify an expected sensor profile that is consistent with lid closure. They are only used when lid closure is enabled (see Section 5.24, "Lid Closure Configuration Register"). There are two methods for how the Lid Closure Status Registers are used with the Lid Closure Pattern registers: as specific sensors that must exceed the lid closure threshold or as the number of sensors that must exceed the lid closure threshold. Which method is SMSC CAP1014 53 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet used is based on bit 1 in the Lid Closure Configuration Register. The methods are described below. A Lid Closure Event is flagged in the Group Status register (see Section 5.10, "Group Status Register"). 1. Specific Sensors: If the bits set in the Lid Closure Pattern are also set in the Lid Status registers, then a Lid Closure Event is flagged. 2. Number of Sensors: The number of bits in the Lid Closure Status registers is compared to the number of bits in the Lid Closure Pattern registers to determine whether a Lid Closure Event is flagged. If any one of the conditions below is met, the Lid Closure Event is flagged. 5.27 If the number of bits in Lid Closure Status 1 register equals or exceeds the number of bits in the Lid Closure Pattern 1 register, a Lid Closure Event is flagged. In other words, if the number of simultaneous sensors 1-7 exceeding the lid closure threshold meets or exceeds the number of bits in the Lid Closure Pattern 1 register, a Lid Closure Event is flagged. If the number of bits in Lid Closure Status 2 register equals or exceeds the number of bits in the Lid Closure Pattern 2 register, a Lid Closure Event is flagged. In other words, if the number of simultaneous grouped sensors 8-14 exceeding the lid closure threshold meets or exceeds the number of bits in the Lid Closure Pattern 2 register, a Lid Closure Event is flagged. If the total number of bits in both the Lid Closure Status 1 and 2 registers equals or exceeds the total number of bits in both the Lid Closure Pattern 1 and 2 registers, a Lid Closure Event is flagged. In other words, if the total number of sensors above the lid closure threshold is greater than or equal to the number of sensors required for both Lid Closure Patterns, a Lid Closure Event is flagged. Recalibration Configuration Register Table 5.37 Recalibration Configuration Registers ADDR R/W REGISTER B7 B6 B5 2Fh R/W Recalibration Configuration BUT_ LD_TH GP_ LD_TH - B4 B3 ACAL_RT[1:0] B2 B1 B0 DEFAULT CAL_CFG[2:0] 93h 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 button 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 buttons (Sensor Threshold 1 through Sensor Threshold 7). The individual Sensor X Threshold registers (Sensor 2 Threshold through Sensor 7 Threshold) can be individually updated at any time. Bit 6 - GP_LD_TH - Enables setting the Group Threshold register by writing to the Sensor 1 Threshold register. ‘0’ (default) - The Group Threshold register is updated independently of the Sensor 1 Threshold register. ‘1’ - Writing the Sensor 1 Threshold register automatically overwrites the Group Threshold register settings. Bits 4-3 - ACAL_RT[1:0] - Determines the number of retries the digital logic will perform on the analog calibration routine before it accepts the previous setting. Revision 1.65 (08-11-09) 54 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.38 ACAL_RT[1:0] Bit Decode ACAL_RT[1:0] 1 0 ANALOG CALIBRATION RETRIES 0 0 Infinite 0 1 1 1 0 3 (default) 1 1 7 Bits 2 - 0 - CAL_CFG[2:0] - Determines the update time and number of samples of the automatic recalibration routine. The settings applies to all sensors universally (though individual sensors and the group can be configured to support re-calibration - see Section 5.19). Table 5.39 CAL_CFG Bit Decode CAL_CFG[2:0] 2 1 0 RECALIBRATION SAMPLES (SEE Note 5.1) 0 0 0 16 16 0 0 1 32 32 0 1 0 64 64 0 1 1 256 256 (default) 1 0 0 256 1024 1 0 1 256 2048 1 1 0 256 4096 1 1 1 256 7936 5.28 UPDATE TIME (SEE Note 5.2) 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 Threshold Registers Table 5.40 Sensor Threshold Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 30h R/W Sensor 1 Threshold - 64 32 16 8 4 2 1 40h 31h R/W Sensor 2 Threshold - 64 32 16 8 4 2 1 40h SMSC CAP1014 55 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.40 Sensor Threshold Registers (continued) ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 32h R/W Sensor 3 Threshold - 64 32 16 8 4 2 1 40h 33h R/W Sensor 4 Threshold - 64 32 16 8 4 2 1 40h 34h R/W Sensor 5 Threshold - 64 32 16 8 4 2 1 40h 35h R/W Sensor 6 Threshold - 64 32 16 8 4 2 1 40h 36h R/W Sensor 7 Threshold - 64 32 16 8 4 2 1 40h 37h R/W Group Threshold - 64 32 16 8 4 2 1 40h 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.27 - bit 7), writing data to the Sensor 1 Threshold register will update all of the button threshold registers (31h - 36h inclusive). When the GP_LD_TH bit is set (see Section 5.27 - bit 6), writing data to the Sensor 1 Threshold register (30h) will update the Group Threshold register (37h). Individual button registers may be updated independently of the Sensor 1 Threshold settings. 5.29 Button Noise Threshold Registers Table 5.41 Button Noise Threshold Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 38h R/W Button Noise Threshold 1 CS4_BN_TH [1:0] CS3_BN_TH [1:0] CS2_BN_TH [1:0] CS1_BN_TH [1:0] 55h 39h R/W Button Noise Threshold 2 GR_BN_TH [1:0] CS7_BN_TH [1:0] CS6_BN_TH [1:0] CS5_BN_TH [1:0] 55h The Button 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 Button 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 Button Noise Threshold is proportional to the programmed threshold as shown in Table 5.42. Revision 1.65 (08-11-09) 56 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.42 CSx_BN_TH Bit Decode CSX_BN_TH[1:0] 5.29.1 1 0 THRESHOLD DIVIDE SETTING 0 0 6.25% 0 1 12.5% (default) 1 0 25% 1 1 50% Button Noise Threshold 1 Register The Button Noise Threshold 1 register controls the noise threshold for Capacitive Touch Sensors 1-4. Bits 7-6 - CH4_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 4. Bits 5-4 - CH3_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 3. Bits 3-2 - CH2_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 2. Bits 1-0 - CH1_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 1. 5.29.2 Button Noise Threshold 2 Register The Button Noise Threshold 2 register controls the noise threshold for Capacitive Touch Sensors 5 7 and the Grouped sensors. Bits 7-6 - GR_BN_TH[1:0] - Controls the noise threshold for all grouped Capacitive Touch Sensors. Bits 5-4 - CH7_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 7. Bits 3-2 - CH6_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 6. Bits 1-0 - CH5_BN_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 5. 5.30 Lid Closure Threshold Registers Table 5.43 Lid Closure Threshold Registers ADDR R/W REGISTER B7 3Ah R/W Lid Closure Threshold 1 CS4_LD_TH [1:0] CS3_LD_TH [1:0] CS2_LD_TH [1:0] CS1_LD_TH [1:0] AAh 3Bh R/W Lid Closure Threshold 2 CS8_LD_TH [1:0] CS7_LD_TH [1:0] CS6_LD_TH [1:0] CS5_LD_TH [1:0] AAh 3Ch R/W Lid Closure Threshold 3 CS12_LD_TH [1:0] CS11_LD_TH [1:0] CS10_LD_TH [1:0] CS9_LD_TH [1:0] AAh 3Dh R/W Lid Closure Threshold 4 CS14_LD_TH [1:0] CS13_LD_TH [1:0] 0Ah - B6 - B5 B4 - - B3 B2 B1 B0 DEFAULT The Lid Closure Threshold registers control the value of a secondary internal threshold to detect noise potentially generated by lid closure. If a Capacitive Touch Sensor output exceeds the Lid Closure SMSC CAP1014 57 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Threshold, the appropriate status bit is set in the Lid Closure Status register (see Section 5.8, "Lid Closure Status Registers"). The Lid Closure Threshold is proportional to the programmed Sensor Threshold as shown in Table 5.42. Table 5.44 CSx_LD_TH Bit Decode CSX_LD_TH[1:0] 5.30.1 1 0 THRESHOLD DIVIDE SETTING 0 0 6.25% 0 1 12.5% 1 0 25% (default) 1 1 50% Lid Closure Threshold 1 Register The Lid Closure Threshold 1 register controls the lid closure threshold for Capacitive Touch Sensors 1-4. Bits 7-6 - CS4_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 4. Bits 5-4 - CS3_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 3. Bits 3-2 - CS2_LD_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 2. Bits 1-0 - CS1_LD_TH[1:0] - Controls the noise threshold for Capacitive Touch Sensor 1. 5.30.2 Lid Closure Threshold 2 Register The Lid Closure Threshold 2 register controls the lid closure threshold for Capacitive Touch Sensors 5 - 8. Bits 7-6 - CS8_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 8 (one of the grouped sensors). Bits 5-4 - CS7_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 7. Bits 3-2 - CS6_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 6. Bits 1-0 - CS5_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 5. 5.30.3 Lid Closure Threshold 3 Register The Lid Closure Threshold 3 register controls the lid closure threshold for Capacitive Touch Sensors 9 - 12. Bits 7-6 - CS12_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 12 (one of the grouped sensors). Bits 5-4 - CS11_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 11 (one of the grouped sensors). Bits 3-2 - CS10_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 10 (one of the grouped sensors). Revision 1.65 (08-11-09) 58 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Bits 1-0 - CS9_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 9 (one of the grouped sensors). 5.30.4 Lid Closure Threshold 4 Register The Lid Closure Threshold 4 register controls the lid closure threshold for Capacitive Touch Sensors 13 - 14. Bits 3-2 - CS14_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 14 (one of the grouped sensors). Bits 1-0 - CS13_LD_TH[1:0] - Controls the lid closure threshold for Capacitive Touch Sensor 13 (one of the grouped sensors). 5.31 Slider Velocity Configuration Register Table 5.45 Slider Velocity Configuration Register ADDR R/W REGISTER B7 B6 3Eh R/W Slider Velocity Configuration ACC_ INT_EN B5 B4 MAX_INT[2:0] B3 B2 B1 SLIDE_TIME [1:0] B0 DEFAULT RPT_SCALE [1:0] C5h The Slider Velocity Configuration Register also controls the speed sensitive behaviors of the slider, allowing the number of interrupts to be increased as the slide speed increases Bit 7 - ACC_INT_EN - Enables the device to generate extra interrupts after an accelerated slide has been detected. ‘0’ - The device will not generate extra interrupts during or after the slide has been detected. ‘1’ (default) - The device will generate extra interrupts after an accelerated slide is detected. The number of extra interrupts generated will be proportional to the speed of the accelerated slide but will not exceed the maximum number of extra interrupts as determined by the MAX_INT bits. Bits 6-4 - MAX_INT[2:0] - (default 100b) Determine the maximum number of extra interrupts that will be generated after a single slide (regardless of length). The variable “T” is the actual slide time and the parameter SLIDE_TIME is set by bits [3:2] of this register. Table 5.46 MAX_INT Bit Decode # INTERRUPTS FOR 1/2 < T < 3/4 SLIDE_TIME # INTERRUPTS FOR 3/4 < T < FULL SLIDE_TIME MAX_INT[2:0] 2 1 0 MAX # INTERRUPTS # INTERRUPTS FOR T < 1/2 SLIDE_TIME 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 2 2 1 0 0 1 1 3 3 1 0 1 0 0 4 4 2 1 1 0 1 5 5 2 1 1 1 0 6 6 3 1 1 1 1 7 7 3 1 SMSC CAP1014 59 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Bits 3-2 - SLIDE_TIME[1:0] - (default 01b) - Determines how fast a slide must be to generate extra interrupts. This is the maximum slide time that will result in extra interrupts being generated. If the slide time is greater than SLIDE_TIME, no extra interrupts will be generated. Table 5.47 SLIDE_TIME Bit Decode SLIDE_TIME[1:0] 1 0 APPROXIMATE SLIDE TIME (MSEC) 0 0 350 0 1 560 (default) 1 0 770 1 1 980 Bits 1 - 0 - RPT_SCALE[1:0] - (default 01b) - Determines how much to increase the Repeat Rate based on slide speed. The slide speed is determined by counting how many sensors are touched in approximately 100msec. The Repeat Rate is then increased various amounts based on the RPT_SCALE parameter. When read in Table 5.48, the repeat rate given is the number of measurement cycles between interrupts generated. Table 5.48 RPT_SCALE Bit Decode REPEAT RATE (MSEC) RPT_SCALE[1:0] NUMBER OF SENSORS IN 100MSEC 00 01 10 11 >=5 35 35 35 35 4 35 35 35 70 3 35 35 70 105 2 35 70 105 140 1 RPT_RATE_SL Note 5.3 5.32 If the repeat rate for the slider is set at 105msec or lower, then the 11b case will use the fixed values of 140, 105 and 70msec, respectively. Sampling Configuration Register Table 5.49 Sampling Configuration Register ADDR R/W REGISTER B7 B6 B5 B4 B3 4Fh R/W Sampling Configuration - - - - - Revision 1.65 (08-11-09) 60 DATASHEET B2 B1 B0 OVERSAMP_RATE[2:0] DEFAULT 00h SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet The Sampling Configuration register controls the length of the sampling window of selected Captive Touch Sensor channels as indicated in the Sampling Channel Select register. Increasing the sampling window time will have two effects. The first effect will be to increase the effective sensitivity of that particular channel so that a touch may be detected with a smaller ΔC or to allow for degrees of proximity detection. However, at the larger sampling times, the resolution of the measurement is reduced. The second effect will be increase the overall round robin rate (and all timing associated with the round robin rate such as re-calibration times, repeat rate times, and maximum duration times). All Capacitive Touch Sensors default to a sampling time of 2.5ms. Increasing the sampling time of any single channel will increase the overall polling cycle by the same amount. Bits 2 - 0 - OVERSAMP_RATE[2:0] - Determine the sample window of all selected sensors. 5.33 Sensor Base Count Registers Table 5.50 Sensor Base Count Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 50h R Sensor 1 Base Count 128 64 32 16 8 4 2 1 00h 51h R Sensor 2 Base Count 128 64 32 16 8 4 2 1 00h 52h R Sensor 3 Base Count 128 64 32 16 8 4 2 1 00h 53h R Sensor 4 Base Count 128 64 32 16 8 4 2 1 00h 54h R Sensor 5 Base Count 128 64 32 16 8 4 2 1 00h 55h R Sensor 6 Base Count 128 64 32 16 8 4 2 1 00h 56h R Sensor 7 Base Count 128 64 32 16 8 4 2 1 00h 57h R Sensor 8 Base Count 128 64 32 16 8 4 2 1 00h 58h R Sensor 9 Base Count 128 64 32 16 8 4 2 1 00h 59h R Sensor 10 Base Count 128 64 32 16 8 4 2 1 00h 5Ah R Sensor 11 Base Count 128 64 32 16 8 4 2 1 00h 5Bh R Sensor 12 Base Count 128 64 32 16 8 4 2 1 00h 5Ch R Sensor 13 Base Count 128 64 32 16 8 4 2 1 00h 5Dh R Sensor 14 Base Count 128 64 32 16 8 4 2 1 00h SMSC CAP1014 61 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 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 C_DSP bits (see Section 5.13). 5.34 LED / GPIO Direction Registers Table 5.51 LED / GPIO Direction Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 70h R/W LED / GPIO Direction LED8_ DIR LED7_ DIR LED6_ DIR LED5_ DIR LED4_ DIR LED3_ DIR LED2_ DIR LED1_ DIR 00h The LED / GPIO Direction registers control the data flow direction for the LED / GPIO pins. Each pin is controlled by a single bit. Bit 7 - LED8_DIR - Controls the direction of the LED8 / GPIO8 pin. ‘0’ (default) - The LED8 / GPIO8 pin is configured as an input and cannot be used to drive an LED. ‘1’ - The LED8 / GPIO8 pin is configured as an output. Bit 6 - LED7_DIR - Controls the direction of the LED7 / GPIO7 pin. Bit 5 - LED6_DIR - Controls the direction of the LED6 / GPIO6 pin. Bit 4 - LED5_DIR - Controls the direction of the LED5 / GPIO5 pin. Bit 3 - LED4_DIR - Controls the direction of the LED4 / GPIO4 pin. Bit 2 - LED3_DIR - Controls the direction of the LED3 / GPIO3 pin. Bit 1 - LED2_DIR - Controls the direction of the LED2 / GPIO2 pin. Bit 0 - LED1_DIR - Controls the direction of the LED1 / GPIO1 pin. 5.35 LED / GPIO Output Type Registers Table 5.52 LED / GPIO Output Type Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 71h R/W LED / GPIO Output Type 1 LED8_ OT LED8_ OT LED6_ OT LED5_ OT LED4_ OT LED3_ OT LED2_ OT LED1_ OT 00h The LED / GPIO Output Type registers control the type of output for the LEDx / GPIOx pins that are configured to operate as outputs. Each pin is controlled by a single bit. ‘0’ (default) - The LEDx / GPIOx pin is an open-drain output with an external pull-up resistor. When the appropriate pin is set to the “active” state (logic ‘1’) then the pin will be driven low. Conversely, when the pin is set to the “inactive” state (logic ‘0’, then the pin will be left in a High Z state and pulled high via an external pull-up resistor. Revision 1.65 (08-11-09) 62 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.36 ‘1’ - The LEDx / GPIOx pin is a push-pull output. When driving a logic ‘1’ the pin is driven high. When driving a logic ‘0’ the pin is driven low. GPIO Input Register Table 5.53 GPIO Input Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 72h R GPIO Input GPIO8 GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 00h The GPIO Input registers reflect the state of the LEDx / GPIOx pins. These bits are updated whenever the pin state changes regardless of the operation of the pin. If a LEDx / GPIOx pin is configured as an input, then when a pin changes states, the GPIOx_STS bit is set. If the corresponding interrupt enable bit is also set, then an interrupt will be asserted. 5.37 LED Output Control Registers Table 5.54 LED Output Control Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 73h R/W LED Output Control 1 LED8_ DR LED7_ DR LED6_ DR LED5_ DR LED4_ DR LED3_ DR LED2_ DR LED1_ DR 00h 74h R/W LED Output Control 2 LED11_ DR LED10_ DR LED9_ DR 00h The LED Output Control Registers control the output state of the LED pins when they are configured as outputs. For all LED outputs, the “active” state is with the output driven low and the disabled state is with the output in a high Z state (or driven high). These bits are OR’d with the individual control bits defined in the LED Control Register (see Section 5.37). All LEDs that are associated with a Capacitive Touch Sensor channel are automatically enabled and will be actuated per the LED Behavior (if enabled as outputs - see Section 5.34). For those LEDs that are associated with a dual-color LED outputs, then the inactive state indicates that the LED connected between the drive pin and ground will be on. Likewise, the active state indicates that the LED connected between VDD and the drive in will be on. For those LEDs that are not linked with a Capacitive Touch Sensor channel, then the bit state determines whether the LED is active (or breathing - see Section 5.40) or inactive. 5.37.1 LED Output Control 1 Bit 7 - LED8_DR - Determines whether the LED8 output is driven high or low. This LED cannot be linked to a Capacitive Touch Sensor. ‘0’ (default) - The LED8 output is driven low. ‘1’ - The LED8 output is High Z or driven high. Bit 6 - LED7_DR - Determines whether LED7 output is driven high or low. ‘0’ (default) - The LED7 output is driven low. ‘1’ - The LED7 output is High Z or driven high. Bit 5 - LED6_DR - Determines whether LED6 output is driven high or low. SMSC CAP1014 63 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Bit 4 - LED5_DR - Determines whether LED5 output is driven high or low. Bit 3 - LED4_DR - Determines whether LED4 output is driven high or low. Bit 2 - LED3_DR - Determines whether LED3 output is driven high or low. 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. 5.37.2 LED Output Control 2 Bit 2 - LED11_DR - Determines whether LED11 is active or not. This LED cannot be linked to a Capacitive Touch Sensor. ‘0’ (default) - The LED11 output is in High Z and LED will be inactive. ‘1’ - The LED11 output is driven low and the LED will be active. Bit 1 - LED10_DR - Determines whether LED10 is active or not. If this LED is linked to the Group of sensors, then LED9 is automatically linked to the Group if sensors. ‘0’ (default) - The LED10 output is in High Z and LED will be inactive. If linked to the Group of Capacitive Touch sensors, then it will remain inactive when actuated. ‘1’ - The LED10 output is driven low and the LED will be active. If linked to Group of Capacitive Touch sensors, it will be in High-Z until it is actuated. At this point it will be driven low and the LED will be active. Bit 0 - LED9_DR - Determines whether LED9 is active or not. 5.38 ‘0’ (default) - The LED9 output is in High Z and LED will be inactive. If linked to the Group of Capacitive Touch sensors, then it will remain inactive when actuated. ‘1’ - The LED9 output is driven low and the LED will be active. If linked to Group of Capacitive Touch sensors, it will be in High-Z until it is actuated. At this point it will be driven low and the LED will be active. LED Polarity Registers Table 5.55 LED Polarity Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 75h R/W LED Polarity 1 LED8_ POL LED7_ POL LED6_ POL LED5_ POL LED4_ POL LED3_ POL LED2_ POL LED1_ POL 00h 76h R/W LED Polarity 2 - - - - - LED11_ POL LED10_ POL LED9_ POL 00h 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. Revision 1.65 (08-11-09) 64 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 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 CAP1014 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 off 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. Table 5.56, "LED Polarity Behavior" shows the interaction between the polarity controls, output controls and relative brightness. Table 5.56 LED Polarity Behavior LED OUTPUT CONTROL REGISTER POLARITY MAX DUTY MIN DUTY 0 inverted maximum % of time that the LED is on (logic 0) minimum % of time that the LED is on (logic 0) 1 inverted maximum % of time that the LED is on (logic 0) 0 noninverted 1 noninverted BRIGHTNESS LED APPEARANCE off maximum brightness at minimum duty cycle on at minimum duty cycle minimum % of time that the LED is on (logic 0) on maximum brightness at max duty cycle. Brightness ramps from min to max according to LED behavior maximum % of time that the LED is off (logic 1) minimum % of time that the LED is off (logic 1) off maximum brightness at 100 - min duty cycle on at 100 - min duty cycle (Note 5.4) maximum % of time that the LED is off (logic 1) minimum % of time that the LED is off (logic 1) on maximum brightness at 100 - min duty cycle. Brightness ramps from max to min according to LED behavior Note 5.4 5.38.1 LED BEHAVIORS 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). LED Polarity 1 Bit 7 - LED8_POL - Determines the polarity of the LED8 output. SMSC CAP1014 ‘0’ - The LED8 output is inverted. A setting of ‘1’ in the LED 8 Output register will cause the output to be driven to a logic ‘0’ as determined by the LED behavior. Similarly, the duty cycles corresponding to Pulse 1, Pulse 2, and Breathe operations will indicate the amount of time that the LED is driven to a logic ‘0’ state (corresponding to “active”). 65 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet ‘1’ - The LED8 output is direct. A setting of ‘1’ in the LED 8 Output register will cause the output to be driven to a logic ‘1’ or left in the high-z state as determined by its output type and LED behavior. Similarly, the duty cycles corresponding to Pulse 1, Pulse 2, and Breathe operations will indicate to the amount of time that the LED is driven to a logic ‘1’ state (corresponding to “inactive”). Bit 6 - LED7_POL - Determines the polarity of the LED7 output. Bit 5 - LED6_POL - Determines the polarity of the LED6 output. Bit 4 - LED5_POL - Determines the polarity of the LED5 output. Bit 3 - LED4_POL - Determines the polarity of the LED4 output. Bit 2 - LED3_POL - Determines the polarity of the LED3 output. Bit 1 - LED2_POL - Determines the polarity of the LED2 output. Bit 0 - LED1_POL - Determines the polarity of the LED1 output. 5.38.2 LED Polarity 2 Bit 2 - LED11_POL - Determines the polarity of the LED11 output. ‘0’ (default) - The LED11 output is inverted. A setting of ‘1’ in the LED 11 Output register will cause the output to be driven to a logic ‘0’ as determined by the LED behavior. Similarly, the duty cycles corresponding to Pulse 1, Pulse 2, and Breathe operations will indicate the amount of time that the LED is driven to a logic ‘0’ state (corresponding to “active”). ‘1’ - The LED11 output is direct. A setting of ‘1’ in the LED 11 Output register will cause the output to be driven to a logic ‘1’ or left in the high-z state as determined by its output type and LED behavior. Similarly, the duty cycles corresponding to Pulse 1, Pulse 2, and Breathe operations will indicate to the amount of time that the LED is driven to a logic ‘1’ state (corresponding to “inactive”). Bit 1 - LED10_POL - Determines the polarity of the LED10 output. Bit 0 - LED9_POL - Determines the polarity of the LED9 output. 5.39 Sensor LED Linking Registers Table 5.57 Sensor LED Linking Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 80h R/W Sensor LED Linking UP_ DOWN LLINK CS7_ LED7 CS6_ LED6 CS5_ LED5 CS4_ LED4 CS3_ LED3 CS2_ LED2 CS1_ 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.40) in response to the Capacitive Touch sensor. If the LED channel is configured as an input, then the corresponding Sensor LED Linking bit is ignored. Bit 7 - UP_DOWN_LINK - Links the LED10 output to a detected UP condition on the group including a slide in the “up” direction, a tap on the “up” side of the group or a press and hold condition on the “up” side of the group. The LED10 driver will be actuated and will behave as determined by the LED10_CTL bits. This bit also links the LED9 output to a detected DOWN condition on the group including a slide in the “down” direction, a tap on the “down” side of the group or a press and hold condition on the “down” side of the group. The LED9 driver will be actuated and will behave as determined by the LED9_CTL bits. Revision 1.65 (08-11-09) 66 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet LED9 and LED10 will not be active simultaneously. If LED9 is actuated by detecting a slide, tap, or press and hold event, LED10 will be inactive. Likewise, if LED10 is actuated by detecting a slide, tap, or press and hold event, LED9 will be inactive. 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. ‘0’ - The LED7 output is not associated with a the CS7 input. If a touch is detected on the CS7 input, then the LED will not automatically be actuated. The LED is enabled and controlled via the LED Output Configuration register (see Section 5.37) and the LED Behavior registers (see Section 5.40). ‘1’ - The LED 7 output is associated with the CS7 in put. If a touch is detected on the CS7 input then the LED will be actuated and behave as defined in Table 5.59. Furthermore, the LED will automatically be enabled. 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 4 - 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. 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. 5.40 LED Behavior Registers Table 5.58 LED Behavior Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 81h R/W LED Behavior 1 LED4_CTL[1:0] LED3_CTL[1:0] LED2_CTL[1:0] LED1_CTL[1:0] 00h 82h R/W LED Behavior 2 LED8_CTL[1:0] LED7_CTL[1:0] LED6_CTL[1:0] LED5_CTL[1:0] 00h 83h R/W LED Behavior 3 LED11_ALT [1:0] LED11_CTL [1:0] LED10_CTL [1:0] LED9_CTL[1:0] 00h The LED Behavior registers control the operation of LEDs. Each LEDx / GPIOx pin is controlled by a 2-bit field. If the LEDx / GPIOx pin is configured as an input, then these bits are ignored. 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. See Table 5.59 and note the behavior of the Breathe Hold and Pulse Release option. If the LED output is not associated with a Capacitive Touch Sensor, then two available options are Direct and Breathe. In this case, the Start and Stop triggers are ignored and the output of the LED is activated exclusively by the bit state of the control signals. APPLICATION NOTE: 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. SMSC CAP1014 67 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.40.1 LED Behavior 1 - 81h Bits 7 - 6 - LED4_CTL[1:0] - Determines the behavior of LED4 / GPIO4 when configured to operate as an LED output Bits 5 - 4 - LED3_CTL[1:0] - Determines the behavior of LED3 / GPIO3 when configured to operate as an LED output Bits 3 - 2 - LED2_CTL[1:0] - Determines the behavior of LED2 / GPIO2 when configured to operate as an LED output Bits 1 - 0 - LED1_CTL[1:0] - Determines the behavior of LED1 / GPIO1 when configured to operate as an LED output 5.40.2 LED Behavior 2 - 82h Bits 7 - 6 - LED8_CTL[1:0] - Determines the behavior of LED8 / GPIO8 when configured to operate as an LED output Bits 5 - 4 - LED7_CTL[1:0] - Determines the behavior of LED7 / GPIO7 when configured to operate as an LED output Bits 3 - 2 - LED6_CTL[1:0] - Determines the behavior of LED6 / GPIO6 when configured to operate as an LED output Bits 1 - 0 - LED5_CTL[1:0] - Determines the behavior of LED5 / GPIO5 when configured to operate as an LED output 5.40.3 LED Behavior 3 - 83h Bits 7 - 6 - LED11_ALT[1:0] - Determines the behavior of LED 11 when the PWR_LED bit is set and either the SLEEP or DSLEEP bits are set (see Section 5.1). Bits 5 - 4 - LED11_CTL[1:0] - Determines the behavior of LED11 when the PWR_LED bit is set and both the SLEEP and DSLEEP bits are not set (see Section 5.1). Bits 3 - 2 - LED10_CTL[1:0] - Determines the behavior of LED10. Bits 1 - 0 - LED9_CTL[1:0] - Determines the behavior of LED9. APPLICATION NOTE: When driving the LED / GPIOx output as a GPO, the LEDx_CTL[1:0] bits should be set to 00b. Table 5.59 LEDx_CTL Bit Decode LEDX_CTL [1:0] 1 0 OPERATION - LINKED WITH SENSOR 0 0 Direct 0 1 Pulse Press (Pulse 1) Revision 1.65 (08-11-09) OPERATION NOT LINKED WITH SENSOR DESCRIPTION START TRIGGER STOP TRIGGER Direct The LED is driven to the programmed state (active or inactive). Press Detected Release Detected Direct The LED will breathe 5 times starting based on the Start Trigger). The total period of each “breath” is determined by the LED Pulse 1 Period controls see Section 5.41 Press Detected n/a 68 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.59 LEDx_CTL Bit Decode (continued) LEDX_CTL [1:0] 1 1 1 0 0 OPERATION - LINKED WITH SENSOR Breathe Hold + Pulse Release (Pulse 2) 1 Breathe OPERATION NOT LINKED WITH SENSOR START TRIGGER STOP TRIGGER Breathe The LED will breathe continuously while the corresponding sensor detects a press. When the sensor detects a release, it will breathe 5 additional times and then stop. The total period of each “breath” is determined by the LED Pulse 2 Period controls - see Section 5.42. Press Detected Release Detected Breathe The LED will breathe. It will be driven with a duty cycle that ramps up from the programmed minimum duty cycle (default 0%) to the programmed maximum duty cycle duty cycle and then back down. Each ramp takes up 50% of the programmed period. The total period of each “breath” is determined by the LED Breathe Period controls - see Section 5.43. Press Detected Release Detected DESCRIPTION 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 area set at 0, then the maximum PWM frequency will be used based on the programmed duty cycle settings. 5.41 LED Pulse 1 Period Register Table 5.60 LED Behavior Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 84h R/W LED Pulse 1 Period - P1_ PER6 P1_ PER5 P1_ PER4 P1_ PER3 P1_ PER2 P1_ PER1 P1_ PER0 20h The LED Pulse 1 Period register determines the overall period of a pulse operation as determined by the LED_CTL registers (see Table 5.59 - 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.61. The Pulse 1 operation is shown in Figure 5.1 (non-inverted polarity) and Figure 5.2 (inverted polarity). SMSC CAP1014 69 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet . Touch Detected 5 pulses after touch Normal – untouched operation (100% - Pulse 1 Min Duty Cycle) * Brightness Normal – untouched operation LED Brightness (100% - Pulse 1 Max Duty Cycle) * Brightness Pulse 1 Period (P1_PER) Figure 5.1 Pulse 1 Behavior with Non-Inverted Polarity Touch Detected 5 pulses after touch Pulse 1 Max Duty Cycle * Brightness LED Brightness Normal – untouched operation Normal – untouched operation Pulse 1 Min Duty Cycle * Brightness Pulse Period (P1_PER) Figure 5.2 Pulse 1 Behavior with Inverted Polarity Table 5.61 LED Pulse / Breathe Period Example SETTING (HEX) SETTING (DECIMAL) TOTAL BREATHE / PULSE PERIOD (MS) 00h 0 32 01h 1 32 02h 2 64 03h 3 96 Revision 1.65 (08-11-09) 70 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.61 LED Pulse / Breathe Period Example (continued) 5.42 SETTING (HEX) SETTING (DECIMAL) TOTAL BREATHE / PULSE PERIOD (MS) 04h 4 128 ... ... ... 7Ch 124 3,968 7Dh 125 4,000 7Eh 126 4,032 7Fh 127 4.064 LED Pulse 2 Period Register Table 5.62 LED Behavior Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 85h R/W LED Pulse 2 Period - P2_ PER6 P2_ PER5 P2_ PER4 P2_ PER3 P2_ PER2 P2_ PER1 P2_ PER0 14h The LED Pulse 2 Period register determines the overall period of a pulse operation as determined by the LED_CTL registers (see Table 5.59 - 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.61). The Pulse 2 Behavior is shown in Figure 5.3 (non-inverted polarity) and Figure 5.4 (inverted polarity). Release Detected Touch Detected Normal – untouched operation 5 additional pulses after release (100% - Pulse 2 Min Duty Cycle) * Brightness LED Brightness Normal – untouched operation ... Breathe and Pulse Period (P2_PER) (100% - Pulse 2 Max Duty Cycle) * Brightness Figure 5.3 Pulse 2 Behavior with Non-Inverted Polarity SMSC CAP1014 71 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Release Detected Touch Detected Normal – untouched operation 5 additional pulses after release Normal – untouched operation Pulse 2 Max Duty Cycle * Brightness LED Brightness ... Pulse 2 Min Duty Cycle * Brightness Breathe and Pulse Period (P2_PER) Figure 5.4 Pulse 2 Behavior with Inverted Polarity 5.43 LED Breathe Period Register Table 5.63 LED Behavior Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 86h R/W LED Breathe Period - BR_ PER6 BR_ PER5 BR_ PER4 BR_ PER3 BR_ PER2 BR_ PER1 BR_ PER0 5Dh The LED Breathe Period register determines the overall period of a breathe operation as determined by the LED_CTL registers (see Table 5.59 - setting 11b). 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.61). 5.44 LED Pulse Configuration Register Table 5.64 LED Configuration Registers ADDR R/W REGISTER B7 B6 88h R/W LED Pulse Config - - B5 B4 B3 PULSE2_CNT[2:0] B2 B1 B0 DEFAULT PULSE1_CNT[2:0] The LED Pulse Configuration register controls the number of pulses that are sent for the Pulse 1 and Pulse 2 LED output behaviors. Bits 5 - 3 - PULSE2_CNT[2:0] - Determines the number of pulses used for the Pulse 2 behavior as shown in Table 5.65. The default is 100b. Bits 2 - 0 - PULSE1_CNT[2:0] - Determines the number of pulses used for the Pulse 1 behavior as shown in Table 5.65. Revision 1.65 (08-11-09) 72 DATASHEET SMSC CAP1014 24h Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.65 PULSE_CNT Decode PULSEX_CNT[2:0] 2 1 0 NUMBER OF BREATHS 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 (default) 1 0 1 6 1 1 0 7 1 1 1 8 5.45 LED Pulse and Breathe Duty Cycle Registers Table 5.66 LED Period and Duty Cycle Registers ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT 90h R/W LED Pulse 1 Duty Cycle LED_P1_MAX_DUTY[3:0] LED_P1_MIN_DUTY[3:0] F0h 91h R/W LED Pulse 2 Duty cycle LED_P2_MAX_DUTY[3:0] LED_P2_MIN_DUTY[3:0] F0h 92h R/W LED Pulse 3 Duty Cycle LED_BR_MAX_DUTY[3:0] LED_BR_MIN_DUTY[3:0] F0h 93h R/W Direct Duty Cycle LED_DR_MAX_DUTY[3:0] LED_DR_MIN_DUTY[3:0] F0h The LED Pulse and Breathe 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.45) 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 - LED_X_MAX_DUTY[3:0] - Determines the maximum PWM duty cycle for the LED drivers as shown in Table 5.67. SMSC CAP1014 73 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Bits 3 - 0 - LED_X_MIN_DUTY[3:0] - Determines the minimum PWM duty cycle for the LED drivers as shown in Table 5.67. Table 5.67 LED Duty Cycle Decode LED_X_MAX/MIN_DUTY [3:0] 3 2 1 0 DUTY CYCLE 0 0 0 0 0% 0 0 0 1 12.5% 0 0 1 0 18.75% 0 1 1 1 25.0% 0 1 0 0 31.25% 0 1 0 1 37.5% 0 1 1 0 43.75% 0 1 1 1 50.0% 1 0 0 0 56.25% 1 0 0 1 62.5% 1 0 1 0 68.75% 1 0 1 1 75.0% 1 1 0 0 81.25% 1 1 0 1 87.5% 1 1 1 0 93.75% 1 1 1 1 100% 5.46 LED Direct Ramp Rates Register Table 5.68 LED Direct Ramp Rates Register ADDR R/W REGISTER B7 B6 94h R/W LED Direct Ramp Rates - - B5 B4 B3 RISE_RATE[2:0] B2 B1 B0 FALL_RATE[2:0] DEFAULT 00h The LED Direct Ramp Rates register control the rising and falling edge time of an LED that is configured to operate in Direct mode and is linked to a Capacitive Touch sensor. 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.69. Revision 1.65 (08-11-09) 74 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 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.69. Table 5.69 Rise / Fall Rate Cycle Decode RISE/FALL_RATE [2:0] 2 1 0 RISE / FALL TIME (TRISE / TFALL) 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 1 1 0 1.5s 1 1 1 2s 5.47 LED Off Delay Register Table 5.70 LED Off Delay Register ADDR R/W REGISTER B7 B6 95h R/W LED Off Delay Register - - B5 B4 B3 - - B2 B1 B0 DIR_OFF_DLY [2:0] DEFAULT 00h 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). This register is only used if the LED is linked to a Capacitive Touch sensor. 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.71. Table 5.71 Off Delay Settings DIR_OFF_DLY [2:0 2 1 0 OFF DELAY TOFF_DLY 0 0 0 0 0 0 1 0.5s 0 1 0 1.0s 0 1 1 1.5s 1 0 0 2.0s 1 0 1 3.0s SMSC CAP1014 75 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 5.71 Off Delay Settings (continued) DIR_OFF_DLY [2:0 2 1 0 OFF DELAY TOFF_DLY 1 1 0 4.0s 1 1 1 5.0s The Direct Mode operation is shown determined by the combination of programmed Rise Time, Fall Time, and Off Delay as shown in Figure 5.5 (non-inverted polarity) and Figure 5.6 (inverted polarity). Normal – untouched operation Release Detected Touch Detected Normal – untouched operation (100% - Min Duty Cycle) * Brightness LED Brightness RISE_RATE Setting (tRISE) (100% - Max Duty Cycle) * Brightness Off Delay (tOFF_DLY) FALL_RATE Setting (tFALL) Figure 5.5 Direct Mode Behavior for Non-Inverted Polarity Release Detected Touch Detected LED Brightness Max Duty Cycle * Brightness Normal – untouched operation Normal – untouched operation Min Duty Cycle * Brightness RISE_RATE Setting (tRISE) Off Delay (tOFF_DLY) FALL_RATE Setting (tFALL) Figure 5.6 Direct Mode Behavior for Inverted Polarity These OTP bits are incremented any time the OTP bits are changed once devices are shipped to HP. Revision 1.65 (08-11-09) 76 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 5.48 Product ID Register Table 5.72 Product ID Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT FDh R Product ID 0 0 1 0 1 1 0 1 2Dh The Product ID register stores a unique 8-bit value that identifies the device. 5.49 Revision Register Table 5.73 Revision Register ADDR R/W REGISTER B7 B6 B5 B4 B3 B2 B1 B0 DEFAULT FFh R Revision 1 0 0 0 0 0 0 1 81h The Revision register stores an 8-bit value that represents the part revision. Note: Rev 00h was an engineering build and not released. Revision 81h is the first released version of the device, Functional Revision A. SMSC CAP1014 77 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Chapter 6 Package Information 6.1 Package Drawings Figure 6.1 Package Diagram - 32-Pin QFN Revision 1.65 (08-11-09) 78 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Figure 6.1 Package Dimensions - 32-Pin QFN SMSC CAP1014 79 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Figure 6.2 Package PCB Land Pattern and Stencil Figure 6.3 Package Detail A - Stencil Opening and Perimeter Lands Revision 1.65 (08-11-09) 80 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Figure 6.4 Package Detail B - Thermal Vias and Stencil Opening Figure 6.5 Package Land Pattern Dimensions SMSC CAP1014 81 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet 6.2 Package Marking All packages will marked as shown in Figure 6.1. MINIMUM CIRCLE “R” DIAMETER = 0.80mm TOP 0.4 R Line 1 – SMSC Logo Line 2 – Device Number, Version Line 3 - Revision, Year, Week, 4-digit Engineering Code (RYYWWXXXX) Line 4 – Lot Number 4x 1.3PT C A P 1 0 1 4 - V R Y Y WW X X X X 8 H 1 2 3 4 5 6 a V V - C C Line 5 – Vendor ID and Country Code (VV – CC) e3 LINES 1, 2, 3, & 4: CENTER HORIZONTAL ALIGNMENT PB-FREE/GREEN SYMBOL (Matte Sn) PIN 1 LINES 5: BEST FIT BETWEEN PIN 1 MARK AND Pb-FREE SYMBOL BOTTOM BOTTOM MARKING NOT ALLOWED Figure 6.1 Package Markings Revision 1.65 (08-11-09) 82 DATASHEET SMSC CAP1014 Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Chapter 7 Revision History Table 7.1 Customer Revision History REVISION LEVEL & DATE Revision 1.65 (08-11-09) SECTION/FIGURE/ENTRY CORRECTION Features Low Power operation bullet; “1 or more buttons” changed to “2” Ordering Information Added CAP1014-2 order number. Added “features” column to ordering table. Table 1.1, "Pin Description for CAP1014" Added note below table: For all 5V tolerant pins that require a pull-up resistor, the voltage difference between VDD and the pull-up voltage must never exceed 3.6V. Table 2.1, "Absolute Maximum Ratings" Added voltage limits for 5V tolerant pins with pullup resistors: Voltage on 5V tolerant pins (|V5VT_pin - VDD|) 0 to 3.6V. Added note below table: For the 5V tolerant pins that have a pull-up resistor, the pull-up voltage must not exceed 3.6V when the device is unpowered. Updated thetaJA for the device from 40 to 48 and for the package from 52 to 60. Updated via recommendations from 4 to a 4x4 array. Table 2.2, "Electrical Specifications" Added typical values for DC Power - Supply Current. ISLEEP MAX value changed from “250” to “300” and IDSLEEP MAX value changed from “100” to “200” Added pull-up voltage < 3.6V condition to leakage current. lDD TYP changed from “420” to “0.42” SMSC CAP1014 Section 4.1, "Power States" Default for Sleep state modified from “2” to “0” Section 4.4.2, "Lid Closure" Added. Section 5.7, "Noise Flag Status Registers" Added application note regarding lid closure. Section 5.8, "Lid Closure Status Registers" Added. Section 5.10, "Group Status Register" Added bit 7 for lid closure. Section 5.23, "Multiple Touch Configuration Register" Renamed MULT_EN to MULT_BLK_EN. Section 5.24, "Lid Closure Configuration Register" Added. Section 5.25, "Lid Closure Queue Control Register" Added. 83 DATASHEET Revision 1.65 (08-11-09) Multiple Channel Capacitive Touch Sensor and LED Driver Datasheet Table 7.1 Customer Revision History (continued) REVISION LEVEL & DATE Revision 1.64 (01-15-09) Revision 1.65 (08-11-09) SECTION/FIGURE/ENTRY CORRECTION Section 5.26, "Lid Closure Pattern Registers" Added. Section 5.30, "Lid Closure Threshold Registers" Added. Section 5.32, "Sampling Configuration Register" Added. Section 5.38, "LED Polarity Registers" Added application notes and Table 5.56, "LED Polarity Behavior". Section 5.40, "LED Behavior Registers" Added application note regarding polarity controlling non-actuated state of LEDs. Section 5.41, "LED Pulse 1 Period Register" Updated figures to show behavior with inverted and normal polarity. Section 5.42, "LED Pulse 2 Period Register" Updated figures to show behavior with inverted and normal polarity. Section 5.47, "LED Off Delay Register" Updated figures to show behavior with inverted and normal polarity. Section 5.3, "Build Revision Register" Updated BUILD register bit settings Table 5.5, "Build History" Added table for Build History Section 6.1, "Package Drawings" Replaced single composite figure with individual figures to improve readability. Initial Release 84 DATASHEET SMSC CAP1014