FEATURES FUNCTIONAL BLOCK DIAGRAM 16-element FIFO for event recording 10 configurable I/Os allowing for such functions as Keypad decoding for a matrix of up to 5 × 5 Key press/release interrupts GPIO functions GPI with selectable interrupt level 100 kΩ or 300 kΩ pull-up resistors 300 kΩ pull-down resistors GPO with push-pull or open drain Programmable logic block Pulse generators Periods and on times Above 30 sec in 125 ms increments Up to 255 ms in 1 ms increments Reset generator I2C interface with Fast-mode Plus (Fm+) support of up to 1 MHz Open-drain interrupt output 16-ball WLCSP, 1.59 mm × 1.59 mm VDD GND ADP5586 UVLO POR RST/R5 SDA OSCILLATOR I2C INTERFACE SCL INT KEY SCAN AND DECODE R0 R1 GPI SCAN AND DECODE R2 R3 R4 C0 C1 I/O CONFIG REGISTERS LOGIC PULSE GEN 1 C2 C3 C4 PULSE GEN 2 RESET GEN 11148-001 Data Sheet Keypad Decoder and I/O Port Expander ADP5586 Figure 1. APPLICATIONS Keypad entries and input/output expansion capabilities Smartphones, remote controls, and cameras Healthcare, industrial, and instrumentation GENERAL DESCRIPTION The ADP5586 is a 10-input/output port expander with a built-in keypad matrix decoder, programmable logic, reset generator, and pulse generators. Input/output expander ICs are used in portable devices (phones, remote controls, and cameras) and nonportable applications (healthcare, industrial, and instrumentation). I/O expanders can be used to increase the number of I/Os available to a processor or to reduce the number of I/Os required through interface connectors for front panel designs. The ADP5586 handles all key scanning and decoding and can flag the main processor, via an interrupt line, that new key events have occurred. GPI changes and logic changes can also be tracked Rev. 0 as events via the FIFO, eliminating the need to monitor different registers for event changes. The ADP5586 is equipped with a FIFO to store up to 16 events. Events can be read back by the processor via an I2C-compatible interface. The ADP5586 eliminates the need for the main processor to monitor the keypad, thus reducing power consumption and/or increasing processor bandwidth for performing other functions. The programmable logic functions allow common logic requirements to be integrated as part of the GPIO expander, thus saving board area and cost. Document Feedback Information furnished by Analog Devices is believed to be accurate and reliable. However, no responsibility is assumed by Analog Devices for its use, nor for any infringements of patents or other rights of third parties that may result from its use. Specifications subject to change without notice. No license is granted by implication or otherwise under any patent or patent rights of Analog Devices. Trademarks and registered trademarks are the property of their respective owners. One Technology Way, P.O. Box 9106, Norwood, MA 02062-9106, U.S.A. Tel: 781.329.4700 ©2013 Analog Devices, Inc. All rights reserved. Technical Support www.analog.com ADP5586 Data Sheet TABLE OF CONTENTS Features .............................................................................................. 1 Event FIFO .....................................................................................9 Applications ....................................................................................... 1 Key Scan Control ........................................................................ 10 Functional Block Diagram .............................................................. 1 GPI Input ..................................................................................... 13 General Description ......................................................................... 1 GPO Output ................................................................................ 13 Revision History ............................................................................... 2 Logic Block .................................................................................. 14 Specifications..................................................................................... 3 Reset Block .................................................................................. 15 I C Timing Specifications ............................................................ 4 Interrupts ..................................................................................... 15 Absolute Maximum Ratings ............................................................ 5 Pulse Generators......................................................................... 16 Thermal Resistance ...................................................................... 5 Register Interface ............................................................................ 17 ESD Caution .................................................................................. 5 Register Map ................................................................................... 19 Pin Configuration and Function Descriptions ............................. 6 Detailed Register Descriptions ................................................. 21 Theory of Operation ........................................................................ 7 Applications Schematic.................................................................. 41 Device Enable ................................................................................ 8 Outline Dimensions ....................................................................... 42 Device Overview .......................................................................... 8 Ordering Guide .......................................................................... 42 2 Functional Description .................................................................... 9 REVISION HISTORY 3/13—Revision 0: Initial Version Rev. 0 | Page 2 of 44 Data Sheet ADP5586 SPECIFICATIONS VDD = 1.8 V to 3.3 V, TA = TJ = −40°C to +85°C, unless otherwise noted. 1 Table 1. Parameter SUPPLY VOLTAGE VDD Input Voltage Range Undervoltage Lockout Threshold SUPPLY CURRENT Standby Current Operating Current (One Key Press) Symbol VDD UVLOVDD ISTNBY ISCAN1 ISCAN2 PULL-UP, PULL-DOWN RESISTANCE Pull-Up Option 1 Option 2 Pull-Down INPUT LOGIC LEVEL (RST, SCL, SDA, R0, R1, R2, R3, R4, R5, C0, C1, C2, C3, C4) Input Voltage Logic Low Logic High Input Leakage Current (Per Pin) PUSH-PULL OUTPUT LOGIC LEVEL (R0, R1, R2, R3, R4, R5, C0, C1, C2, C3, C4 Output Voltage Logic Low UVLO active, VDD falling UVLO inactive, VDD rising Min 1.65 1.2 VDD = 1.65 V VDD = 3.3 V Scan = 10 ms, CORE_FREQ = 50 kHz, scan active, 300 kΩ pull-up, VDD = 1.65 V Scan = 10 ms, CORE_FREQ = 50 kHz, scan active, 300 kΩ pull-up, VDD = 3.3 V 50 150 150 VIL VIH VI-LEAK VOL1 VOL2 Logic High Logic High Output Leakage Current (Per Pin) OPEN-DRAIN OUTPUT LOGIC LEVEL (INT, SDA) Output Voltage Logic Low INT SDA Logic High Output Leakage Current (Per Pin) Logic Propagation Delay Flip-Flop (FF) Hold Time 2 FF Setup Time2 GPIO Debounce2 Internal Oscillator Frequency 3 Test Conditions/Comments VOH VOH-LEAK VOL3 VOL4 VOH-LEAK Typ Max Unit 3.6 1.3 1.4 1.6 V V V 1 1 30 4 10 40 μA µA µA 75 85 μA 100 300 300 150 450 450 kΩ kΩ kΩ 0.3 × VDD 1 V V µA 0.4 V 0.5 V 0.1 1 V µA 0.1 0.4 0.4 1 V V µA 300 ns ns ns µs kHz 0.7 × VDD 0.1 Sink current = 10 mA, maximum of five GPIOs active simultaneously Sink current = 10 mA, all GPIOs active simultaneously Source current = 5 mA 0.7 × VDD ISINK = 10 mA ISINK = 20 mA 125 0 175 OSCFREQ 720 800 70 880 All limits at temperature extremes are guaranteed via correlation, using standard statistical quality control (SQC). Typical values are at TA = 25°C, VDD = 1.8 V. Guaranteed by design. 3 All timers are referenced from the base oscillator and have the same ±10% accuracy. 1 2 Rev. 0 | Page 3 of 44 ADP5586 Data Sheet I2C TIMING SPECIFICATIONS Table 2. Parameter I2C TIMING SPECIFICATIONS Delay from UVLO/RST Inactive to I2C Access fSCL tHIGH tLOW tSU; DAT tHD; DAT tSU; STA tHD; STA tBUF tSU; STO tVD; DAT tVD; ACK tR tF tSP CB 1 1 Description Min SCL clock frequency SCL high time SCL low time Data setup time Data hold time Setup time for repeated start Hold time for start/repeated start Bus free time for stop and start conditions Setup time for stop condition Data valid time Data valid acknowledge Rise time for SCL and SDA Fall time for SCL and SDA Pulse width of suppressed spike Capacitive load for each bus line 0 0.26 0.5 50 0 0.26 0.26 0.5 0.26 0 Max Unit 60 1000 μs kHz μs μs ns μs μs μs μs μs μs μs ns ns ns pF 0.45 0.45 120 120 50 550 CB is the total capacitance of one bus line in picofarads (pF). Timing Diagram tF SDA tR tSU; DAT 70% 30% 70% 30% tF tVD; DAT tHD; DAT tHIGH tR 70% 30% SCL 70% 30% 70% 30% tHD; STA S 70% 30% tLOW NINTH CLOCK 1/fSCL FIRST CLOCK CYCLE tBUF SDA tHD; STA tSU; STA tVD; ACK tSP tSU; STO 70% 30% Sr VIL = 0.3V × VDD P NINTH CLOCK VIH = 0.7V × VDD Figure 2. I2C Interface Timing Diagram Rev. 0 | Page 4 of 44 S 11148-002 SCL Data Sheet ADP5586 ABSOLUTE MAXIMUM RATINGS THERMAL RESISTANCE Table 3. Parameter VDD to GND SCL, SDA, RST, INT, R0, R1, R2, R3, R4, C0, C1, C2, C3, C4 Temperature Range Operating (Ambient) Operating (Junction) Storage 1 Rating −0.3 V to +4 V −0.3 V to (VDD + 0.3 V) θJA is specified for the worst-case conditions, that is, a device soldered in a printed circuit board (PCB) for surface-mount packages. −40°C to +85°C1 −40°C to +125°C −65°C to +150°C Thermal Resistance 16-Ball WLCSP Maximum Power Dissipation Table 4. In applications where high power dissipation and poor thermal resistance are present, the maximum ambient temperature may need to be derated. Maximum ambient temperature (TA (MAX)) is dependent on the maximum operating junction temperature (TJ (MAXOP) = 125°C), the maximum power dissipation of the device (PD (MAX)), and the junction-to-ambient thermal resistance of the device/package in the application (θJA), using the following equation: TA (MAX) = TJ (MAXOP) − (θJA × PD (MAX)). ESD CAUTION Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only; functional operation of the device at these or any other conditions above those indicated in the operational section of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. Absolute maximum ratings apply individually only, not in combination. Unless otherwise specified, all other voltages are referenced to GND. Rev. 0 | Page 5 of 44 θJA 62 70 Unit °C/W mW ADP5586 Data Sheet PIN CONFIGURATION AND FUNCTION DESCRIPTIONS BALL A1 CORNER 1 2 3 4 VDD SDA SCL GND R0 INT RST/R5 C0 R2 R1 C1 C2 R4 R3 C3 C4 A B C TOP VIEW (BALL SIDE DOWN) Not to Scale 11148-003 D Figure 3. Pin Configuration Table 5. Pin Function Descriptions Pin No. A1 A2 A3 A4 B1 B2 B3 Mnemonic VDD SDA SCL GND R0 INT RST/R5 B4 C1 C2 C3 C4 D1 D2 D3 D4 C0 R2 R1 C1 C2 R4 R3 C3 C4 Description Supply Voltage Input. I2C Data Input/Output. I2C Clock Input. Ground. GPIO 1 (GPIO Alternate Function: Logic Block Output LY). This pin functions as Row 0 when configured in keypad mode. Open-Drain Interrupt Output. Input Reset Signal (RST). The reset signal function applies to all models except the ADP5586ACBZ-01-R7. GPIO 6/Row 5 (R5). This function applies only to the ADP5586ACBZ-01-R7 model. GPIO 7 (GPIO Alternate Function: PULSE_GEN_1). This pin functions as Column 0 when configured in keypad mode. GPIO 3 (GPIO Alternate Function: Logic Block Input LB). This pin functions as Row 2 when configured in keypad mode. GPIO 2 (GPIO Alternate Function: Logic Block Input LA). This pin functions as Row 1 when configured in keypad mode. GPIO 8 (GPIO Alternate Function: PULSE_GEN_2). This pin functions as Column 1 when configured in keypad mode. GPIO 9. This pin functions as Column 2 when configured in keypad mode. GPIO 5 (GPIO Alternate Function: RESET_OUT). This pin functions as Row 4 when configured in keypad mode. GPIO 4 (GPIO Alternate Function: Logic Block Input LC). This pin functions as Row 3 when configured in keypad mode. GPIO 10. This pin functions as Column 3 when configured in keypad mode. GPIO 11. This pin functions as Column 4 when configured in keypad mode. Rev. 0 | Page 6 of 44 Data Sheet ADP5586 THEORY OF OPERATION VDD GND ADP5586 UVLO POR RST/R5* OSCILLATOR SDA I2C INTERFACE INT SCL I2C BUSY? R0 KEY EVENT R2 (RST/R5)* (C0) (C1) (C2) (C3) (C4) R3 R4 C0 (R0) (R1) (R2) (R3) (R4) C1 C2 C3 C4 I/O CONFIGURATION ROW 0 ROW 1 ROW 2 ROW 3 ROW 4 ROW 5 GPI EVENT LOGIC EVENT KEY SCAN AND DECODE COL 0 COL 1 COL 2 COL 3 COL 4 GPIO 1 GPIO 2 GPIO 3 GPIO 4 GPIO 5 REGISTERS GPI SCAN AND DECODE (RST/R5)* GPIO 6 (C0) GPIO 7 (C1) GPIO 8 (C2) GPIO 9 (C3) GPIO 10 (C4) GPIO 11 (R4) RESET GEN RESET_OUT (R1) (R2) (R3) LA LB LC (R0) LY FIFO UPDATE RST LOGIC (C0) PULSE_GEN_1 PULSE CONTROL (C1) PULSE_GEN_2 11148-004 (R0) (R1) (R2) (R3) (R4) R1 *R5 AVAILABLE ON ADP5586ACBZ-01-R7 ONLY. Figure 4. Internal Block Diagram Rev. 0 | Page 7 of 44 ADP5586 Data Sheet DEVICE ENABLE When sufficient voltage is applied to VDD and the RST pin is driven with a logic high level, the ADP5586 starts up in standby mode with all settings at default. The user can configure the device via the I2C interface. When the RST pin is low, the ADP5586 enters a reset state and all settings return to default. The RST pin features a debounce filter. If the ADP5586ACBZ-01-R7 device model is used, the RST pin acts as an additional row pin (R5). To reset the part without a reset pin, either bring VDD below the UVLO threshold, or set the SW_RESET bit to 1 (Register 0x3D, Bit 2). DEVICE OVERVIEW The ADP5586 contains 10 multiconfigurable input/output pins. Each pin can be programmed to enable the device to carry out its various functions, as follows: Keypad matrix decoding (five-column by five-row matrix maximum) General-purpose I/O expansion (up to 10 inputs/outputs) Reset generator Logic function building blocks (up to three inputs and one output) Two pulse generators All 10 input/output pins have an I/O structure as shown in Figure 5. Each I/O can be pulled up with a 100 kΩ or 300 kΩ resistor or pulled down with a 300 kΩ resistor. For logic output drive, each I/O has a 5 mA PMOS source and a 10 mA NMOS sink for a pushpull type output. For open-drain output situations, the 5 mA PMOS source is not enabled. For logic input applications, each I/O can be sampled directly or, alternatively, sampled through a debounce filter. The I/O structure shown in Figure 5 allows for all GPI and GPO functions, as well as PWM and clock divide functions. For key matrix scan and decode, the scanning circuit uses the 100 kΩ or 300 kΩ resistor for pulling up the keypad row pins and the 10 mA NMOS sinks for grounding the keypad column pins (see the Key Scan Control section for details about key decoding). Configuration of the device is carried out by programming an array of internal registers via the I2C interface. Feedback of device status and pending interrupts can be flagged to an external processor by using the INT pin. The ADP5586 is offered with three feature sets. Table 6 lists the options that are available for each model of the ADP5586. Contact your local Analog Devices, Inc., field applications engineers for availability and/or alternate configurations. Table 6. Matrix Options by Device Model1 Model ADP5586ACBZ-00-R7 ADP5586ACBZ-01-R7 VDD 100kΩ 300kΩ ADP5586ACBZ-03-R7 1 I/O Contact Analog Devices for availability of configurations not shown here. 300kΩ DEBOUNCE 11148-005 I/O DRIVE Description GPIO pull-down on startup 5-row × 5-column matrix Row 5 added to GPIOs 6-row × 5-column matrix Alternate I2C address (0x30) 5-row × 5-column matrix Figure 5. I/O Structure Rev. 0 | Page 8 of 44 Data Sheet ADP5586 FUNCTIONAL DESCRIPTION EVENT FIFO EC = 3 Before going into detail on the various blocks of the ADP5586, it is important to understand the function of the event FIFO that is featured in the ADP5586. The event FIFO (Register 0x03 to Register 0x12) can record as many as 16 events. By default, the FIFO primarily records key events, such as key press and key release. However, it is possible to configure the general-purpose input (GPI) and logic activity to generate event information on the FIFO, as well. An event count, EC[4:0] (Register 0x02, Bits[4:0]), is composed of five bits and works in tandem with the FIFO so that the user knows how many events are stored in the FIFO. FIRST READ KEY 3 RELEASED GPI 7 ACTIVE EC = 2 SECOND READ EC = 1 11148-007 Figure 7. FIFO Operation The FIFO registers always point to the top of the FIFO (that is, the location of EVENT1[7:0]). If the user tries to read back from any location in a FIFO, data is always obtained from the top of that FIFO. This ensures that events can be read back only in the order in which they occurred, thereby ensuring the integrity of the FIFO system. KEY EVENTS FIFO UPDATE EC[4:0] EVENT1[7:0] As stated previously, some of the on-board functions of the ADP5586 can be programmed to generate events on the FIFO. A FIFO update control block manages updates to the FIFO. If an I2C transaction is accessing any of the FIFO address locations, updates are paused until the I2C transaction is complete. EVENT2[7:0] EVENT3[7:0] EVENT4[7:0] EVENT5[7:0] EVENT6[7:0] EVENT7[7:0] EVENT8[7:0] 7 6 5 4 3 2 1 A FIFO overflow event occurs when more than 16 events are generated prior to an external processor reading a FIFO and clearing it. 0 EVENT9[7:0] EVENT10[7:0] EVENT11[7:0] If an overflow condition occurs, the overflow interrupt status bit is set (OVRFLOW_INT, Register 0x01, Bit 2). An interrupt is generated if an overflow interrupt is enabled, signaling to the processor that more than 16 events have occurred. EVENT8_IDENTIFIER[6:0] EVENT12[7:0] EVENT13[7:0] EVENT8_STATE EVENT15[7:0] EVENT16[7:0] 11148-006 EVENT14[7:0] GPI 7 ACTIVE EC = 0 OVRFLOW_INT GPI EVENTS KEY 3 RELEASED GPI 7 ACTIVE THIRD READ The FIFO consists of sixteen 8-bit elements. Bits[6:0] of each element store the event identifier, and Bit 7 stores the event state. The user can read the top element of the FIFO from any of the FIFO_1 through FIFO_16 registers. The ADP5586 has multiple copies of the FIFO register to allow reading of the complete FIFO with a single I2C burst read. LOGIC EVENTS KEY 3 PRESSED Figure 6. Breakdown of Eventx[7:0] Bits Rev. 0 | Page 9 of 44 ADP5586 Data Sheet KEY SCAN CONTROL General The 10 input/output pins can be configured to decode a keypad matrix up to a maximum size of 25 switches (5 × 5 matrix) using the PIN_CONFIG_A, PIN_CONFIG_B, and PIN_CONFIG_C registers (Registers 0x3A through 0x3C). Smaller matrices can also be configured, making the unused row and column pins available for other I/O functions. The R0 through R4 I/O pins comprise the rows of the keypad matrix. The C0 through C4 I/O pins comprise the columns of the keypad matrix. Pins that are used as rows are pulled up via the internal 300 kΩ (or 100 kΩ) resistors. Pins that are used as columns are driven low via the internal NMOS current sink. VDD KEY SCAN CONTROL R0 C2 1 2 3 4 5 6 7 8 9 R1 3 × 3 KEYPAD MATRIX R2 If Switch 6 in the matrix is pressed, R1 connects to C2. The key scan circuit senses that one of the row pins has been pulled low, and a key scan cycle begins. Key scanning involves driving all column pins high, then driving each column pin low, one at a time, and sensing whether a row pin is low. All row/column pairs are scanned; therefore, if multiple keys are pressed, they are detected. To prevent a glitch or narrow press time from being registered as a valid key press, the key scanner requires that the key be pressed for two scan cycles. The key scanner has a wait time between each scan cycle; therefore, the key must be pressed and held for at least this wait time to register as being pressed. If the key is continuously pressed, the key scanner continues to scan and wait for as long as the key is pressed. If Switch 6 is released, the connection between R1 and C2 breaks, and R1 is pulled high. The key scanner requires that the key be released for two scan cycles because the release of a key is not necessarily in sync with the key scanner. Up to two full wait/scan cycles may be required for a key to register as released. When the key registers as released, and no other keys are pressed, the key scanner returns to idle mode. For the remainder of this data sheet, the press/release status of a key is represented as simply a logic signal in the figures. A logic high level represents the key status as pressed, and a logic low level represents released. This eliminates the need to draw individual row/column signals when describing key events. KEY PRESSED Figure 8. Simplified Key Scan Block KEY x KEY RELEASED KEY RELEASED Figure 9. Logic Low: Key Released; Logic High: Key Pressed Rev. 0 | Page 10 of 44 11148-009 C1 11148-008 C0 Figure 8 shows a simplified representation of the key scan block using three row pins and three column pins connected to a small 3 × 3, nine-switch keypad matrix. When the key scanner is idle, the row pins are pulled high and the column pins are driven low. The key scanner operates by checking the row pins to see if they are low. Data Sheet ADP5586 PIN_CONFIG_A[7:0] PIN_CONFIG_B[7:0] PIN_CONFIG_C[7:0] RESET_TRIG_TIME[3:0] RESET_EVENT_A[7:0] RESET_EVENT_B[7:0] RESET_EVENT_C[7:0] RESET_INITIATE KEY SCAN CONTROL EVENT_INT OVRFLOW_INT I2C BUSY? EC[4:0] KEY EVENT FIFO UPDATE GPI EVENT LOGIC EVENT FIFO COLUMN SINK ON/OFF ROW SENSE 31 1 2 3 4 5 32 6 7 8 9 10 33 11 12 13 14 15 34 16 17 18 19 20 35 21 22 23 24 25 36 26 27 28 29 30 11148-010 I/O CONFIGURATION C0 C1 C2 C3 C4 R0 R1 R2 R3 R4 R5* *R5 AVAILABLE ON ADP5586ACBZ-01-R7 ONLY. Figure 10. Detailed Key Scan Block Use the PIN_CONFIG_A[5:0] and PIN_CONFIG_B[4:0] registers (Register 0x3A and Register 0x3B, respectively) to configure the I/Os for keypad decoding. The number label on each key switch represents the event identifier that is recorded if that switch is pressed. If all row/column pins are configured, it is possible to observe all 25 key identifiers on the FIFO. If a smaller 2 × 2 matrix is configured, for example, by using the C2 and C3 column pins and the R1 and R2 row pins, only four event identifiers (8, 9, 13, and 14) can possibly be observed on the FIFO, as shown in Figure 10. By default, the ADP5586 records key presses and releases on the FIFO. Figure 11 illustrates what happens when a single key is pressed and released. Initially, the key scanner is idle. When Key 3 is pressed, the scanner begins scanning through all configured row/column pairs. After the scan wait time, the scanner again scans through all configured row/column pairs and detects that Key 3 has remained pressed, which sets the EVENT_INT interrupt bit (Register 0x01, Bit 0). The event counter, EC[4:0] (Register 0x02, Bits[4:0]), is then incremented to 1; EVENT1_IDENTIFIER[6:0] of the FIFO is updated with its event identifier set to 3; and its EVENT1_STATE bit is set to 1, indicating a key press. KEY 3 KEY SCAN EVENT_INT EC[4:0] 1 FIFO KEY 3 PRESS 1 3 KEY 3 RELEASE 0 3 0 0 0 0 2 11148-011 Figure 10 shows a detailed representation of the key scan block and its associated control and status signals. When all row and column pins are used, a matrix of 25 unique keys can be scanned. Figure 11. Press and Release Event The key scanner continues the scan/wait cycles while the key remains pressed. If the scanner detects that the key has been released for two consecutive scan cycles, the event counter, EC[4:0], is incremented to 2, and EVENT2_IDENTIFIER[6:0] of the FIFO is updated with its event identifier set to 3. The EVENT2_STATE bit is set to 0, indicating a release. The key scanner returns to idle mode because no other keys are pressed. Rev. 0 | Page 11 of 44 ADP5586 Data Sheet The EVENT_INT interrupt (Register 0x01, Bit 0) can be triggered by both press and release key events. As shown in Figure 12, if Key 3 is pressed, EVENT_INT is asserted, EC[4:0] is updated, and the FIFO is updated. During the time that the key remains pressed, it is possible for the FIFO to be read, the event counter decremented to 0, and EVENT_INT cleared. When the key is finally released, EVENT_INT is asserted, the event counter is incremented, and the FIFO is updated with the release event information. KEY 3 EVENT_INT CLEARED EVENT_INT KEY 3 PRESS FIFO 1 3 0 0 0 0 0 0 0 FIFO READ FIFO 0 0 0 0 0 0 0 0 1 COL0 FIFO KEY 32 RELEASE 0 3 0 0 0 0 0 0 11148-012 1 Ghosting Ghosting is an occurrence where, given certain key press combinations on a keypad matrix, a false positive reading of an additional key is detected. Ghosting is created when three or more keys are pressed simultaneously on multiple rows or columns (see Figure 14). Key combinations that form a right angle on the keypad matrix may cause ghosting. KEY SCAN EC[4:0] The ADP5586 samples the state of the row/column pairs near the end of the precharge time. By extending this time, higher RC time constants can be accommodated. For applications that use physical buttons, the RC time constant is usually not an issue, but if external relay switches or multiple external muxes are attached to columns, the RC constant may increase. Using a smaller pull-up resistor on the rows (Register 0x3C, Bit 7) reduces the RC time constant. COL1 COL2 PRESS PRESS GHOST PRESS ROW0 Figure 12. Asserting the EVENT_INT Interrupt Keypad Extension Precharge Time During a scan sequence, a row scans through the columns sequentially. Each row/column combination is tested at a rate that is defined by the KEY_POLL_TIME bits (Register 0x39, Bits[1:0]). Within each of these scan times, each column is scanned for a time defined by the PRECHARGE_TIME bit (Register 0x39, Bit 3). As shown in Figure 13, the resistance capacitance (RC) time constant, which is defined by the series resistance (from pull-up/pull-down, for example) and parallel capacitance that is seen on the individual columns, affects the sampling of a key press event. ROW1 ROW2 ROW3 Figure 14. Ghosting Example: Column 0/Row 3 is a Ghost Key Due to a Short Among Row 0, Column 0, Column 2, and Row 3 During Key Press The solution to ghosting is to select a keypad matrix layout that takes into account three key combinations that are most likely to be pressed together. Multiple keys that are pressed across one row or across one column do not cause ghosting. Staggering keys so that they do not share a column also avoids ghosting. The most common practice is to place keys in the same row or column that are likely to be pressed at the same time. Some examples of keys that are likely to be pressed at the same time are as follows: • • • PRECHARGE TIME R1 SCAN ACTIVE VC2 KEY 9 (R1, C3) SAMPLED 11148-013 VC3 KEY 8 (R1, C2) SAMPLED 11148-014 As shown in Figure 10, the keypad can be extended if each row is connected directly to ground by a switch. If the switch placed between R0 and ground is pressed, the entire row is grounded. When the key scanner completes scanning, it normally detects Key 1 to Key 5 as being pressed; however, this unique condition is decoded by the ADP5586, and Key Event 31 is assigned to it. Up to five more key event assignments are possible, allowing the keypad size to extend up to 30. However, if one of the extended keys is pressed, none of the keys on that row is detectable. The activation of a ground key causes all other keys sharing that row to be undetectable. Figure 13. Precharge Time Rev. 0 | Page 12 of 44 The navigation keys in combination with the Select key The navigation keys in combination with the space bar The reset combination keys, such as CTRL + ALT + DEL Data Sheet ADP5586 GPI INPUT Each of the 10 input/output lines can be configured as a generalpurpose logic input line using the GPIO_INP_EN_A and GPIO_INP_EN_B registers (Register 0x29 and Register 0x2A). GPIO lines can be configured to allow both input and output at the same time. Figure 15 shows a detailed representation of the GPI scan and detect block and its associated control and status signals. PIN_CONFIG_A[7:0] GPIs can be programmed to generate FIFO events via the GPI_EVENT_EN_x registers (Register 0x1D and Register 0x1E). GPIs in this mode do not generate GPI_INT interrupts. Instead, they generate EVENT_INT interrupts (Register 0x01, Bit 0). Figure 17 shows several GPI lines and their effects on the FIFO and event count, EC[4:0]. GPI 7 GPI 4 GPI 2 PIN_CONFIG_B[7:0] GPIO_OUT_EN_A[7:0] EVENT_INT GPIO_OUT_EN_B[7:0] GPI_INT GPI SCAN GPIO_INP_EN_A[7:0] GPI_INT_STAT_A[5:0] GPIO_INP_EN_B[7:0] GPI_INT_LEVEL_A[7:0] GPI_INT_STAT_B[4:0] GPI_STATUS_A[5:0] GPI_INT_LEVEL_B[7:0] GPI_STATUS_B[4:0] EVENT_INT GPI_INTERRUPT_EN_A[7:0] EC[4:0] GPI_INTERRUPT_EN_B[7:0] 2 1 GPI_EVENT_EN_A[7:0] 3 4 5 6 RESET_TRIG_TIME[3:0] RESET_EVENT_A[7:0] GPI SCAN CONTROL RESET_EVENT_B[7:0] GPI 2 ACTIVE GPI 7 ACTIVE GPI 4 ACTIVE GPI 4 INACTIVE GPI 7 INACTIVE GPI 2 INACTIVE RESET_EVENT_C[7:0] I2C BUSY GPIO 1 (R1) (R2) (R3) GPIO 2 GPIO 3 GPIO 4 (R4) RST/(R5) GPIO 5 GPIO 6 GPIO 7 (C0) (C1) (C2) OVRFLOW_INT EC[4:0] KEY EVENT GPI EVENT Figure 17. Multiple GPI Example FIFO UPDATE LOGIC EVENT GPIO 8 GPIO 9 [FIFO1:FIFO16] (C3) GPIO 10 (C4) GPIO 11 11148-015 (R0) Figure 15. GPI Scan and Detect Block The current input state of each GPI can be read back using the GPI_STATUS_x registers (Register 0x15 and Register 0x16). Each GPI can be programmed to generate an interrupt via the GPI_INTERRUPT_EN_x registers (Register 0x1F and Register 0x20). The interrupt status is stored in the GPI_INT_ STAT_x registers (Register 0x13 and Register 0x14). GPI interrupts can be programmed to trigger on the positive or negative edge by configuring the GPI_INT_LEVEL_x registers (Register 0x1B and Register 0x1C). If any GPI interrupt is triggered, the master GPI_INT interrupt bit (Register 0x01, Bit 1) is also triggered. Figure 16 shows a single GPI and how it affects its corresponding status and the interrupt status bits. The GPI scanner is idle until it detects a level transition. It then scans the GPI inputs and updates accordingly. After updating, it returns immediately to idle; it does not scan/wait, like the key scanner. As a result, the GPI scanner can detect both edges of narrow pulses after they pass the 70 μs input debounce filter. GPO OUTPUT Each of the 10 input/output lines can be configured as a generalpurpose output (GPO) line using the GPIO_OUT_EN_A and GPIO_OUT_EN_B registers (Register 0x27 and Register 0x28). GPIO lines can be configured to allow both input and output at the same time (see Figure 5 for a detailed diagram of the I/O structure). GPO configuration and usage are programmed in the GPO_DATA_OUT_x and GPO_OUT_MODE_x registers (Register 0x23 to Register 0x26). See the Detailed Register Descriptions section for more information. GPI 4 GPI_INT_LEVEL_A[3] GPI_INTERRUPT_EN_A[3] GPI_STATUS_A[3] CLEARED BY READ CLEARED BY WRITE ‘1’ GPI_INT 11148-016 GPI_INT_STAT_A[3] FIFO 1 38 1 43 1 40 0 40 0 43 0 38 11148-017 GPI_EVENT_EN_B[7:0] Figure 16. Single GPI Example Rev. 0 | Page 13 of 44 ADP5586 Data Sheet LOGIC BLOCK When the R0 pin is used as an output for the logic block, the GPIO_1_OUT_EN bit (Register 0x27, Bit 0) must be enabled. Several of the ADP5586 input/output lines can be used as inputs and outputs for implementing some common logic functions. The outputs from the logic block can be configured to generate interrupts. They can also be configured to generate events on the FIFO. The R1, R2, and R3 input/output pins can be used as inputs, and the R0 input/output pin can be used as an output for the logic block. When the R1, R2, and R3 input lines are used, the GPIO_4_INP_EN, GPIO_3_INP_EN, and GPIO_2_INP_EN bits (Register 0x29, Bits[3:1]) must be enabled to accept inputs. Figure 19 shows a detailed diagram of the internal makeup of the logic block, illustrating the possible logic functions that can be implemented. LOGIC BLOCK (R1) LA (R2) (R3) LB LC LA_INV LB_INV LY (R0) LC_INV LY_INV FF_SET FF_CLR LOGIC_SEL[2:0] SET D Q CLR R3_EXTEND_CFG OVRFLOW_INT LOGIC_INT_LEVEL I2C BUSY LOGIC_EVENT_EN KEY EVENT GPI EVENT RESET_TRIG_TIME[3:0] RESET_EVENT_A[7:0] LOGIC EVENT/INT GENERATOR RESET_EVENT_B[7:0] RESET_EVENT_C[7:0] EC[4:0] FIFO UPDATE LOGIC EVENT FIFO 11148-018 EVENT_INT LOGIC_INT Figure 18. Logic Block Overview LA LA 0 OUT IN_LA 1 SEL IN_LA LA_INV AND 0 IN_LB AND IN_LC LB LB LB 0 OUT LC OUT OR 0 IN_LB LB_INV LC SEL MUX GND IN_LA 1 0 AND IN_LB SEL LC OUT 1 OR IN_LC IN_LC AND OR 1 SEL XOR FF IN_LA XOR 0 IN_LB 1 OUT OR SEL XOR IN_LC OUT XOR 1 IN_LA IN_LB SEL LC_INV IN_LC FF_SET 000 001 010 LY 011 OUT 100 LY 0 OUT LY 1 SEL 101 110 LY_INV 111 SEL[2:0] SET IN_LA D Q FF LOGIC_SEL[2:0] IN_LB CLR FF_CLR 0 OUT IN_LC 1 SEL R3_EXTEND_CFG = 1 Figure 19. Logic Block Internal Makeup Rev. 0 | Page 14 of 44 11148-019 LA Data Sheet ADP5586 RESET BLOCK The reset generation signals are useful in situations where the system processor has locked up and the system is unresponsive to input events. The user can press one of the reset event combinations and initiate a system-wide reset, which eliminates the need to remove the battery from the system and perform a hard reset. The ADP5586 features a reset block that can generate reset conditions if certain events are detected simultaneously. Up to three reset trigger events can be programmed for RESET_OUT. The event scan control blocks monitor whether these events are present for the duration of RESET_TRIG_TIME[3:0] (Register 0x2E, Bits[5:2]). If they are present, reset-initiate signals are sent to the reset generator blocks. The generated reset signal pulse width is programmable. RST RST_PASSTHRU_EN RESET_TRIG_TIME[3:0] RESET_EVENT_A[7:0] RESET_EVENT_B[7:0] RESET_EVENT_C[7:0] RESET_ INITIATE KEY SCAN CONTROL GPI SCAN CONTROL RESET GEN The use of the immediate trigger time setting (see Table 55) is recommended only in very low noise conditions with good debounce; otherwise, false triggering may occur. INTERRUPTS The INT pin can be asserted low if any of the internal interrupt sources is active. The user can select which internal interrupts interact with the external interrupt pin in Register 0x3E (see Table 71). Register 0x3D allows the user to choose whether the external interrupt pin remains asserted, or deasserts for 50 μs and then reasserts, as in the case where multiple internal interrupts are asserted and one is cleared (see Table 70). (R4) RESET_OUT RESET_PULSE_WIDTH[1:0] EVENT_INT EVENT_IEN GPI_INT 11148-020 Figure 20. Reset Blocks GPI_IEN INT DRIVE INT LOGIC_INT LOGIC_IEN The RESET_OUT signal uses the R4 I/O pin as its output, which must be configured via the GPIO_5_OUT_EN bit (Register 0x27, Bit 4) to enable the output function. A passthrough mode also allows the RST pin function to be output on the R4 pin. Rev. 0 | Page 15 of 44 OVRFLOW_INT OVRFLOW_IEN INT_CFG Figure 21. Asserting INT Low 11148-021 LOGIC BLOCK CONTROL ADP5586 Data Sheet PULSE GENERATORS To support active low applications, a signal inversion can be programmed in the PULSE_GEN_CONFIG register, using Bit 7 and Bit 3 (PULSE_GEN_x_INV). Delays can be introduced to create synchronized offsets between the channels. If both channels are enabled at the same time (that is, enabled from the same I2C write), the difference in delays is the offset between the channels. If a single channel is active and delays are to be synchronized, the user must first disable both pulse generators before enabling both pulse generators with the same I2C write command. The delay counter uses the same clock selection as the period counter. See Table 56 through Table 61 for more details. To enable pulse generator output on C1 and/or C0, the GPIO_8_OUT_EN bit and/or the GPIO_7_OUT_EN bit (Register 0x28, Bits[1:0]) must be enabled. The ADP5586 contains two pulse generators that are suitable for driving indicator LED drive signals, as well as watchdog timers and other extended time pulsed applications. The ADP5586 allows for eight bits of definition for both the on time and period of the generated pulse. To allow for extended timings, the user can choose between a 1 ms clock and a 125 ms clock to increment these timers. The PULSE_GEN_1_PERIOD and PULSE_GEN_2_PERIOD registers (Register 0x30 and Register 0x33, respectively) define the periods of the two pulse generators. Choosing a clock period of 125 ms in the PULSE_GEN_CONFIG register (Register 0x35, Bit 1 and Bit 5) allows for the setting of pulse generator periods of up to 31.875 sec. Setting the PULSE_GEN_x_ON_CLK bit to a step size of 125 ms and the PULSE_GEN_x_PRD_CLK bit to a step size of 1 ms is not a supported configuration. PULSE_GEN_x_ON_CLK 0 125ms CLOCK 1 ON TIME COUNTER x PULSE_GEN_x_ON_TIME[7:0] 0 1 PULSE_GEN_x_PRD_CLK PERIOD COUNTER x PULSE_GEN_x_PERIOD[7:0] PULSE_GEN_x_EN PULSE_GEN_x PULSE GENERATOR PULSE_GEN_x_INV DELAY COUNTER x 11148-022 1ms CLOCK PULSE_GEN_x_DELAY[7:0] Figure 22. Pulse Generator Block Diagram DELAY 1 SDA/SCL ON TIME 1 PULSE_GEN_1 PERIOD 1 ON TIME 2 DELAY 2 PERIOD 2 Figure 23. Example Pulse Generator Timing Rev. 0 | Page 16 of 44 11148-023 PULSE_GEN_2 Data Sheet ADP5586 REGISTER INTERFACE Register access to the ADP5586 is acquired via its I2C-compatible serial interface. The interface can support clock frequencies of up to 1 MHz. If the user is accessing the FIFO or key event counter (KEC), FIFO/KEC updates are paused. If the clock frequency is very low, events may not be recorded in a timely manner. FIFO or KEC updates can happen up to 23 µs after an interrupt is asserted because of the number of I2C cycles required to perform an I2C read or write. This delay should not present an issue to the user. R/W bit, which is set to 0 for a write cycle. The ADP55866 acknowledges the address byte by pulling the data line low. The address of the register to which data is to be written is sent next. The ADP5586 acknowledges the register pointer byte by pulling the data line low. The data byte to be written is sent next. The ADP5586 acknowledges the data byte by pulling the data line low. The pointer address is then incremented to write the next data byte, until it finishes writing the n data byte. The ADP5586 pulls the data line low after every byte, and a stop condition completes the sequence. Figure 24 shows a typical write sequence for programming an internal register. The cycle begins with a start condition, followed by the hard coded 7-bit device address, which for the ADP5586 is 0x34, followed by the R/W bit set to 0 for a write cycle. The ADP5586 acknowledges the address byte by pulling the data line low. The address of the register to which data is to be written is sent next. The ADP5586 acknowledges the register pointer byte by pulling the data line low. The data byte to be written is sent next. The ADP5586 acknowledges the data byte by pulling the data line low. A stop condition completes the sequence. Figure 26 shows a typical byte read sequence for reading internal registers. The cycle begins with a start condition followed by the 7-bit device address, followed by the R/W bit set to 0 for a write cycle. The ADP5586 acknowledges the address byte by pulling the data line low. The address of the register from which data is to be read is sent next. The ADP5586 acknowledges the register pointer byte by pulling the data line low. A start condition is repeated, followed by the 7-bit device address (0x34), followed by the R/W bit set to 1 for a read cycle. The ADP5586 acknowledges the address byte by pulling the data line low. The 8-bit data is then read. The host pulls the data line high (no acknowledge), and a stop condition completes the sequence. Figure 25 shows a typical multibyte write sequence for programming internal registers. The cycle begins with a start condition followed by the 7-bit device address (0x34), followed by the 0 = WRITE 7-BIT DEVICE ADDRESS 0 0 STOP 8-BIT REGISTER POINTER 0 8-BIT WRITE DATA 0 ADP5586 ACK ADP5586 ACK ADP5586 ACK 11148-024 START Figure 24. I2C Single Byte Write Sequence 0 = WRITE 7-BIT DEVICE ADDRESS 0 STOP 0 8-BIT REGISTER POINTER 0 WRITE BYTE 1 ADP5586 ACK ADP5586 ACK 0 0 WRITE BYTE 2 ADP5586 ACK 0 ADP5586 ACK WRITE BYTE n ADP5586 ACK 0 ADP5586 ACK Figure 25. I2C Multibyte Write Sequence 0 = WRITE 7-BIT DEVICE ADDRESS 0 0 REPEAT START 8-BIT REGISTER POINTER ADP5586 ACK 0 1 = READ 7-BIT DEVICE ADDRESS ADP5586 ACK Figure 26. I2C Single Byte Read Sequence Rev. 0 | Page 17 of 44 1 0 ADP5586 ACK STOP 8-BIT READ DATA 1 NO ACK 11148-026 START 11148-025 START ADP5586 Data Sheet Figure 27 shows a typical multibyte read sequence for reading internal registers. The cycle begins with a start condition followed by the 7-bit device address (0x34), followed by the R/W bit set to 0 for a write cycle. The ADP5586 acknowledges the address byte by pulling the data line low. The address of the register from which data is to be read is sent next. The ADP5586 acknowledges the register pointer byte by pulling the data line low. A start condition is repeated, followed by the 7-bit device address (0x34), REPEAT START 0 = WRITE 7-BIT DEVICE ADDRESS 0 0 8-BIT REGISTER POINTER ADP5586 ACK 0 1 = READ 7-BIT DEVICE ADDRESS ADP5586 ACK 1 0 STOP READ BYTE 1 ADP5586 ACK 2 Figure 27. I C Multibyte Read Sequence Rev. 0 | Page 18 of 44 0 READ BYTE 2 MASTER ACK 0 MASTER ACK 0 READ BYTE n MASTER ACK 1 NO ACK 11148-027 START followed by the R/W bit set to 1 for a read cycle. The ADP5586 acknowledges the address byte by pulling the data line low. Next, the 8-bit data is then read. The address pointer is then incremented to read the next data byte, and the host continues to pull the data line low for each byte (master acknowledge) until the n data byte is read. The host pulls the data line high (no acknowledge) after the last byte is read, and a stop condition completes the sequence. Data Sheet ADP5586 REGISTER MAP Table 7. Reg Addr 0x00 0x01 Register Name ID INT_STATUS R/W 1 R R/W Bit 7 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B Status FIFO_1 FIFO_2 FIFO_3 FIFO_4 FIFO_5 FIFO_6 FIFO_7 FIFO_8 FIFO_9 FIFO_10 FIFO_11 FIFO_12 FIFO_13 FIFO_14 FIFO_15 FIFO_16 GPI_INT_STAT_A GPI_INT_STAT_B GPI_STATUS_A GPI_STATUS_B R_PULL_CONFIG_A R_PULL_CONFIG_B R_PULL_CONFIG_C R_PULL_CONFIG_D GPI_INT_LEVEL_A R R R R R R R R R R R R R R R R R R R R R R/W R/W R/W R/W R/W 0x1C GPI_INT_LEVEL_B R/W 0x1D GPI_EVENT_EN_A R/W 0x1E GPI_EVENT_EN_B R/W 0x1F 0x21 GPI_INTERRUPT_ R/W EN_A GPI_INTERRUPT_ R/W EN_B DEBOUNCE_DIS_A R/W 0x22 DEBOUNCE_DIS_B R/W 0x23 R/W 0x27 GPO_DATA_ OUT_A GPO_DATA_ OUT_B GPO_OUT_ MODE_A GPO_OUT_ MODE_B GPIO_OUT_EN_A 0x28 GPIO_OUT_EN_B R/W Reserved LOGIC_STAT Reserved EVENT1_STATE EVENT1_IDENTIFIER[6:0] EVENT2_STATE EVENT2_IDENTIFIER[6:0] EVENT3_STATE EVENT3_IDENTIFIER[6:0] EVENT4_STATE EVENT4_IDENTIFIER[6:0] EVENT5_STATE EVENT5_IDENTIFIER[6:0] EVENT6_STATE EVENT6_IDENTIFIER[6:0] EVENT7_STATE EVENT7_IDENTIFIER[6:0] EVENT8_STATE EVENT8_IDENTIFIER[6:0] EVENT9_STATE EVENT9_IDENTIFIER[6:0] EVENT10_STATE EVENT10_IDENTIFIER[6:0] EVENT11_STATE EVENT11_IDENTIFIER[6:0] EVENT12_STATE EVENT12_IDENTIFIER[6:0] EVENT13_STATE EVENT13_IDENTIFIER[6:0] EVENT14_STATE EVENT14_IDENTIFIER[6:0] EVENT15_STATE EVENT15_IDENTIFIER[6:0] EVENT16_STATE EVENT16_IDENTIFIER[6:0] Reserved GPI_6_INT GPI_5_INT GPI_4_INT GPI_3_INT Reserved GPI_11_INT GPI_10_INT GPI_9_INT Reserved GPI_6_STAT GPI_5_STAT GPI_4_STAT GPI_3_STAT Reserved GPI_11_STAT GPI_10_STAT GPI_9_STAT R3_PULL_CFG R2_PULL_CFG R1_PULL_CFG Reserved R5_PULL_CFG C3_PULL_CFG C2_PULL_CFG C1_PULL_CFG Reserved Reserved GPI_6_ GPI_5_ GPI_4_ GPI_3_ INT_LEVEL INT_LEVEL INT_LEVEL INT_LEVEL Reserved GPI_11_ GPI_10_ GPI_9_ INT_LEVEL INT_LEVEL INT_LEVEL Reserved GPI_6_ GPI_5_ GPI_4_ GPI_3_ EVENT_EN EVENT_EN EVENT_EN EVENT_EN Reserved GPI_11_ GPI_10_ GPI_9_ EVENT_EN EVENT_EN EVENT_EN Reserved GPI_6_ GPI_5_ GPI_4_ GPI_3_ INT_EN INT_EN INT_EN INT_EN Reserved GPI_11_ GPI_10_ GPI_9_ INT_EN INT_EN INT_EN Reserved GPI_6_ GPI_5_ GPI_4_ GPI_3_ DEB_DIS DEB_DIS DEB_DIS DEB_DIS Reserved GPI_11_ GPI_10_ GPI_9_ DEB_DIS DEB_DIS DEB_DIS Reserved GPO_6_ GPO_5_ GPO_4_ GPO_3_ DATA DATA DATA DATA Reserved GPO_11_ GPO_10_ GPO_9_ DATA DATA DATA Reserved GPO_6_ GPO_5_ GPO_4_ GPO_3_ OUT_MODE OUT_MODE OUT_MODE OUT_MODE Reserved GPO_11_ GPO_10_ GPO_9_ OUT_MODE OUT_MODE OUT_MODE Reserved GPIO_6_ GPIO_5_ GPIO_4_ GPIO_3_ OUT_EN OUT_EN OUT_EN OUT_EN Reserved GPIO_11_ GPIO_10_ GPIO_9_ OUT_EN OUT_EN OUT_EN 0x20 0x24 0x25 0x26 R/W R/W R/W R/W Bit 6 Bit 5 MAN_ID Reserved Bit 4 Bit 3 LOGIC_INT Reserved Rev. 0 | Page 19 of 44 Bit 2 Bit 1 REV_ID OVRFLOW_ GPI_INT INT EC[4:0] Bit 0 EVENT_INT GPI_2_INT GPI_1_INT GPI_8_INT GPI_7_INT GPI_2_STAT GPI_1_STAT GPI_8_STAT GPI_7_STAT R0_PULL_CFG R4_PULL_CFG C0_PULL_CFG C4_PULL_CFG GPI_2_ GPI_1_ INT_LEVEL INT_LEVEL GPI_8_ GPI_7_ INT_LEVEL INT_LEVEL GPI_2_ GPI_1_ EVENT_EN EVENT_EN GPI_8_ GPI_7_ EVENT_EN EVENT_EN GPI_2_ GPI_1_ INT_EN INT_EN GPI_8_ GPI_7_ INT_EN INT_EN GPI_2_ GPI_1_ DEB_DIS DEB_DIS GPI_8_ GPI_7_ DEB_DIS DEB_DIS GPO_2_ GPO_1_ DATA DATA GPO_8_ GPO_7_ DATA DATA GPO_2_ GPO_1_ OUT_MODE OUT_MODE GPO_8_ GPO_7_ OUT_MODE OUT_MODE GPIO_2_ GPIO_1_ OUT_EN OUT_EN GPIO_8_ GPIO_7_ OUT_EN OUT_EN ADP5586 Data Sheet Reg Addr 0x29 Register Name GPIO_INP_EN_A R/W 1 R/W 0x2A GPIO_INP_EN_B R/W 0x2B RESET_EVENT_A R/W 0x2C RESET_EVENT_B R/W 0x2D RESET_EVENT_C R/W 0x2E RESET_CFG R/W 0x2F PULSE_GEN_1_ DELAY PULSE_GEN_1_ PERIOD PULSE_GEN_1_ ON_TIME PULSE_GEN_2_ DELAY PULSE_GEN_2_ PERIOD PULSE_GEN_2_ ON_TIME PULSE_GEN_ CONFIG R/W PULSE_GEN_1_DELAY, Bits[7:0] R/W PULSE_GEN_1_PERIOD, Bits[7:0] R/W PULSE_GEN_1_ON_TIME, Bits[7:0] R/W PULSE_GEN_2_DELAY, Bits[7:0] R/W PULSE_GEN_2_PERIOD, Bits[7:0] R/W PULSE_GEN_2_ON_TIME, Bits[7:0] 0x30 0x31 0x32 0x33 0x34 0x35 Bit 7 Bit 6 Reserved Bit 5 GPIO_6_ INP_EN Reserved RESET_EVENT_ A_LEVEL RESET_EVENT_ B_LEVEL RESET_EVENT_ C_LEVEL RESET_POL Bit 1 GPIO_2_ INP_EN GPIO_8_ INP_EN Bit 0 GPIO_1_ INP_EN GPIO_7_ INP_EN RESET_EVENT_C, Bits[6:0] RESET_TRIG_TIME, Bits[3:0] RST_PASSTHRU_EN PULSE_ GEN_1_INV PULSE_GEN_1_ ON_CLK R/W R/W R/W Reserved LY_INV 0x39 LOGIC_CFG LOGIC_FF_CFG LOGIC_INT_ EVENT_EN POLL_TIME_CFG 0x3A 0x3B 0x3C PIN_CONFIG_A PIN_CONFIG_B PIN_CONFIG_C R/W R/W R/W Reserved Reserved PULL_SELECT C0_EXTEND_CFG 0x3D GENERAL_CFG R/W OSC_EN 0x3E INT_EN R/W 1 Bit 2 GPIO_3_ INP_EN GPIO_9_ INP_EN RESET_EVENT_B, Bits[6:0] R/W 0x36 0x37 0x38 Bit 4 Bit 3 GPIO_5_ GPIO_4_ INP_EN INP_EN GPIO_11_ GPIO_10_ INP_EN INP_EN RESET_EVENT_A, Bits[6:0] R/W PULSE_ PULSE_ GEN_1_ GEN_1_EN PRD_CLK LC_INV LB_INV Reserved Reserved Reserved R5_CONFIG R4_EXTEND_ CFG R4_CONFIG C4_CONFIG C1_EXTEND_ CFG OSC_FREQ, Bits[1:0] Reserved PULSE_ GEN_2_INV LA_INV PRECHARGE_ TIME R3_CONFIG C3_CONFIG R3_EXTEND_ CFG Reserved LOGIC_IEN R means read, W means write, and R/W means read/write. Rev. 0 | Page 20 of 44 Reserved RESET_PULSE_WIDTH, Bits[1:0] PULSE_ GEN_2_ ON_CLK PULSE_ PULSE_ GEN_2_ GEN_2_EN PRD_CLK LOGIC_SEL, Bits[2:0] FF_SET FF_CLR LY_DBNC_ LOGIC_ LOGIC_ DIS EVENT_EN INT_LEVEL Reserved KEY_POLL_TIME, Bits[1:0] R2_CONFIG R1_CONFIG C2_CONFIG C1_CONFIG Reserved SW_RESET INT_CFG R0_CONFIG C0_CONFIG R0_ EXTEND_ CFG RST_CFG OVRFLOW_ IEN GPI_IEN EVENT_IEN Data Sheet ADP5586 DETAILED REGISTER DESCRIPTIONS Note that all registers default to 0000 0000, unless otherwise specified. ID, Register 0x00 Default: 0011 XXXX (where X = don’t care) Table 8. ID Bit Descriptions Bits [7:4] [3:0] Bit Name MAN_ID REV_ID Access Read only Read only Description Manufacturer ID, default = 0011 Revision ID INT_STATUS, Register 0x01 Table 9. INT_STATUS Bit Descriptions Bits [7:5] 4 Bit Name Reserved LOGIC_INT Access Reserved Read/write 3 2 Reserved OVERFLOW_INT Reserved Read/write 1 GPI_INT Read/write 0 EVENT_INT Read/write 1 Description 1 Reserved. 0 = no interrupt. 1 = interrupt due to a general logic condition. Reserved. 0 = no interrupt. 1 = interrupt due to an overflow condition. This bit is not set by a GPI that has been configured to update the FIFO and event count. This bit cannot be cleared until all GPI_x_INT bits are cleared. 0 = no interrupt. 1 = interrupt due to a general GPI condition. 0 = no interrupt. 1 = interrupt due to key event (press/release), GPI event (GPI programmed for FIFO updates), or logic event (programmed for FIFO updates). Interrupt bits are cleared by writing a 1 to the flag; writing a 0 or reading the flag has no effect. Status, Register 0x02 Table 10. Status Bit Descriptions Bits 7 6 Bit Name Reserved LOGIC_STAT Access Reserved Read only 5 [4:0] Reserved EC[4:0] Reserved Read only Description Reserved. 0 = output from logic block (LY) is low. 1 = output from logic block (LY) is high. Reserved. Event count value. Indicates how many events are currently stored on the FIFO. FIFO_1, Register 0x03 Table 11. FIFO_1 Bit Descriptions Bits 7 Bit Name EVENT1_STATE Access Read only [6:0] EVENT1_IDENTIFIER[6:0] Read only Description This bit represents the state of the event that is recorded in the EVENT1_IDENTIFIER[6:0] bits. For key events from Event 1 to Event 36, use the following settings: 1 = key is pressed. 0 = key is released. For GPI and logic events from Event 37 to Event 48, use the following settings: 1 = GPI/logic is active. 0 = GPI/logic is inactive. Active and inactive states for Event 37 to Event 48 are programmable. Contains the event identifier for the pin. See Table 12 for event decoding information. Rev. 0 | Page 21 of 44 ADP5586 Data Sheet Table 12. Event Decoding Event No. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Meaning No event Key 1 (R0, C0) Key 2 (R0, C1) Key 3 (R0, C2) Key 4 (R0, C3) Key 5 (R0, C4) Key 6 (R1, C0) Key 7 (R1, C1) Key 8 (R1, C2) Key 9 (R1, C3) Key 10 (R1, C4) Key 11 (R2, C0) Key 12 (R2, C1) Key 13 (R2, C2) Key 14 (R2, C3) Key 15 (R2, C4) Key 16 (R3, C0) Key 17 (R3, C1) Key 18 (R3, C2) Key 19 (R3, C3) Key 20 (R3, C4) Key 21 (R4, C0) Key 22 (R4, C1) Key 23 (R4, C2) Key 24 (R4, C3) Event No. 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 to 127 Meaning Key 25 (R4, C4) Key 26 (R5, C0) Key 27 (R5, C1) Key 28 (R5, C2) Key 29 (R5, C3) Key 30 (R5, C4) Key 31 (R0, GND) Key 32 (R1, GND) Key 33 (R2, GND) Key 34 (R3, GND) Key 35 (R4, GND) Key 36 (R5, GND) GPI 1 (R0) GPI 2 (R1) GPI 3 (R2) GPI 4 (R3) GPI 5 (R4) GPI 6 (R5) GPI 7 (C0) GPI 8 (C1) GPI 9 (C2) GPI 10 (C3) GPI 11 (C4) Logic Unused FIFO_2, Register 0x04 Table 13. FIFO_2 Bit Descriptions Bits 7 [6:0] Bit Name EVENT2_STATE EVENT2_IDENTIFIER[6:0] Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. FIFO_3, Register 0x05 Table 14. FIFO_3 Bit Descriptions Bits 7 [6:0] Bit Name EVENT3_STATE EVENT3_IDENTIFIER[6:0] FIFO_4, Register 0x06 Table 15. FIFO_4 Bit Descriptions Bits 7 [6:0] Bit Name EVENT4_STATE EVENT4_IDENTIFIER[6:0] FIFO_5, Register 0x07 Table 16. FIFO_5 Bit Descriptions Bits 7 [6:0] Bit Name EVENT5_STATE EVENT5_IDENTIFIER[6:0] Rev. 0 | Page 22 of 44 Data Sheet ADP5586 FIFO_6 Register 0x08 Table 17. FIFO_6 Bit Descriptions Bits 7 [6:0] Bit Name EVENT6_STATE EVENT6_IDENTIFIER[6:0] Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. FIFO_7, Register 0x09 Table 18. FIFO_7 Bit Descriptions Bits 7 [6:0] Bit Name EVENT7_STATE EVENT7_IDENTIFIER[6:0] FIFO_8, Register 0x0A Table 19. FIFO_8 Bit Descriptions Bits 7 [6:0] Bit Name EVENT8_STATE EVENT8_IDENTIFIER[6:0] FIFO_9, Register 0x0B Table 20. FIFO_9 Bit Descriptions Bits 7 [6:0] Bit Name EVENT9_STATE EVENT9_IDENTIFIER[6:0] FIFO_10, Register 0x0C Table 21. FIFO_10 Bit Descriptions Bits 7 [6:0] Bit Name EVENT10_STATE EVENT10_IDENTIFIER[6:0] Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. FIFO_11, Register 0x0D Table 22. FIFO_11 Bit Descriptions Bits 7 [6:0] Bit Name EVENT11_STATE EVENT11_IDENTIFIER[6:0] FIFO_12, Register 0x0E Table 23. FIFO_12 Bit Descriptions Bits 7 [6:0] Bit Name EVENT12_STATE EVENT12_IDENTIFIER[6:0] FIFO_13, Register 0x0F Table 24. FIFO_13 Bit Descriptions Bits 7 [6:0] Bit Name EVENT13_STATE EVENT13_IDENTIFIER[6:0] Rev. 0 | Page 23 of 44 ADP5586 Data Sheet FIFO_14, Register 0x10 Table 25. FIFO_14 Bit Descriptions Bits 7 [6:0] Bit Name EVENT14_STATE EVENT14_IDENTIFIER[6:0] Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. Access Read only Read only Description See Table 11 for bit descriptions. See Table 11 for bit descriptions. FIFO_15, Register 0x11 Table 26. FIFO_15 Bit Descriptions Bits 7 [6:0] Bit Name EVENT15_STATE EVENT15_IDENTIFIER[6:0] FIFO_16, Register 0x12 Table 27. FIFO_16 Bit Descriptions Bits 7 [6:0] Bit Name EVENT16_STATE EVENT16_IDENTIFIER[6:0] GPI_INT_STAT_A, Register 0x13 Table 28. GPI_INT_STAT_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPI_6_INT Access Reserved Read only 4 GPI_5_INT Read only 3 GPI_4_INT Read only 2 GPI_3_INT Read only 1 GPI_2_INT Read only 0 GPI_1_INT Read only Description Reserved. 0 = no interrupt 1 = interrupt due to GPI 6 (R5 pin). Cleared on read. 0 = no interrupt 1 = interrupt due to GPI 5 (R4 pin). Cleared on read. 0 = no interrupt 1 = interrupt due to GPI 4 (R3 pin). Cleared on read. 0 = no interrupt 1 = interrupt due to GPI 3 (R2 pin). Cleared on read. 0 = no interrupt 1 = interrupt due to GPI 2 (R1 pin). Cleared on read. 0 = no interrupt 1 = interrupt due to GPI 1 (R0 pin). Cleared on read. GPI_INT_STAT_B, Register 0x14 Table 29. GPI_INT_STAT_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPI_11_INT Access Reserved Read only 3 GPI_10_INT Read only 2 GPI_9_INT Read only 1 GPI_8_INT Read only 0 GPI_7_INT Read only Description Reserved. 0 = no interrupt. 1 = interrupt due to GPI 11 (C4 pin). Cleared on read. 0 = no interrupt. 1 = interrupt due to GPI 10 (C3 pin). Cleared on read. 0 = no interrupt. 1 = interrupt due to GPI 9 (C2 pin). Cleared on read. 0 = no interrupt. 1 = interrupt due to GPI 8 (C1 pin). Cleared on read. 0 = no interrupt. 1 = interrupt due to GPI 7 (C0 pin). Cleared on read. Rev. 0 | Page 24 of 44 Data Sheet ADP5586 GPI_STATUS_A, Register 0x15 Table 30. GPI_STATUS_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPI_6_STAT Access Reserved Read only 4 GPI_5_STAT Read only 3 GPI_4_STAT Read only 2 GPI_3_STAT Read only 1 GPI_2_STAT Read only 0 GPI_1_STAT Read only Description Reserved. 0 = GPI 6 (R5 pin) is low. 1 = GPI 6 (R5 pin) is high. 0 = GPI 5 (R4 pin) is low. 1 = GPI 5 (R4 pin) is high. 0 = GPI 4 (R3 pin) is low. 1 = GPI 4 (R3 pin) is high. 0 = GPI 3 (R2 pin) is low. 1 = GPI 3 (R2 pin) is high. 0 = GPI 2 (R1 pin) is low. 1 = GPI 2 (R1 pin) is high. 0 = GPI 1 (R0 pin) is low. 1 = GPI 1 (R0 pin) is high. GPI_STATUS_B, Register 0x16 Table 31. GPI_STATUS_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPI_11_STAT Access Reserved Read only 3 GPI_10_STAT Read only 2 GPI_9_STAT Read only 1 GPI_8_STAT Read only 0 GPI_7_STAT Read only Description Reserved. 0 = GPI 11 (C4 pin) is low. 1 = GPI 11 (C4 pin) is high. 0 = GPI 10 (C3 pin) is low. 1 = GPI 10 (C3 pin) is high. 0 = GPI 9 (C2 pin) is low. 1 = GPI 9 (C2 pin) is high. 0 = GPI 8 (C1 pin) is low. 1 = GPI 8 (C1 pin) is high. 0 = GPI 7 (C0 pin) is low. 1 = GPI 7 (C0 pin) is high. Rev. 0 | Page 25 of 44 ADP5586 Data Sheet R_PULL_CONFIG_A, Register 0x17 Default = 0101 0101 Table 32. R_PULL_CONFIG_A Bit Descriptions Bits [7:6] Bit Name R3_PULL_CFG Access Read/write [5:4] R2_PULL_CFG Read/write [3:2] R1_PULL_CFG Read/write [1:0] R0_PULL_CFG Read/write Description 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. R_PULL_CONFIG_B, Register 0x18 Default = 0000 0101 Table 33. R_PULL_CONFIG_B Bit Descriptions Bits [7:4] [3:2] Bit Name Reserved R5_PULL_CFG Access Reserved Read/write [1:0] R4_PULL_CFG Read/write Description Reserved. Reserved except for the ADP5586ACBZ-01-R7 options. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. R_PULL_CONFIG_C, Register 0x19 Default = 0101 0001 Table 34. R_PULL_CONFIG_C Bit Descriptions Bits [7:6] Bit Name C3_PULL_CFG Access Read/write [5:4] C2_PULL_CFG Read/write [3:2] C1_PULL_CFG Read/write [1:0] C0_PULL_CFG Read/write Description 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. Rev. 0 | Page 26 of 44 Data Sheet ADP5586 R_PULL_CONFIG_D, Register 0x1A Default = 0000 0001 Table 35. R_PULL_CONFIG_D Bit Descriptions Bits [7:2] [1:0] Bit Name Reserved C4_PULL_CFG Access Reserved Read/write Description Reserved. 00 = enables 300 kΩ pull-up resistor. 01 = enables 300 kΩ pull-down resistor. 10 = enables 100 kΩ pull-up resistor. 11 = disables all pull-up/pull-down resistors. GPI_INT_LEVEL_A, Register 0x1B Table 36. GPI_INT_LEVEL_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPI_6_INT_LEVEL Access Reserved Read/write 4 GPI_5_INT_LEVEL Read/write 3 GPI_4_INT_LEVEL Read/write 2 GPI_3_INT_LEVEL Read/write 1 GPI_2_INT_LEVEL Read/write 0 GPI_1_INT_LEVEL Read/write Description Reserved. 0 = GPI 6 interrupt is active low (GPI_6_INT sets whenever R5 is low). 1 = GPI 6 interrupt is active high (GPI_6_INT sets whenever R5 is high). 0 = GPI 5 interrupt is active low (GPI_5_INT sets whenever R4 is low). 1 = GPI 5 interrupt is active high (GPI_5_INT sets whenever R4 is high). 0 = GPI 4 interrupt is active low (GPI_4_INT sets whenever R3 is low). 1 = GPI 4 interrupt is active high (GPI_4_INT sets whenever R3 is high). 0 = GPI 3 interrupt is active low (GPI_3_INT sets whenever R2 is low). 1 = GPI 3 interrupt is active high (GPI_3_INT sets whenever R2 is high). 0 = GPI 2 interrupt is active low (GPI_2_INT sets whenever R1 is low). 1 = GPI 2 interrupt is active high (GPI_2_INT sets whenever R1 is high). 0 = GPI 1 interrupt is active low (GPI_1_INT sets whenever R0 is low). 1 = GPI 1 interrupt is active high (GPI_1_INT sets whenever R0 is high). GPI_INT_LEVEL_B, Register 0x1C Table 37. GPI_INT_LEVEL_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPI_11_INT_LEVEL Access Reserved Read/write 3 GPI_10_INT_LEVEL Read/write 2 GPI_9_INT_LEVEL Read/write 1 GPI_8_INT_LEVEL Read/write 0 GPI_7_INT_LEVEL Read/write Description Reserved. 0 = GPI 11 interrupt is active low (GPI_11_INT sets whenever R10 is low). 1 = GPI 11 interrupt is active high (GPI_11_INT sets whenever R10 is high). 0 = GPI 10 interrupt is active low (GPI_10_INT sets whenever R9 is low). 1 = GPI 10 interrupt is active high (GPI_10_INT sets whenever R9 is high). 0 = GPI 9 interrupt is active low (GPI_9_INT sets whenever R8 is low). 1 = GPI 9 interrupt is active high (GPI_9_INT sets whenever R8 is high). 0 = GPI 8 interrupt is active low (GPI_8_INT sets whenever R7 is low). 1 = GPI 8 interrupt is active high (GPI_8_INT sets whenever R7 is high). 0 = GPI 7 interrupt is active low (GPI_7_INT sets whenever R6 is low). 1 = GPI 7 interrupt is active high (GPI_7_INT sets whenever R6 is high). Rev. 0 | Page 27 of 44 ADP5586 Data Sheet GPI_EVENT_EN_A, Register 0x1D Table 38. GPI_EVENT_EN_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPI_6_EVENT_EN Access Reserved Read/write 4 GPI_5_EVENT_EN Read/write 3 GPI_4_EVENT_EN Read/write 2 GPI_3_EVENT_EN Read/write 1 GPI_2_EVENT_EN Read/write 0 GPI_1_EVENT_EN Read/write 1 Description Reserved. 0 = disables GPI events from GPI 6. 1 = allows GPI 6 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 5. 1 = allows GPI 5 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 4. 1 = allows GPI 4 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 3. 1 = allows GPI 3 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 2. 1 = allows GPI 2 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 1. 1 = allows GPI 1 activity to generate events on the FIFO.1 GPIs in this mode are considered FIFO events and can be used for unlock purposes. GPI activity in this mode causes EVENT_INT interrupts. GPIs in this mode do not generate GPI_INT interrupts. GPI_EVENT_EN_B, Register 0x1E Table 39. GPI_EVENT_EN_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPI_11_EVENT_EN Access Reserved Read/write 3 GPI_10_EVENT_EN Read/write 2 GPI_9_EVENT_EN Read/write 1 GPI_8_EVENT_EN Read/write 0 GPI_7_EVENT_EN Read/write 1 Description Reserved. 0 = disables GPI events from GPI 11. 1 = allows GPI 11 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 10. 1 = allows GPI 10 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 9. 1 = allows GPI 9 activity to generate events on the FIFO.1 0 = disables GPI events from GPI 8. 1 = allows GPI 8activity to generate events on the FIFO.1 0 = disables GPI events from GPI 7. 1 = allows GPI 7 activity to generate events on the FIFO.1 GPIs in this mode are considered FIFO events and can be used for unlock purposes. GPI activity in this mode causes EVENT_INT interrupts. GPIs in this mode do not generate GPI_INT interrupts. Rev. 0 | Page 28 of 44 Data Sheet ADP5586 GPI_INTERRUPT_EN_A, Register 0x1F Table 40. GPI_INTERRUPT_EN_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPI_6_INT_EN Access Reserved Read/write 4 GPI_5_INT_EN Read/write 3 GPI_4_INT_EN Read/write 2 GPI_3_INT_EN Read/write 1 GPI_2_INT_EN Read/write 0 GPI_1_INT_EN Read/write Description Reserved. 0 = GPI_6_INT is disabled. 1 = GPI_6_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_6_INT is set and the GPI 6 interrupt condition is met. 0 = GPI_5_INT is disabled. 1 = GPI_5_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_5_INT is set and the GPI 5 interrupt condition is met. 0 = GPI_4_INT is disabled. 1 = GPI_4_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_4_INT is set and the GPI 4 interrupt condition is met. 0 = GPI_3_INT is disabled. 1 = GPI_3_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_3_INT is set and the GPI 3 interrupt condition is met. 0 = GPI_2_INT is disabled. 1 = GPI_2_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_2_INT is set and the GPI 2 interrupt condition is met. 0 = GPI_1_INT is disabled. 1 = GPI_1_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_1_INT is set and the GPI 1 interrupt condition is met. GPI_INTERRUPT_EN_B, Register 0x20 Table 41. GPI_INTERRUPT_EN_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPI_11_INT_EN Access Reserved Read/write 3 GPI_10_INT_EN Read/write 2 GPI_9_INT_EN Read/write 1 GPI_8_INT_EN Read/write 0 GPI_7_INT_EN Read/write Description Reserved. 0 = GPI_11_INT is disabled. 1 = GPI_11_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_11_INT is set and the GPI 11 interrupt condition is met. 0 = GPI_10_INT is disabled. 1 = GPI_10_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_10_INT is set and the GPI 10 interrupt condition is met. 0 = GPI_9_INT is disabled. 1 = GPI_9_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_9_INT is set and the GPI 9 interrupt condition is met. 0 = GPI_8_INT is disabled. 1 = GPI_8_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_8_INT is set and the GPI 8 interrupt condition is met. 0 = GPI_7_INT is disabled. 1 = GPI_7_INT enabled. Asserts the GPI_INT bit (Register 0x01, Bit 1) if GPI_7_INT is set and the GPI 7 interrupt condition is met. Rev. 0 | Page 29 of 44 ADP5586 Data Sheet DEBOUNCE_DIS_A, Register 0x21 Table 42. DEBOUNCE_DIS_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPI_6_DEB_DIS Access Reserved Read/write 4 GPI_5_DEB_DIS Read/write 3 GPI_4_DEB_DIS Read/write 2 GPI_3_DEB_DIS Read/write 1 GPI_2_DEB_DIS Read/write 0 GPI_1_DEB_DIS Read/write Description Reserved. 0 = debounce enabled on GPI 6. 1 = debounce disabled on GPI 6. 0 = debounce enabled on GPI 5. 1 = debounce disabled on GPI 5. 0 = debounce enabled on GPI 4. 1 = debounce disabled on GPI 4. 0 = debounce enabled on GPI 3. 1 = debounce disabled on GPI 3. 0 = debounce enabled on GPI 2. 1 = debounce disabled on GPI 2. 0 = debounce enabled on GPI 1. 1 = debounce disabled on GPI 1. DEBOUNCE_DIS_B, Register 0x22 Table 43. DEBOUNCE_DIS_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPI_11_DEB_DIS Access Reserved Read/write 3 GPI_10_DEB_DIS Read/write 2 GPI_9_DEB_DIS Read/write 1 GPI_8_DEB_DIS Read/write 0 GPI_7_DEB_DIS Read/write Description Reserved. 0 = debounce enabled on GPI 11. 1 = debounce disabled on GPI 11. 0 = debounce enabled on GPI 10. 1 = debounce disabled on GPI 10. 0 = debounce enabled on GPI 9. 1 = debounce disabled on GPI 9. 0 = debounce enabled on GPI 8. 1 = debounce disabled on GPI 8. 0 = debounce enabled on GPI 7. 1 = debounce disabled on GPI 7. GPO_DATA_OUT_A, Register 0x23 Table 44. GPO_DATA_OUT_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPO_6_DATA Access Reserved Read/write 4 GPO_5_DATA Read/write 3 GPO_4_DATA Read/write 2 GPO_3_DATA Read/write 1 GPO_2_DATA Read/write 0 GPO_1_DATA Read/write Description Reserved. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. Rev. 0 | Page 30 of 44 Data Sheet ADP5586 GPO_DATA_OUT_B, Register 0x24 Table 45. GPO_DATA_OUT_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPO_11_DATA Access Reserved Read/write 3 GPO_10_DATA Read/write 2 GPO_9_DATA Read/write 1 GPO_8_DATA Read/write 0 GPO_7_DATA Read/write Description Reserved. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. 0 = sets output low. 1 = sets output high. GPO_OUT_MODE_A, Register 0x25 Table 46. GPO_OUT_MODE_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPO_6_OUT_MODE Access Reserved Read/write 4 GPO_5_OUT_MODE Read/write 3 GPO_4_OUT_MODE Read/write 2 GPO_3_ OUT_MODE Read/write 1 GPO_2_OUT_MODE Read/write 0 GPO_1_OUT_MODE Read/write Description Reserved. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. GPO_OUT_MODE_B, Register 0x26 Table 47. GPO_OUT_MODE_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPO_11_OUT_MODE Access Reserved Read/write 3 GPO_10_OUT_MODE Read/write 2 GPO_9_OUT_MODE Read/write 1 GPO_8_OUT_MODE Read/write 0 GPO_7_OUT_MODE Read/write Description Reserved. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. 0 = push-pull. 1 = open drain. Rev. 0 | Page 31 of 44 ADP5586 Data Sheet GPIO_OUT_EN_A, Register 0x27 Table 48. GPIO_OUT_EN_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPIO_6_OUT_EN Access Reserved Read/write 4 GPIO_5_OUT_EN Read/write 3 GPIO_4_OUT_EN Read/write 2 GPIO_3_OUT_EN Read/write 1 GPIO_2_OUT_EN Read/write 0 GPIO_1_OUT_EN Read/write Description Reserved. 0 = GPIO 6 output disabled. 1 = GPIO 6 output enabled. 0 = GPIO 5 output disabled. 1 = GPIO 5 output enabled. 0 = GPIO 4 output disabled. 1 = GPIO 4 output enabled. 0 = GPIO 3 output disabled. 1 = GPIO 3 output enabled. 0 = GPIO 2 output disabled. 1 = GPIO 2 output enabled. 0 = GPIO 1 output disabled. 1 = GPIO 1 output enabled. GPIO_OUT_EN_B, Register 0x28 Table 49. GPIO_OUT_EN_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPIO_11_OUT_EN Access Reserved Read/write 3 GPIO_10_OUT_EN Read/write 2 GPIO_9_OUT_EN Read/write 1 GPIO_8_OUT_EN Read/write 0 GPIO_7_OUT_EN Read/write Description Reserved. 0 = GPIO 11 output disabled. 1 = GPIO 11 output enabled. 0 = GPIO 10 output disabled. 1 = GPIO 10 output enabled. 0 = GPIO 9 output disabled. 1 = GPIO 9 output enabled. 0 = GPIO 8 output disabled. 1 = GPIO 8 output enabled. 0 = GPIO 7 output disabled. 1 = GPIO 7 output enabled. GPIO_INP_EN_A, Register 0x29 Table 50. GPIO_INP_EN_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved GPIO_6_INP_EN Access Reserved Read/write 4 GPIO_5_INP_EN Read/write 3 GPIO_4_INP_EN Read/write 2 GPIO_3_INP_EN Read/write 1 GPIO_2_INP_EN Read/write 0 GPIO_1_INP_EN Read/write Description Reserved. 0 = GPIO 6 input disabled. 1 = GPIO 6 input enabled. 0 = GPIO 5 input disabled. 1 = GPIO 5 input enabled. 0 = GPIO 4 input disabled. 1 = GPIO 4 input enabled. 0 = GPIO 3 input disabled. 1 = GPIO 3 input enabled. 0 = GPIO 2 input disabled. 1 = GPIO 2 input enabled. 0 = GPIO 1 input disabled. 1 = GPIO 1 input enabled. Rev. 0 | Page 32 of 44 Data Sheet ADP5586 GPIO_INP_EN_B, Register 0x2A Table 51. GPIO_INP_EN_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved GPIO_11_INP_EN Access Reserved Read/write 3 GPIO_10_INP_EN Read/write 2 GPIO_9_INP_EN Read/write 1 GPIO_8_INP_EN Read/write 0 GPIO_7_INP_EN Read/write Description Reserved. 0 = GPIO 11 input disabled. 1 = GPIO 11 input enabled. 0 = GPIO 10 input disabled. 1 = GPIO 10 input enabled. 0 = GPIO 9 input disabled. 1 = GPIO 9 input enabled. 0 = GPIO 8 input disabled. 1 = GPIO 8 input enabled. 0 = GPIO 7 input disabled. 1 = GPIO 7 input enabled. RESET_EVENT_A, Register 0x2B Table 52. RESET_EVENT_A Bit Descriptions Bits 7 Bit Name RESET_EVENT_A_LEVEL Access Read/write [6:0] RESET_EVENT_A[6:0] Read/write Description Defines which level the first reset event should be to generate the RESET_OUT signal. For key events, use the following settings: 0 = inactive event used as a reset condition. 1 = active event used as a reset condition. For GPIs and logic outputs configured for FIFO updates, use the following settings: 0 = not applicable; releases not used for reset generation. 1 = press is used as a reset event. Defines an event that can be used to generate the RESET_OUT signal. Up to three events can be defined for generating the RESET_OUT signal, using RESET_EVENT_A[6:0], RESET_EVENT_B[6:0], and RESET_EVENT_C[6:0]. If one of the registers is 0, that register is not used for reset generation. All reset events must be detected at the same time to trigger the reset. RESET_EVENT_B, Register 0x2C Table 53. RESET_EVENT_B Bit Descriptions Bits 7 Bit Name RESET_EVENT_B_LEVEL Access Read/write [6:0] RESET_EVENT_B[6:0] Read/write Description Defines which level the second reset event should be to generate the RESET_OUT signal. Refer to Table 52. Defines an event that can be used to generate the RESET_OUT signal. See Table 12. RESET_EVENT_C, Register 0x2D Table 54. RESET_EVENT_C Bit Descriptions Bits 7 Bit Name RESET_EVENT_C_LEVEL Access Read/write [6:0] RESET_EVENT_C[6:0] Read/write Description Defines which level the third reset event should be to generate the RESET_OUT signal. Refer to Table 52. Defines an event that can be used to generate the RESET_OUT signal. See Table 12. Rev. 0 | Page 33 of 44 ADP5586 Data Sheet RESET_CFG, Register 0x2E Table 55. RESET_CFG Bit Descriptions Bits 7 Bit Name RESET_POL Access Read/write 6 RST_PASSTHRU_EN Read/write [5:2] RESET_TRIG_TIME[3:0] Read/write [1:0] RESET_PULSE_WIDTH[1:0] Read/write Description Sets the polarity of the RESET_OUT signal. 0 = RESET_OUT is active low. 1 = RESET_OUT is active high. Allows the RST pin to override (OR with) the RESET_OUT signal. Defines the length of time that the reset events must be active before a RESET_OUT signal is generated. All events must be active at the same time for the same duration. 0000 = immediate. 0001 = 1.0 sec. 0010 = 1.5 sec. 0011 = 2.0 sec. 0100 = 2.5 sec. 0101 = 3.0 sec. 0110 = 3.5 sec. 0111 = 4.0 sec. 1000 = 5.0 sec. 1001 = 6.0 sec. 1010 = 7.0 sec. 1011 = 8.0 sec. 1100 = 9.0 sec. 1101 = 10.0 sec. 1110 = 11.0 sec. 1111 = 12.0 sec. Defines the pulse width of the RESET_OUT signal. 00 = 500 μs. 01 = 1 ms. 10 = 2 ms. 11 = 10 ms. PULSE_GEN_1_DELAY, Register 0x2F Table 56. PULSE_GEN_1_DELAY Bit Descriptions Bits [7:0] Bit Name PULSE_GEN_1_DELAY[7:0] Access Read/write Description Defines initial delay from the first clock of the first enable of Pulse Generator 1. Delay is defined as the number of clock cycles of the chosen period clock speed (see Register 0x35). For example, PULSE_GEN_1_PRD_CLK PULSE_GEN_1_DELAY 0 1 0 0 ms 0000 0000 1 125 ms 0000 0001 2 250 ms 0000 0010 3 375 ms 0000 0011 4 500 ms 0000 0100 … … … 254 ms 31.750 sec 1111 1110 255 ms 31.875 sec 1111 1111 Rev. 0 | Page 34 of 44 Data Sheet ADP5586 PULSE_GEN_1_PERIOD, Register 0x30 Table 57. PULSE_GEN_1_PERIOD Bit Descriptions Bits [7:0] Bit Name PULSE_GEN_1_PERIOD[7:0] Access Read/write Description Defines period of Pulse Generator 1. Period is defined as the number of clock cycles of the chosen period clock speed (see Register 0x35). For example, PULSE_GEN_1_PRD_CLK 0 1 PULSE_GEN_1_PERIOD 0 ms 0 ms 0000 0000 125 ms 1 ms 0000 0001 250 ms 2 ms 0000 0010 375 ms 3 ms 0000 0011 500 ms 4 ms 0000 0100 … … … 31.750 sec 254 ms 1111 1110 31.875 sec 255 ms 1111 1111 PULSE_GEN_1_ON_TIME, Register 0x31 Table 58. PULSE_GEN_1_ON_TIME Bit Descriptions Bits [7:0] Bit Name PULSE_GEN_1_ON_TIME[7:0] Access Read/write Description Defines on time of Pulse Generator 1. On time is defined as the number of clock cycles of the chosen clock speed (see Register 0x35). For example, PULSE_GEN_1_ON_CLK PULSE_GEN_1_ON_TIME 0 1 0 ms 0 ms 0000 0000 125 ms 1 ms 0000 0001 250 ms 2 ms 0000 0010 375 ms 3 ms 0000 0011 500 ms 4 ms 0000 0100 … … … 31.750 sec 254 ms 1111 1110 31.875 sec 255 ms 1111 1111 PULSE_GEN_2_DELAY, Register 0x32 Table 59. PULSE_GEN_2_DELAY Bit Descriptions Bits [7:0] Bit Name PULSE_GEN_2_DELAY[7:0] Access Read/write Description Defines initial delay from the first clock of the first enable of Pulse Generator 2. Delay is defined as the number of clock cycles of the chosen period clock speed (see Register 0x35). For example, PULSE_GEN_2_PRD_CLK 0 1 PULSE_GEN_2_DELAY 0 ms 0 ms 0000 0000 125 ms 1 ms 0000 0001 250 ms 2 ms 0000 0010 375 ms 3 ms 0000 0011 500 ms 4 ms 0000 0100 … … … 31.750 sec 254 ms 1111 1110 31.875 sec 255 ms 1111 1111 Rev. 0 | Page 35 of 44 ADP5586 Data Sheet PULSE_GEN_2_PERIOD, Register 0x33 Table 60. PULSE_GEN_2_PERIOD Bit Descriptions Bits [7:0] Bit Name PULSE_GEN_2_PERIOD[7:0] Access Read/write Description Defines period of Pulse Generator 2. Period is defined as the number of clock cycles of the chosen period clock speed (see Register 0x35). For example, PULSE_GEN_2_PRD_CLK 0 1 PULSE_GEN_2_PERIOD 0 ms 0 ms 0000 0000 125 ms 1 ms 0000 0001 250 ms 2 ms 0000 0010 375 ms 3 ms 0000 0011 500 ms 4 ms 0000 0100 … … … 31.750 sec 254 ms 1111 1110 31.875 sec 255 ms 1111 1111 PULSE_GEN_2_ON_TIME, Register 0x34 Table 61. PULSE_GEN_2_ON_TIME Bit Descriptions Bits [7:0] Bit Name PULSE_GEN_2_ON_TIME[7:0] Access Read/write Description Defines on time of Pulse Generator 2. On time is defined as the number of clock cycles of the chosen clock speed (see Register 0x35). For example, PULSE_GEN_2_ON_CLK PULSE_GEN_2_ON_TIME 0 1 0000 0000 0 ms 0 ms 0000 0001 1 ms 125 ms 0000 0010 2 ms 250 ms 0000 0011 3 ms 375 ms 0000 0100 4 ms 500 ms … … … 1111 1110 254 ms 31.750 sec 1111 1111 255 ms 31.875 sec Rev. 0 | Page 36 of 44 Data Sheet ADP5586 PULSE_GEN_CONFIG, Register 0x35 Table 62. PULSE_GEN_CONFIG Bit Descriptions Bits 7 Bit Name PULSE_GEN_1_INV Access Read/write 6 PULSE_GEN_1_ON_CLK Read/write 5 PULSE_GEN_1_PRD_CLK Read/write 4 PULSE_GEN_1_EN Read/write 3 PULSE_GEN_2_INV Read/write 2 PULSE_GEN_2_ON_CLK Read/write 1 PULSE_GEN_2_PRD_CLK Read/write 0 PULSE_GEN_2_EN Read/write Description 0 = no inversion on Pulse Generator 1. On time is defined as the length of time a high signal is output. 1 = inverted output on Pulse Generator 1. On time is defined as the length of time a high signal is output. Defines clock speed for the on time of Pulse Generator 1. 0 = 1 ms. 1 = 125 ms. Setting PULSE_GEN_1_ON_CLK = 1 and PULSE_GEN_1_PRD_CLK = 0 is not a supported configuration. Defines clock speed for the period of Pulse Generator 1. 0 = 1 ms. 1 = 125 ms. Setting PULSE_GEN_1_ON_CLK = 1 and PULSE_GEN_1_PRD_CLK = 0 is not a supported configuration. 0 = Pulse Generator 1 is disabled. The off signal is output constantly. 1= Pulse Generator 1 is enabled. 0 = no inversion on Pulse Generator 2. On time is defined as the length of time a high signal is output. 1 = inverted output on Pulse Generator 2. On time is defined as the length of time a low signal is output. Defines clock speed for the on time of Pulse Generator 2. 0 = 1 ms. 1 = 125 ms. Setting PULSE_GEN_2_ON_CLK = 1 and PULSE_GEN_2_PRD_CLK = 0 is not a supported configuration. Defines clock speed for the period of Pulse Generator 2. 0 = 1 ms. 1 = 125 ms. Setting PULSE_GEN_2_ON_CLK = 1 and PULSE_GEN_2_PRD_CLK = 0 is not a supported configuration. 0 = Pulse Generator 2 is disabled. The off signal is output constantly. 1 = Pulse Generator 2 is enabled. LOGIC_CFG, Register 0x36 Table 63. LOGIC_CFG Bit Descriptions Bits 7 6 Bit Name Reserved LY_INV Access Reserved Read/write 5 LC_INV Read/write 4 LB_INV Read/write 3 LA_INV Read/write [2:0] LOGIC_SEL[2:0] Read/write Description Reserved. 0 = the LY output is not inverted before passing into the logic block. 1 = inverts the LY output from the logic block. 0 = the LC input is not inverted before passing into the logic block. 1 = inverts LC input before passing it into the logic block. 0 = the LB input is not inverted before passing into the logic block. 1 = inverts LB input before passing it into the logic block. 0 = the LA input is not inverted before passing into the logic block. 1 = inverts LA input before passing it into the logic block. Configures the digital mux for the logic block. Refer to Figure 19. 000 = off/disable. 001 = AND. 010 = OR. 011 = XOR. 100 = FF. 101 = IN_LA. 110 = IN_LB. 111 = IN_LC. Rev. 0 | Page 37 of 44 ADP5586 Data Sheet LOGIC_FF_CFG, Register 0x37 Table 64. LOGIC_FF_CFG Bit Descriptions Bits [7:2] 1 Bit Name Reserved FF_SET Access Reserved Read/write 0 FF_CLR Read/write Description Reserved. 0 = FF not set in the logic block. Refer to Figure 19. 1 = sets FF in the logic block. 0 = FF not cleared in the logic block. Refer to Figure 19. 1 = clears FF in the logic block. LOGIC_INT_EVENT_EN, Register 0x38 Table 65. LOGIC_INT_EVENT_EN Bit Descriptions Bits [7:3] 2 Bit Name Reserved LY_DBNC_DIS Access Reserved Read/write 1 LOGIC_EVENT_EN Read/write 0 LOGIC_INT_LEVEL Read/write Description Reserved. 0 = output of the logic block is debounced before entering the event/interrupt block. 1 = output of the logic block is not debounced before entering the event/interrupt block. Use with caution because glitches may generate interrupts prematurely. 0 = LY cannot generate interrupt. 1 = allows LY activity to generate events on the FIFO. Configures the logic level of LY that generates an interrupt. 0 = LY is active low. 1 = LY is active high. POLL_TIME_CFG, Register 0x39 Table 66. POLL_TIME_CFG Bit Descriptions Bits [7:4] 3 Bit Name Reserved PRECHARGE_TIME Access Reserved Read/write 2 [1:0] Reserved KEY_POLL_TIME[1:0] Reserved Read/write Description Reserved. Defines time to allow precharge. 0 = 100 µs. 1 = 200 µs. Reserved. Configures time between consecutive scan cycles. 00 = 10 ms. 01 = 20 ms. 10 = 30 ms. 11 = 40 ms. PIN_CONFIG_A, Register 0x3A Table 67. PIN_CONFIG_A Bit Descriptions Bits [7:6] 5 Bit Name Reserved R5_CONFIG Access Reserved Read/write 4 R4_CONFIG Read/write 3 R3_CONFIG Read/write 2 R2_CONFIG Read/write 1 R1_CONFIG Read/write 0 R0_CONFIG Read/write Description Reserved. 0 = GPIO 6. 1 = Row 5. 0 = GPIO 5 (see R4_EXTEND_CFG in Table 69 for alternate configuration, RESET). 1 = Row 4 0 = GPIO 4 (see R3_EXTEND_CFG in Table 69 for alternate configuration, LC). 1 = Row 3 0 = GPIO 3 1 = Row 2 0 = GPIO 2 1 = Row 1 0 = GPIO 1/LY (see R0_EXTEND_CFG in Table 69 for alternate configuration, LY). 1 = Row 0 Rev. 0 | Page 38 of 44 Data Sheet ADP5586 PIN_CONFIG_B, Register 0x3B Table 68. PIN_CONFIG_B Bit Descriptions Bits [7:5] 4 Bit Name Reserved C4_CONFIG Access Reserved Read/write 3 C3_CONFIG Read/write 2 C2_CONFIG Read/write 1 C1_CONFIG Read/write 0 C0_CONFIG Read/write Description Reserved. 0 = GPIO 11. 1 = Column 4. 0 = GPIO 10. 1 = Column 3. 0 = GPIO 9. 1 = Column 2. 0 = GPIO 8 (see C1_EXTEND_CFG in Table 69 for alternate configuration, PULSE_GEN_2). 1 = Column 1. 0 = GPIO 7 (see C0_EXTEND_CFG in Table 69 for alternate configuration, PULSE_GEN_1). 1 = Column 0. PIN_CONFIG_C, Register 0x3C Table 69. PIN_CONFIG_C Bit Descriptions Bits 7 Bit Name PULL_SELECT Access Read/write 6 C0_EXTEND_CFG Read/write 5 R4_EXTEND_CFG Read/write 4 C1_EXTEND_CFG Read/write 3 R3_EXTEND_CFG Read/write [2:1] 0 Reserved R0_EXTEND_CFG Reserved Read/write Description 0 = 300 kΩ resistor used for row pull-up during key scanning. 1 = 100 kΩ resistor used for row pull-up during key scanning. 0 = C0 remains configured as GPIO 7. 1 = C0 reconfigured as PULSE_GEN_1 output. 0 = R4 remains configured as GPIO 5. 1 = R4 reconfigured as RESET_OUT output. 0 = C1 remains configured as GPIO 8. 1 = C1 reconfigured as PULSE_GEN_2 output. 0 = R3 remains configured as GPIO 4. 1 = R3 reconfigured as LC input for the logic block. Reserved. 0 = R0 remains configured as GPIO 1. 1 = R0 reconfigured as LY output from the logic block. GENERAL_CFG, Register 0x3D Table 70. GENERAL_CFG Bit Descriptions Bits 7 Bit Name OSC_EN Access Read/write [6:5] OSC_FREQ[1:0] Read/write [4:3] 2 Reserved SW_RESET Reserved Read/write 1 INT_CFG Read/write 0 RST_CFG Read/write Description 0 = disables internal 800 kHz oscillator. 1 = enables internal 800 kHz oscillator. Sets the input clock frequency fed from the base 800 kHz oscillator to the digital core. Slower frequencies result in less quiescent current, but key and GPI scan times increase. 00 = 50 kHz. 01 = 100 kHz. 10 = 200 kHz. 11 = 400 kHz. Reserved. Software reset. Set to 1 to reset the ADP5586. This function is similar to bringing RST low, then high. Wait at least 200 μs before reprogramming the device. Configures the behavior of the INT pin if the user tries to clear it while an interrupt is pending. 0 = INT pin remains asserted if an interrupt is pending. 1 = INT pin deasserts for 50 μs and reasserts if an interrupt is pending. Configures the response of the ADP5586 to the RST pin and the SW_RESET bit. 0 = the ADP5586 resets if RST is low. 1 = the ADP5586 does not reset if RST is low. Rev. 0 | Page 39 of 44 ADP5586 Data Sheet INT_EN, Register 0x3E Table 71. INT_EN Bit Descriptions Bits [7:5] 4 Bit Name Reserved LOGIC_IEN Access Reserved Read/write Description Reserved. 0 = Logic 1 interrupt is disabled. 1 = asserts the INT pin if the LOGIC_INT bit is set (Register 0x01, Bit 4). 3 2 Reserved OVRFLOW_IEN Reserved Read/write Reserved. 0 = overflow interrupt is disabled. 1 = asserts the INT pin if the OVRFLOW_INT bit is set (Register 0x01, Bit 2). 1 GPI_IEN Read/write 0 = GPI interrupt is disabled. 1 = asserts the INT pin if the GPI_INT is set (Register 0x01, Bit 1). 0 EVENT_IEN Read/write 0 = event interrupt is disabled. 1 = asserts the INT pin if the EVENT_INT is set (Register 0x01, Bit 0). Rev. 0 | Page 40 of 44 Data Sheet ADP5586 APPLICATIONS SCHEMATIC INT RST HOST PROCESSOR VDD SCL SDA VDD KP/LOGIC OUTPUT/GPI/GPO KP/LOGIC INPUT/GPI/GPO SDA KP/LOGIC INPUT/GPI/GPO SCL RST VDD ADP5586 KP/LOGIC INPUT/GPI/GPO KP/RESET OUTPUT/GPI/GPO I2C INTERFACE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 UVLO POR OSCILLATOR R0 R1 KEY SCAN AND DECODE R2 R3 INT R4 GPI SCAN AND DECODE C4 C3 C2 I/O CONFIG C1 LOGIC RESET GEN C0 REGISTERS PULSE GEN 1 GND Figure 28. Typical Applications Schematic Rev. 0 | Page 41 of 44 11148-028 PULSE GEN 2 ADP5586 Data Sheet OUTLINE DIMENSIONS 1.630 1.590 SQ 1.550 4 3 2 1 A BALL 1 IDENTIFIER B 1.20 REF C D 0.40 REF TOP VIEW BOTTOM VIEW (BALL SIDE DOWN) (BALL SIDE UP) 0.545 0.500 0.455 SIDE VIEW 0.300 0.260 0.220 SEATING PLANE 0.230 0.200 0.170 01-20-2011-A COPLANARITY 0.05 Figure 29. 16-Ball Wafer Level Chip Scale Package [WLCSP] (CB-16-10) Dimensions shown in millimeters ORDERING GUIDE Model 1 Temperature Range Package Description Package Option ADP5586ACBZ-00-R7 ADP5586ACBZ-01-R7 ADP5586ACBZ-03-R7 ADP5586CB-EVALZ −40°C to +85°C −40°C to +85°C −40°C to +85°C 16-Ball Wafer Level Chip Scale Package [WLCSP] 16-Ball Wafer Level Chip Scale Package [WLCSP] 16-Ball Wafer Level Chip Scale Package [WLCSP] WLCSP Evaluation Board CB-16-10 CB-16-10 CB-16-10 CB-16-10 1 Z = RoHS Compliant Part. Rev. 0 | Page 42 of 44 Data Sheet ADP5586 NOTES Rev. 0 | Page 43 of 44 ADP5586 Data Sheet NOTES I2C refers to a communications protocol originally developed by Philips Semiconductors (now NXP Semiconductors). ©2013 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. D11148-0-3/13(0) Rev. 0 | Page 44 of 44