EVALUATION KIT AVAILABLE I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 General Description The MAX7324 2-wire serial-interfaced peripheral features 16 I/O ports that are divided into eight push-pull outputs and eight inputs. Each input features selectable internal pullups, overvoltage protection to +6V, and transition detection with an interrupt output. All input ports are continuously monitored for state changes (transition detection). The interrupt is latched, allowing detection of transient changes. Any combination of inputs can be selected using the interrupt mask to assert the INT output. When the MAX7324 is subsequently accessed through the serial interface, any pending interrupt is cleared. The push-pull outputs are rated to sink 20mA and are capable of driving LEDs. The RST input clears the serial interface, terminating any I2C communication to or from the MAX7324. The MAX7324 uses two address inputs with four-level logic to allow 16 I2C slave addresses. The slave address also enables or disables internal 40k pullups in groups of four ports. The MAX7324 is one device in a family of pin-compatible port expanders with a choice of input ports, open-drain I/O ports, and push-pull output ports (see Table 1). The MAX7324 is available in 24-pin QSOP and TQFN packages, and is specified over the -40C to +125C automotive temperature range. Applications Cell Phones SAN/NAS Servers Notebooks Satellite Radio O12 O11 17 O14 18 O13 O15 TOP VIEW AD0 Pin Configurations 16 15 14 13 SCL 19 12 O10 SDA 20 11 O9 V+ 21 10 O8 MAX7324 INT 22 RST 23 EXPOSED PAD 1 2 3 4 5 6 I0 I1 I2 I3 I4 I5 AD2 24 + 9 GND 8 I7 7 I6 TQFN (4mm x 4mm) Pin Configurations continued at end of data sheet. 19-3785; Rev 1; 5/14 Features 400kHz, +6V-Tolerant I2C Serial Interface +1.71V to +5.5V Operating Voltage Eight Push-Pull Outputs Eight Input Ports with Maskable, Latching Transition Detection Input Ports are Overvoltage Protected to +6V Transient Changes are Latched, Allowing Detection Between Read Operations INT Output Alerts Change on Any Selection of Inputs AD0 and AD2 Inputs Select from 16 Slave Addresses Low 0.6A Standby Current -40C to +125C Temperature Range Ordering Information PART PINPACKAGE TEMP RANGE MAX7324AEG+ -40C to +125C 24 QSOP MAX7324ATG+ -40C to +125C 24 TQFN-EP* (4mm x 4mm) +Denotes a lead(Pb)-free/RoHS-compliant package. *EP = Exposed pad. Selector Guide OPENPUSH-PULL DRAIN OUTPUTS OUTPUTS PART INPUTS INTERRUPT MASK MAX7324 8 Yes -- 8 MAX7325 Up to 8 -- Up to 8 8 MAX7326 4 Yes -- 12 MAX7327 Up to 4 -- Up to 4 12 Typical Application Circuit and Functional Diagram appear at end of data sheet. I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Absolute Maximum Ratings (All voltages referenced to GND.) Supply Voltage V+....................................................-0.3V to +6V SCL, SDA, AD0, AD2, RST, INT, I0-I7....................-0.3V to +6V O8-O15........................................................-0.3V to (V+ + 0.3V) O8-O15 Output Current....................................................25mA SDA Sink Current............................................................... 10mA INT Sink Current.................................................................10mA Total V+ Current..................................................................50mA Total GND Current ............................................................100mA Continuous Power Dissipation QSOP (derate 9.5mW/C over TA = +70C)................761.9mW TQFN (derate 20.8mW/C over TA = +70C)..........1666.7mW Operating Temperature Range.......................... -40C to +125C Junction Temperature.......................................................+150C Storage Temperature Range............................. -65C to +150C Lead Temperature (soldering, 10s).................................. +300C Stresses beyond those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. DC Electrical Characteristics (V+ = +1.71V to +5.5V, TA = -40C to +125C, unless otherwise noted. Typical values are at V+ = +3.3V, TA = +25C.) (Note 1) PARAMETER SYMBOL CONDITIONS TYP UNITS 5.50 V V+ Power-On Reset Voltage VPOR V+ falling 1.6 V Standby Current (Interface Idle) ISTB SCL and SDA and other digital inputs at V+ 0.6 1.9 A fSCL = 400kHz; other digital inputs at V+ 23 55 A I+ Input High-Voltage SDA, SCL, AD0, AD2, RST, I0-I7 VIH Input Low-Voltage SDA, SCL, AD0, AD2, RST, I0-I7 VIL Input Leakage Current SDA, SCL, AD0, AD2, RST, I0-I7 IIH, IIL 1.71 MAX Operating Supply Voltage Supply Current (Interface Running) TA = -40C to +125C MIN V+ < 1.8V 0.8 x V+ V+ 1.8 0.7 x V+ V+ < 1.8V 0.2 x V+ V+ 1.8 0.3 x V+ SDA, SCL, AD0, AD2, RST, I0-I7 at V+ or GND -0.2 Input Capacitance SDA, SCL, AD0, AD2, RST, I0-I7 Output Low Voltage O8-O15 O8-O15 VOL VOH 90 180 V+ = +1.71V, ISINK = 5mA (TQFN) 90 230 V+ = +2.5V, ISINK = 10mA (QSOP) 110 210 V+ = +2.5V, ISINK = 10mA (TQFN) 110 260 V+ = +3.3V, ISINK = 15mA (QSOP) 130 230 V+ = +3.3V, ISINK = 15mA (TQFN) 130 280 V+ = +5V, ISINK = 20mA (QSOP) 140 250 140 300 V+ = +1.71V, ISOURCE = 2mA V+ - 250 V+ - 30 V+ = +2.5V, ISOURCE = 5mA V+ - 360 V+ - 70 V+ = +3.3V, ISOURCE = 5mA V+ - 260 V+ - 100 V+ = +5V, ISOURCE = 10mA V+ - 360 V+ - 120 VOLSDA ISINK = 6mA Output Low-Voltage INT VOLINT ISINK = 5mA www.maximintegrated.com RPU 25 V A pF V+ = +1.71V, ISINK = 5mA (QSOP) Output Low-Voltage SDA Port Input Pullup Resistor +0.2 10 V+ = +5V, ISINK = 20mA (TQFN) Output High Voltage V mV mV 250 mV 130 250 mV 40 55 kW Maxim Integrated 2 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Port and Interrupt INT Timing Characteristics (V+ = +1.71V to +5.5V, TA = -40C to +125C, unless otherwise noted. Typical values are at V+ = +3.3V, TA = +25C.) (Note 1) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS 4 s Port-Output Data Valid tPPV CL 100pF Port-Input Setup Time tPSU CL 100pF 0 s Port-Input Hold Time tPH CL 100pF 4 s INT Input Data Valid Time tIV CL 100pF 4 s INT Reset Delay Time from STOP tIP CL 100pF 4 s INT Reset Delay Time from Acknowledge tIR CL 100pF 4 s Timing Characteristics (V+ = +1.71V to +5.5V, TA = -40C to +125C, unless otherwise noted. Typical values are at V+ = +3.3V, TA = +25C.) (Note 1) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS 400 kHz Serial-Clock Frequency fSCL Bus Free Time Between a STOP and a START Condition tBUF 1.3 s Hold Time (Repeated) START Condition tHD,STA 0.6 s Repeated START Condition Setup Time tSU,STA 0.6 s STOP Condition Setup Time tSU,STO Data Hold Time tHD,DAT Data Setup Time tSU,DAT 100 ns SCL Clock Low Period tLOW 1.3 s SCL Clock High Period tHIGH 0.7 s 0.6 s (Note 2) 0.9 s Rise Time of Both SDA and SCL Signals, Receiving tR (Notes 3, 4) 20 + 0.1Cb 300 ns Fall Time of Both SDA and SCL Signals, Receiving tF (Notes 3, 4) 20 + 0.1Cb 300 ns Fall Time of SDA Transmitting tF,TX (Notes 3, 4) 20 + 0.1Cb 250 ns Pulse Width of Spike Suppressed tSP (Note 5) Capacitive Load for Each Bus Line Cb (Note 3) RST Pulse Width tW 500 ns tRST 1 s RST Rising to START Condition Setup Time 50 ns 400 pF Note 1: All parameters are tested at TA = +25C. Specifications over temperature are guaranteed by design. Note 2: A master device must provide a hold time of at least 300ns for the SDA signal (referred to VIL of the SCL signal) to bridge the undefined region of SCL's falling edge. Note 3: Guaranteed by design. Note 4: Cb = total capacitance of one bus line in pF. tR and tF measured between 0.3 x V+ and 0.7 x V+. ISINK 6mA. Note 5: Input filters on the SDA and SCL inputs suppress noise spikes less than 50ns. www.maximintegrated.com Maxim Integrated 3 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Typical Operating Characteristics (TA = +25C, unless otherwise noted.) 1.4 1.2 V+ = +5.0V 1.0 0.6 0.4 OUTPUT-VOLTAGE LOW vs. TEMPERATURE 0.20 V+ = +3.3V ISINK = 15mA 0.15 V+ = +5.0V ISINK = 20mA 0.10 V+ = +2.5V ISINK = 10mA 0.05 0 V+ = +1.71V ISINK = 5mA -40 -25 -10 5 20 35 50 65 80 95 110 125 TEMPERATURE (C) MAX7324 toc02 40 30 V+ = +3.3V 20 0 -40 -25 -10 5 20 35 50 65 80 95 110 125 TEMPERATURE (C) 0.25 V+ = +5.0V V+ = +2.5V V+ = +1.71V 10 -40 -25 -10 5 20 35 50 65 80 95 110 125 TEMPERATURE (C) OUTPUT-VOLTAGE HIGH vs. TEMPERATURE 6 OUTPUT-VOLTAGE HIGH (V) 0 fSCL = 400kHz 50 V+ = +1.71V 0.2 OUTPUT-VOLTAGE LOW (V) V+ = +3.3V V+ = +2.5V 0.8 MAX7324 toc03 STANDBY CURRENT (A) 1.6 60 SUPPLY CURRENT (A) fSCL = 0kHz 1.8 MAX7324 toc01 2.0 SUPPLY CURRENT vs. TEMPERATURE V+ = +5.0V ISOURCE = 10mA 5 4 MAX7324 toc04 STANDBY CURRENT vs. TEMPERATURE V+ = +3.3V ISOURCE = 5mA 3 V+ = +2.5V ISOURCE = 5mA V+ = +1.71V ISOURCE = 2mA 2 1 0 -40 -25 -10 5 20 35 50 65 80 95 110 125 TEMPERATURE (C) Pin Description PIN NAME FUNCTION QSOP TQFN 1 22 INT Active-Low Interrupt Output. INT is an open-drain output. 2 23 RST 3, 21 24, 18 AD2, AD0 4-11 1-8 I0-I7 Active-Low Reset Input. Drive RST low to clear the 2-wire interface. Address Inputs. Select device slave address with AD0 and AD2. Connect AD0 and AD2 to either GND, V+, SCL, or SDA to give four logic combinations (see Tables 2 and 3). Input Ports. I0 to I7 are CMOS-logic inputs. 12 9 GND Ground 13-20 10-17 08-015 22 19 SCL I2C-Compatible Serial Clock Input 23 20 SDA I2C-Compatible Serial Data I/O 24 21 -- EP V+ EP www.maximintegrated.com Output Ports. O8-O15 are push-pull outputs rated at 20mA. Positive Supply Voltage. Bypass V+ to GND with a ceramic capacitor of at least 0.047F. Exposed Paddle. Connect exposed pad to GND. Maxim Integrated 4 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Detailed Description MAX7324-MAX7327 Family Comparison The MAX7324-MAX7327 family consists of four pin-compatible, 16-port expanders that integrate the function of the MAX7320 and one of either the MAX7319, MAX7321, MAX7322, or MAX7323. Functional Overview The MAX7324 is a general-purpose port expander operating from a +1.71V to +5.5V supply with eight push-pull outputs and eight CMOS input ports that are overvoltage protected to +6V. The MAX7324 is set to two of 32 I2C slave addresses (see Tables 2 and 3) using address select inputs AD0 and AD2, and is accessed over an I2C serial interface up to 400kHz. The eight outputs and eight inputs have different slave addresses. The eight push-pull outputs have the 101xxxx addresses and the eight inputs have the addresses with 110xxxx. The RST input clears the serial interface in case of a bus lockup, terminating any serial transaction to or from the MAX7324. The input ports offer latching transition detection feature. All input ports are continuously monitored for changes. An input change sets 1 of 8 flag bits that identify the changed input(s). All flags are cleared upon a subsequent read or write transaction to the MAX7324. Table 1. MAX7319-MAX7329 Family Comparison PART I2C INPUT SLAVE INPUTS INTERRUPT ADDRESS MASK OPENDRAIN OUTPUTS PUSHPULL OUTPUTS CONFIGURATION 16-PORT EXPANDERS 8 inputs and 8 push-pull outputs version: 8 input ports with programmable latching transition detection interrupt and selectable pullups. MAX7324 8 Yes -- 8 101xxxx And 110xxxx 8 push-pull outputs with selectable default logic levels. Offers maximum versatility for automatic input monitoring. An interrupt mask selects which inputs cause an interrupt on transitions, and transition flags identify which inputs have changed (even if only for a transient) since the ports were last read. 8 I/O and 8 push-pull outputs version: 8 open-drain I/O ports with latching transition detection interrupt and selectable pullups. 8 push-pull outputs with selectable default logic levels MAX7325 www.maximintegrated.com Up to 8 -- Up to 8 8 Open-drain outputs can level shift the logic-high state to a higher or lower voltage than V+ using external pullup resistors, but pullups draw current when output is low. Any open-drain port can be used as an input by setting the open-drain output to logichigh. Transition flags identify which open-drain port inputs have changed (even if only for a transient) since the ports were last read. Maxim Integrated 5 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Table 1. MAX7319-MAX7329 Family Comparison (continued) PART I2C INPUT SLAVE INPUTS INTERRUPT ADDRESS MASK OPENDRAIN OUTPUTS PUSHPULL OUTPUTS CONFIGURATION 4 input-only, 12 push-pull output versions: 4 input ports with programmable latching transition detection interrupt and selectable pullups. MAX7326 4 Yes -- 12 101xxxx and 110xxxx 12 push-pull outputs with selectable default logic levels. Offers maximum versatility for automatic input monitoring. An interrupt mask selects which inputs cause an interrupt on transitions, and transition flags identify which inputs have changed (even if only for a transient) since the ports were last read. 4 I/O, 12 push-pull output versions: 4 open-drain I/O ports with latching transition detection interrupt and selectable pullups. 12 push-pull outputs with selectable default logic levels. MAX7327 Up to 4 -- Up to 4 12 Open-drain outputs can level shift the logic-high State to a higher or lower voltage than V+ using External pullup resistors, but pullups draw current when output is low. Any open-drain port can be used as an input by setting the open-drain output to logichigh. Transition flags identify which open-drain port inputs have changed (even if only for a transient) since the ports were last read. 8-PORT EXPANDERS MAX7319 110xxxx 8 Yes -- -- Input-only versions: 8 input ports with programmable latching transition detection interrupt and selectable pullups. MAX7320 101xxxx -- -- -- 8 Output-only versions: 8 push-pull outputs with selectable power-up default levels. MAX7321 110xxxx Up to 8 -- Up to 8 -- I/O versions: 8 open-drain I/O ports with latching transition detection interrupt and selectable pullups. 4 4 input-only, 4 output-only versions: 4 input ports with programmable latching transition detection interrupt and selectable pullups. 4 push-pull outputs with selectable power-up default levels. MAX7322 110xxxx www.maximintegrated.com 4 Yes -- Maxim Integrated 6 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Table 1. MAX7319-MAX7329 Family Comparison (continued) PART I2C INPUT SLAVE INPUTS INTERRUPT ADDRESS MASK MAX7323 110xxxx Up to 4 -- OPENDRAIN OUTPUTS Up to 4 PUSHPULL OUTPUTS 4 CONFIGURATION 4 I/O, 4 output-only versions: 4 open-drain I/O ports with latching transition detection interrupt and selectable pullups. 4 push-pull outputs with selectable power-up default levels. MAX7328 MAX7329 0100xxx 0111xxx Up to 8 -- Up to 8 A latching interrupt output, INT, is programmed to flag input data changes on input ports through an interrupt mask register. By default, data changes on any input port force INT to a logic-low. The interrupt output INT and all transition flags are cleared when the MAX7324 is next accessed through the serial interface. Internal pullup resistors to V+ are selected by the address select inputs, AD0 and AD2. Pullups are enabled on the input ports in groups of four (see Table 2). Initial Power-Up On power-up, the transition detection logic is reset, and INT is deasserted. The interrupt mask register is set to 0xFF, enabling the interrupt output for transitions on all eight input ports. The transition flags are cleared to indicate no data changes. The power-up default states of the eight push-pull outputs are set according to the I2C slave address selection inputs, AD0 and AD1 (see Table 3). Power-On Reset The MAX7324 contains an integral power-on-reset (POR) circuit that ensures all registers are reset to a known state on power-up. When V+ rises above VPOR (1.6V max), the POR circuit releases the registers and 2-wire interface for normal operation. When V+ drops below VPOR, the MAX7324 resets all register contents to the POR defaults (Tables 2 and 3). RST Input The RST input voids any I2C transaction involving the MAX7324, forcing the MAX7324 into the I2C STOP condition. A reset does not affect the interrupt output (INT). www.maximintegrated.com -- PCF8574-, PCF8574A-compatible versions: 8 open-drain I/O ports with nonlatching transition detection interrupt and pullups on all ports. Standby Mode When the serial interface is idle, the MAX7324 automatically enters standby mode, drawing minimal supply current. Slave Address, Power-Up Default Logic Levels, and Input Pullup Selection Address inputs AD0 and AD2 determine the MAX7324 slave address and select which inputs have pullup resistors. Pullups are enabled on the input ports in groups of four (see Table 2). The MAX7324 slave address is determined on each I2C transmission, regardless of whether the transmission is actually addressing the MAX7324. The MAX7324 distinguishes whether address inputs AD0 and AD2 are connected to SDA or SCL instead of fixed logic levels V+ or GND during this transmission. This means that the MAX7324 slave address can be configured dynamically in the application without cycling the device supply. On initial power-up, the MAX7324 cannot decode the address inputs AD0 and AD2 fully until the first I2C transmission. AD0 and AD2 initially appear to be connected to V+ or GND. This is important because the address selection determines which inputs have pullups applied. However, at power-up, the I2C SDA and SCL bus interface lines are high impedance at the inputs of every device (master or slave) connected to the bus, including the MAX7324. This is guaranteed as part of the I2C specification. Therefore, address inputs AD0 and AD2 that are connected to SDA or SCL during power-up appear to be connected to V+. The pullup selection logic uses AD0 to select whether pullups are enabled for ports I0-I3, Maxim Integrated 7 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Table 2. MAX7324 Address Map for Inputs I0-I7 PIN CONNECTION DEVICE ADDRESS 40kW INPUT PULLUP ENABLED AD2 AD0 A6 A5 A4 A3 A2 A1 A0 I7 I6 I5 I4 I3 I2 I1 I0 SCL GND 1 1 0 0 0 0 0 Y Y Y Y -- -- -- -- SCL V+ 1 1 0 0 0 0 1 Y Y Y Y Y Y Y Y SCL SCL 1 1 0 0 0 1 0 Y Y Y Y Y Y Y Y SCL SDA 1 1 0 0 0 1 1 Y Y Y Y Y Y Y Y SDA GND 1 1 0 0 1 0 0 Y Y Y Y -- -- -- -- SDA V+ 1 1 0 0 1 0 1 Y Y Y Y Y Y Y Y SDA SCL 1 1 0 0 1 1 0 Y Y Y Y Y Y Y Y SDA SDA 1 1 0 0 1 1 1 Y Y Y Y Y Y Y Y GND GND 1 1 0 1 0 0 0 -- -- -- -- -- -- -- -- GND V+ 1 1 0 1 0 0 1 -- -- -- -- Y Y Y Y GND SCL 1 1 0 1 0 1 0 -- -- -- -- Y Y Y Y GND SDA 1 1 0 1 0 1 1 -- -- -- -- Y Y Y Y V+ GND 1 1 0 1 1 0 0 Y Y Y Y -- -- -- -- V+ V+ 1 1 0 1 1 0 1 Y Y Y Y Y Y Y Y V+ SCL 1 1 0 1 1 1 0 Y Y Y Y Y Y Y Y V+ SDA 1 1 0 1 1 1 1 Y Y Y Y Y Y Y Y and uses AD2 to select whether pullups are enabled for ports I4-I7. The rule is that a logic-high SDA, or SCL connection selects the pullups, while a logic-low deselects the pullups (Table 2). The pullup configuration is correct on power-up for a standard I2C configuration, where SDA and SCL are pulled up to V+ by the external I2C pullups. There are circumstances where the assumption that SDA = SCL = V+ on power-up is not true--for example, in applications in which there is legitimate bus activity during power-up. Also, if SDA and SCL are terminated with pullup resistors to a different supply voltage than the MAX7324's supply voltage, and if that pullup supply rises later than the MAX7324's supply, then SDA or SCL may appear at power-up to be connected to GND. In such applications, use the four address combinations that are selected by connecting address inputs AD0 and AD2 to V+ or GND (shown in bold in Tables 2 and 3).These selections are guaranteed to be correct at power-up, independent of SDA and SCL behavior. If one of the other 12 address combinations is used, an unexpected combination of pullups might be asserted until the first I2C transmission (to any device, not necessarily the MAX7324) is put on the bus. www.maximintegrated.com Port Inputs Port inputs switch at CMOS logic levels as determined by the expander's supply voltage, and are overvoltage tolerant to +6V, independent of the device's supply voltage. Port-Input Transition Detection All eight input ports are monitored for changes since the expander was last accessed through the serial interface. The state of the input ports is stored in an internal "snapshot" register for transition monitoring. The snapshot is continuously compared with the actual input conditions, and if a change is detected for any port input, then an internal transition flag is set for that port. The eight port inputs are sampled (internally latched into the snapshot register) and the old transition flags cleared during the I2C acknowledge of every MAX7324 read and write access. The previous port transition flags are read through the serial interface as the second byte of a 2-byte read sequence. A long read sequence (more than 2 bytes) can be used to poll the expander continuously without the overhead of resending the slave address. If more than 2 bytes are read from the expander, the expander repeatedly returns Maxim Integrated 8 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Table 3. MAX7324 Address Map for Outputs O8-O15 PIN CONNECTION DEVICE ADDRESS OUTPUTS POWER-UP DEFAULT AD2 AD0 A6 A5 A4 A3 A2 A1 A0 O15 O14 O13 O12 O11 O10 O9 O8 SCL GND 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 SCL V+ 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 SCL SCL 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 SCL SDA 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 SDA GND 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 SDA V+ 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 SDA SCL 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 SDA SDA 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 GND GND 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 GND V+ 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 GND SCL 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 GND SDA 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 V+ GND 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 V+ V+ 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 V+ SCL 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 V+ SDA 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 the 2 bytes of input port data followed by the transition flags. The inputs are repeatedly resampled and the transition flags repeatedly reset for each pair of bytes read. All changes that occur during a long read sequence are detected and reported. The MAX7324 includes an 8-bit interrupt mask register that selects which inputs generate an interrupt upon change. Each input's transition flag is set when its input changes, independent of the interrupt mask register settings. The interrupt mask register allows the processor to be interrupted for critical events, while the inputs and the transition flags can be polled periodically to detect less critical events. The INT output is not reasserted during a read sequence to avoid recursive reentry into an interrupt service routine. Instead, if a data change occurs that would normally cause the INT output to be set, the INT assertion is delayed until the STOP condition. INT is not reasserted upon a STOP condition if the changed input data is read before the STOP occurs. The INT logic ensures that unnecessary interrupts are not asserted, www.maximintegrated.com yet data changes are detected and reported no matter when the change occurs. Transition-Detection Masks The transition detection logic incorporates a transition flag and an interrupt mask bit for each input port. The eight transition flags can be read through the serial interface, and the 8-bit interrupt mask is set through the serial interface. Each port's transition flag is set when that port's input changes, and the change flag remains set even if the input returns to its original state. The port's interrupt mask determines whether a change on that input port generates an interrupt. Enable interrupts for high-priority inputs using the interrupt mask. The interrupt allows the system to respond quickly to changes on these inputs. Poll the MAX7324 periodically to monitor less-important inputs. The transition flags indicate whether a permanent or transient change has occurred on any input since the MAX7324 was last accessed. Maxim Integrated 9 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Serial Interface Serial Addressing The MAX7324 operates as a slave that sends and receives data through an I2C interface. The interface uses a serial-data line (SDA) and a serial-clock line (SCL) to achieve bidirectional communication between master(s) and slave(s). The master initiates all data transfers to and from the MAX7324 and generates the SCL clock that synchronizes the data transfer (Figure 1). SDA operates as both an input and an open-drain output. A pullup resistor, typically 4.7k, is required on SDA. SCL operates only as an input. A pullup resistor, typically 4.7k, is required on SCL if there are multiple masters on the 2-wire interface, or if the master in a single-master system has an open-drain SCL output. Each transmission consists of a START condition sent by a master, followed by the MAX7324's 7-bit slave address plus R/W bit, 1 or more data bytes, and finally a STOP condition (Figure 2). Start and Stop Conditions Both SCL and SDA remain high when the interface is not busy. A master signals the beginning of a transmission with a START (S) condition by transitioning SDA from high to low while SCL is high. When the master has finished communicating with the slave, the master issues a STOP (P) condition by transitioning SDA from low to high while SCL is high. The bus is then free for another transmission (Figure 2). Bit Transfer One data bit is transferred during each clock pulse. The data on SDA must remain stable while SCL is high (Figure 3). SDA tSU,STA tSU,DAT tLOW tHD,DAT tBUF tHD,STA tSU,STO tHIGH SCL tHD,STA tR tF START CONDITION REPEATED START CONDITION STOP CONDITION START CONDITION Figure 1. 2-Wire Serial-Interface Timing Details SDA SDA SCL S P START CONDITION STOP CONDITION Figure 2. Start and Stop Conditions www.maximintegrated.com SCL DATA LINE STABLE; CHANGE OF DATA DATA VALID ALLOWED Figure 3. Bit Transfer Maxim Integrated 10 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Acknowledge The first (A6), second (A5), and third (A4) bits of the MAX7324 slave address are always 1, 1, and 0 (I0-I7) or 1, 0, and 1 (O8-O15). Connect AD0 and AD2 to GND, V+, SDA, or SCL to select the slave address bits A3, A2, A1, and A0. The MAX7324 has 16 possible slave address pairs (Tables 2 and 3), allowing up to 16 MAX7324 devices on an I2C bus. The acknowledge bit is a clocked 9th bit the recipient uses to acknowledge receipt of each byte of data (Figure 4). Each byte transferred effectively requires 9 bits. The master generates the 9th clock pulse, and the recipient pulls down SDA during the acknowledge clock pulse, such that the SDA line is stable low during the high period of the clock pulse. When the master is transmitting to the MAX7324, the MAX7324 generates the acknowledge bit because the MAX7324 is the recipient. When the MAX7324 is transmitting to the master, the master generates the acknowledge bit because the master is the recipient. The master does not generate an acknowledge prior to issuing a stop condition. Accessing the MAX7324 The MAX7324 is accessed though an I2C interface. The MAX7324 provides two different 7-bit slave addresses for either the eight input ports (I0-I7) or the eight push-pull ports (O8-O15). See Tables 2 and 3. A single-byte read from the input ports of the MAX7324 returns the status of the eight ports and clears both the internal transition flags and the INT output. A single-byte read from the output ports of the MAX7324 returns the status of the eight output ports, read back as inputs. Slave Address The MAX7324 has two different 7-bit slave addresses (Tables 2 and 3). The addresses are different for communicating to either the eight push-pull outputs or the eight inputs. The eighth bit following the 7-bit slave address is the R/W bit. It is low for a write command and high for a read command. A 2-byte read from the input ports of the MAX7324 returns the status of the eight ports (as for a single-byte read), followed by the transition flags. The internal transition flags and the INT output are cleared when the MAX7324 acknowledges the slave address byte, but the previous transition flag data is sent as the second byte. A 2-byte read from the output ports of the MAX7324 repeatedly returns the status of the eight output ports, read back as inputs. CLOCK PULSE FOR ACKNOWLEDGEMENT START CONDITION SCL 1 2 8 9 SDA BY TRANSMITTER SDA BY RECEIVER A multibyte read (more than 2 bytes before the I2C STOP bit) from the input ports of the MAX7324 repeatedly returns the port data, alternating with the transition flags. As the input data is resampled for each transmission, and the transition flags are reset each time, a multibyte read continuously returns the current data and identifies any changing input ports. S Figure 4. Acknowledge SDA 1 MSB A5 A4 A3 A2 A1 A0 R/W ACK LSB SCL Figure 5. Slave Address www.maximintegrated.com Maxim Integrated 11 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Reading from the MAX7324 If a port input data change occurs during the read sequence, INT is reasserted during the I2C STOP bit. The MAX7324 does not generate another interrupt during a single-byte or multibyte read. Input-port data is sampled during the preceding I2C acknowledge bit (the acknowledge bit for the I2C slave address in the case of a single-byte or 2-byte read). A read from the input ports of the MAX7324 starts with the master transmitting the input ports' slave address with the R/W bit set to high. The MAX7324 acknowledges the slave address and samples the ports during the acknowledge bit. INT deasserts during the slave address acknowledge. A multibyte read (more than 2 bytes before the I2C STOP bit) from the output ports of the MAX7324 repeatedly returns the status of the eight output ports, read back as inputs. Typically, the master reads 1 or 2 bytes from the MAX7324 with each byte being acknowledged by the master upon reception with the exception of the last byte. A single-byte write to the input ports of the MAX7324 sets the interrupt mask register and clears both the internal transition flags and INT output. When the master reads one byte from the open-drain ports of the MAX7324 and subsequently issues a STOP condition (Figure 6), the MAX7324 transmits the current port data, clears the transition flags, and resets the transition detection. INT deasserts during the slave acknowledge. The new snapshot data is the current port data transmitted to the master, and therefore, port changes occuring during the transmission are detected. INT remains high until the STOP condition. A single-byte write to the output ports of the MAX7324 sets the logic state of all eight ports. A multibyte write to the input ports of the MAX7324 sets the interrupt mask register repeatedly. A multibyte write to the output ports of the MAX7324 repeatedly sets the logic state of all eight ports. ACKNOWLEDGE FROM MAX7324 S MAX7324 SLAVE ADDRESS 1 I7 A D7 R/W I6 D6 I5 D5 PORT SNAPSHOT I4 D4 I3 D3 I2 D2 I1 D1 ACKNOWLEDGE FROM MASTER I0 D0 A P PORT SNAPSHOT SCL tPH PORTS tIV tPS tIR INT OUTPUT tIP INT REMAINS HIGH UNTIL STOP CONDITION S = START CONDITION P = STOP CONDITION A = ACKNOWLEDGE Figure 6. Reading Input Ports of the MAX7324 (1 Data Byte) www.maximintegrated.com Maxim Integrated 12 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 When the master reads 2 bytes from the output ports of the MAX7324 and subsequently issues a STOP condition (Figure 7), the MAX7324 transmits the current port data, followed by the transition flags. The transition flags are then cleared, and transition detection is reset. INT deasserts during the slave acknowledge. The new snapshot data is the current port data transmitted to the master, and therefore, port transitions occuring during the transmission are detected. INT remains high until the STOP condition. When the master reads more than 2 data bytes, the input port data alternates with the transition flag. one or more bytes from the output ports of the MAX7324, and then issues a STOP condition (Figure 8). The MAX7324 transmits the current port data, read back from the actual port outputs (not the port output latches) during the acknowledge. If a port is forced to a logic state other than its programmed state, the readback reflects this. If driving a capacitive load, the readback port level verification algorithms may need to take the RC rise/fall time into account. Typically, the master reads one byte from the ouput ports of the MAX7324, then issues a STOP condition (Figure 8). However, the master can read two or more bytes from the output ports of the MAX7324, and then issues a STOP condition. In this case, the MAX7324 resamples the port outputs during each acknowledge and transmits the new data each time. A read from the output ports of the MAX7324 starts with the master transmitting the ports' slave address with the R/W bit set high. The MAX7324 acknowledges the slave address and samples the logic state of the output ports during the acknowledge bit. The master can read ACKNOWLEDGE FROM MAX7324 S MAX7324 SLAVE ADDRESS 1 I7 I6 I5 I4 I3 I1 I2 I0 F7 F6 F5 F4 F3 F1 F2 FLAG F0 ACKNOWLEDGE FROM MASTER A D7 D6 D5 D4 PORT SNAPSHOT R/W D3 D2 D1 D0 A D7 D6 D5 D4 D3 D2 D1 D0 A P PORT SNAPSHOT PORT SNAPSHOT SCL tPH PORTS tIV tIR INT OUTPUT tPS tIP INT REMAINS HIGH UNTIL STOP CONDITION S = START CONDITION P = STOP CONDITION A = ACKNOWLEDGE Figure 7. Reading Input Ports of the MAX7324 (2 Data Bytes) P7 PORT SNAPSHOT DATA P6 P5 P4 P3 DATA 1 P2 P1 P0 ACKNOWLEDGE FROM MAX7324 S MAX7324 SLAVE ADDRESS 1 R/W A D7 D6 D5 D4 D3 D2 D1 D0 PORT SNAPSHOT TAKENPORT SNAPSHOT TAKEN A P ACKNOWLEDGE FROM MASTER SCL Figure 8. Reading Output Ports of the MAX7324 www.maximintegrated.com Maxim Integrated 13 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Writing to the MAX7324 A write to the input ports of the MAX7324 starts with the master transmitting the group's slave address with the R/W bit set low. The MAX7324 acknowledges the slave address and samples the ports during the acknowledge bit. INT deasserts during the slave acknowledge. The master can now transmit one or more bytes of data. The MAX7324 acknowledges these subsequent bytes of data and updates the interrupt mask register with each new byte until the master issues a STOP condition (Figure 9). 1 SCL 2 3 4 5 6 7 8 DATA TO INTERRUPT MASK SLAVE ADDRESS S SDA A write to the output ports of the MAX7324 starts with the master transmitting the group's slave address with the R/W bit set low. The MAX7324 acknowledges the slave address and samples the ports during the acknowledge bit. The master can now transmit one or more bytes of data. The MAX7324 acknowledges these subsequent bytes of data and updates the corresponding group's ports with each new byte until the master issues a STOP condition (Figure 10). 0 START CONDITION DATA TO INTERRUPT MASK DATA 1 A DATA 2 A A R/W tPV tPV Figure 9. Writing to the Input Ports of the MAX7324 1 SCL 2 3 4 5 6 7 8 DATA TO PORT SLAVE ADDRESS S SDA START CONDITION 0 A DATA TO PORT DATA 1 A DATA 2 A ACKNOWLEDGE FROM SLAVE R/W ACKNOWLEDGE FROM SLAVE ACKNOWLEDGE FROM SLAVE WRITE TO PORT DATA OUT FROM PORT DATA 1 VALID tPV DATA 2 VALID tPV Figure 10. Writing to the Output Ports of the MAX7324 www.maximintegrated.com Maxim Integrated 14 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Applications Information Port Input and I2C Interface Level Translation from Higher or Lower Logic Voltages SDA, SCL, AD0, AD2, RST, INT, and I0-I7 are overvoltage protected to +6V. This allows the MAX7324 to operate from a lower supply voltage, such as +3.3V, while the I2C interface and/or any of the eight input ports are driven from a higher logic level, such as +5V. The MAX7324 can operate from a higher supply voltage, such as +3V, while the I2C interface and/or some of the input ports I0-I7 are driven from a lower logic level, such as +2.5V. For V+ < 1.8V, apply a minimum voltage of 0.8 x V+ to assert a logic-high on any input. For V+ 1.8V, apply a voltage of 0.7 x V+ to assert a logic-high. For example, a MAX7324 operating from a +5V supply may not recognize a +3.3V nominal logic high. One solution for input level translation is to drive the MAX7324 inputs from open-drain outputs. Use a pullup resistor to V+ or a higher supply to ensure a high logic voltage greater than 0.7 x V+. Port Output Signal Level Translation RST, SCL, SDA, AD0, and AD2 remain high impedance with up to +6V asserted on them when the MAX7324 is powered down (V+ = 0). The MAX7324 can therefore be used in hot-swap applications. MAX7324 V+ Each of the eight output ports has protection diodes to V+ and GND. When a port output is driven to a voltage higher than V+ or lower than GND, the appropriate protection diode clamps the output to a diode drop above V+ or below GND. When the MAX7324 is powered down (V+ = 0), every output port's protection diodes to V+ and GND continue to appear as a diode clamp from each output to GND (Figure 11). Each of the input ports I0-I7 has a protection diode to GND (Figure 12). When a port input is driven to a voltage lower than GND, the protection diode clamps the voltage to a diode drop below GND. Each of the eight input ports I0-I7 also has a 40k (typ) pullup resistor that can be enabled or disabled. When a port input is driven to a voltage higher than V+, the body diode of the pullup enable switch conducts and the 40k pullup resistor is enabled. When the MAX7324 is powered down (V+ = 0), every input port appears as a 40k resistor in series with a diode connected to ground. Input ports are protected to +6V under any of these circumstances. Driving LED Loads When driving LEDs from one of the eight output ports, O8-O15, a resistor must be fitted in series with the LED to limit the LED current to no more than 20mA. Connect the LED cathode to the MAX7324 port, and the LED anode to V+ through the series current-limiting resistor, RLED. V+ V+ PULLUP ENABLE MAX7324 40k O8-O15 I0-I7 INPUT OUTPUT GND GND Figure 11. MAX7324 Output Port Structure www.maximintegrated.com V+ Figure 12. MAX7324 Input Port Structure Maxim Integrated 15 MAX7324 Set the port output low to light the LED. Choose the resistor value according to the following formula: RLED = (VSUPPLY - VLED - VOL) / ILED where: RLED is the resistance of the resistor in series with the LED (). VSUPPLY is the supply voltage used to drive the LED (V). VLED is the forward voltage of the LED (V). VOL is the output low voltage of the MAX7324 when sinking ILED (V). ILED is the desired operating current of the LED (A). For example, to operate a 2.2V red LED at 10mA from +5V supply: RLED = (5 - 2.2 - 0.1) / 0.01 = 270 www.maximintegrated.com I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs Driving Load Currents Higher than 20mA The MAX7324 can be used to drive loads such as relays that draw more than 20mA by paralleling outputs. Use at least one output per 20mA of load current; for example, a 5V 330mW relay draws 66mA, and therefore, requires four paralleled outputs. Any combination of outputs can be used as part of a load-sharing design because any combination of ports can be set or cleared at the same time by writing to the MAX7324. Do not exceed a total sink current of 100mA for the device. Protect the MAX7324 from the negative voltage transient generated when switching off inductive loads (such as relays) by connecting a reverse-biased diode across the inductive load. Choose the peak current for the diode to be greater than the inductive load's operating current. Power-Supply Considerations The MAX7324 operates with a supply voltage of +1.71V to +5.5V over the -40C to +125C temperature range. Bypass the supply to GND with a ceramic capacitor of at least 0.047F as close as possible to the device. For the TQFN version, additionally connect the exposed pad to GND. Maxim Integrated 16 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Functional Diagram Typical Application Circuit 3.3V V+ C O15 O14 O13 O12 O11 O10 O9 O8 I7 I6 I5 I4 I3 I2 I1 I0 AD0 AD2 SCL SDA I2C INPUT FILTER I/O PORTS CONTROL SCL SCL SDA RST SDA RST INT INT O15 O14 013 012 O11 O10 09 08 MAX7324 I7 I6 I5 I4 I3 I2 I1 I0 INT RST POWERON RESET N MAX7324 AD0 AD2 GND Pin Configurations (continued) TOP VIEW INT 1 + 24 V+ 23 SDA RST 2 AD2 3 I0 4 MAX7324 22 SCL 21 AD0 I1 5 20 015 I2 6 19 014 I3 7 18 013 I4 8 17 012 I5 9 16 011 I6 10 OUTPUT OUTPUT OUTPUT OUTPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT Chip Information PROCESS: BiCMOS Package Information For the latest package outline information and land patterns (footprints), go to www.maximintegrated.com/packages. Note that a "+", "#", or "-" in the package code indicates RoHS status only. Package drawings may show a different suffix character, but the drawing pertains to the package regardless of RoHS status. PACKAGE TYPE PACKAGE CODE OUTLINE NO. LAND PATTERN NO. 15 010 16 QSOP E24+1 21-0055 90-0172 I7 11 14 O9 16 TQFN-EP T2444+3 21-0139 90-0022 GND 12 13 O8 QSOP www.maximintegrated.com Maxim Integrated 17 I2C Port Expander with Eight Push-Pull Outputs and Eight Inputs MAX7324 Revision History REVISION NUMBER REVISION DATE PAGES CHANGED 0 10/06 Initial release -- 1 5/14 No /V OPNs; removed automotive reference from Applications section; updated Packaging Information 1 DESCRIPTION For pricing, delivery, and ordering information, please contact Maxim Direct at 1-888-629-4642, or visit Maxim Integrated's website at www.maximintegrated.com. Maxim Integrated cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim Integrated product. No circuit patent licenses are implied. Maxim Integrated reserves the right to change the circuitry and specifications without notice at any time. The parametric values (min and max limits) shown in the Electrical Characteristics table are guaranteed. Other parametric values quoted in this data sheet are provided for guidance. Maxim Integrated and the Maxim Integrated logo are trademarks of Maxim Integrated Products, Inc. (c) 2014 Maxim Integrated Products, Inc. 18 Mouser Electronics Authorized Distributor Click to View Pricing, Inventory, Delivery & Lifecycle Information: Maxim Integrated: MAX7324AEG+ MAX7324AEG+T MAX7324ATG+ MAX7324ATG+T