The MAX7304 consists of 16 port GPIOs, with 12 pushpull GPIOs and four open-drain GPIOs configurable as
PWM-controlled LED drivers. The device supports a
1.62V to 3.6V separate power supply for level translation.
An address-select input (AD0) allows up to four unique
slave addresses for the device.
Each GPIO can be programmed to one of the two
externally applied logic voltage levels. PORT15–PORT12
can also be configured as LED drivers that feature
constant-current sinks and PWM intensity control with the
internal oscillator. The maximum constant-current level for
each open-drain LED port is 20mA. The intensity of the
LED on each open-drain port can be individually adjusted
through a 256-step PWM control. The port also features
LED fading.
The same index rows and columns in the device can be
used as a direct logic-level translator.
The device is offered in a 24-pin (3.5mm x 3.5mm) TQFN
package with an exposed pad, and a small 25-bump
(2.159mm x 2.159mm) wafer-level package (WLP) for
cell phones, pocket PCs, and other portable consumer
electronic applications.
The device operates over the -40NC to +85NC extended
temperature range.
Applications
Cell Phones
Notebooks
PDAs
Handheld Games
Portable Consumer Electronics
Features
SFour LED Driver Pins on PORT15–PORT12
SIntegrated High-ESD Protection
±8kV IEC 61000-4-2 Contact Discharge
±15kV IEC 61000-4-2 Air-Gap Discharge
S5V Tolerant, Open-Drain I/O Ports Capable of
Constant-Current LED Drive
S256-Step PWM Individual LED Intensity-Control
Accuracy
SIndividual LED Blink Rates and Common LED
Fade-In /Out Rates from 256ms to 4096ms
SUser-Configurable Debounce Time (1ms to 32ms)
SConfigurable Edge-Triggered Port Interrupt (INT)
S1.62V to 3.6V Operating Supply Voltage
SIndividually Programmable GPIOs to Two Logic
Levels
S8-Channel Individual Programmable Level
Translators
SSupports Hot Insertion
S400kbps, 5.5V Tolerant I2C Serial Interface with
Selectable Bus Timeout
Ordering Information appears at end of data sheet.
For related parts and recommended products to use with this part,
refer to www.maxim-ic.com/MAX7304.related.
For pricing, delivery, and ordering information, please contact Maxim Direct at 1-888-629-4642,
or visit Maxim’s website at www.maxim-ic.com.
MAX7304
I2C-Interfaced 16-Port,
Level-Translating GPIO and LED Driver
with High Level of Integrated ESD Protection
ABSOLUTE MAXIMUM RATINGS
V
CC, VLA
PORT11–PORT0 to GND .......................... -0.3V to (VCC + 0.3V)
PORT15–PORT12 to GND ....................................... -0.3V to +6V
SDA, SCL, AD0, INT to GND ..................................-0.3V to +6V
VLA to VCC ...........................................................-0.3V to +2.3V
DC Current on PORT15–PORT12 to GND .........................25mA
DC Current on PORT11–PORT0 to GND .............................7mA
VCC, VLA, GND Current .....................................................80mA
DC Current VCC, VLA to PORT11–PORT0 ...........................5mA
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.
PACKAGE THERMAL CHARACTERISTICS (Note 1)
TQFN
Note 1: Package thermal resistances were obtained using the method described in JEDEC specification JESD51-7, using a four-
to GND ....................................................-0.3V to +4V
(VCC = 1.62V to 3.6V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at VCC = 3.3V, TA = +25NC.) (Notes 2, 3)
PARAMETERSYMBOLCONDITIONSMINTYPMAXUNITS
Pulse Width of Spike Suppressedt
Capacitive Load for Each Bus LineC
Bus Timeoutt
SP
B
TIMEOUT
ESD PROTECTION
PORT_
All Other PinsHuman Body Model
Note 2: All parameters are tested at TA = +25NC. Specifications over temperature are guaranteed by design.
Note 3: All digital inputs at VCC or GND.
Note 4: Guaranteed by design.
Note 5: CB = total capacitance of one bus line in pF. tR and tF measured between 0.8V and 2.1V.
Note 6: 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 7: I
= 6mA. CB = total capacitance of one bus line in pF. tR and tF measured between 0.8V and 2.1V.
SINK
Note 8: Input filters on the SDA, SCL, and AD0 inputs suppress noise spikes less than 50ns.
1A2PORT5GPIO Port 5. Push-pull I/O.
2B2PORT6GPIO Port 6. Push-pull I/O.
3A3PORT7GPIO Port 7. Push-pull I/O.
4B3PORT15GPIO Port 15. Open-drain I/O. PORT15 can be configured as a constant-current sink.
5A4PORT14GPIO Port 14. Open-drain I/O. PORT14 can be configured as a constant-current sink.
6A5PORT13GPIO Port 13. Open-drain I/O. PORT13 can be configured as a constant-current sink.
7B4PORT12GPIO Port 12. Open-drain I/O. PORT12 can be configured as a constant-current sink.
8, 23B1, B5, C3GNDGround
9C5PORT11GPIO Port 11. Push-pull I/O.
10C4PORT10GPIO Port 10. Push-pull I/O.
11D5PORT9GPIO Port 9. Push-pull I/O.
12E5PORT8GPIO Port 8. Push-pull I/O.
13D4V
14E4AD0Address Input. Selects up to four device slave addresses (Table 2).
15D3SDAI2C-Compatible, Serial-Data I/O
16E3SCLI2C-Compatible Serial-Clock Input
17E2
NAMEFUNCTION
LA
Second Logic Level for GPIO Level Shifting (where VCC P VLA P 3.6V)
INTActive-Low Key-Switch Interrupt Output. INT is open-drain and requires a pullup resistor.
Positive Supply Voltage. Bypass to GND with a 0.1FF capacitor as close as possible to
the device.
19E1PORT0GPIO Port 0. Push-pull I/O.
20D1PORT1GPIO Port 1. Push-pull I/O.
21C2PORT2GPIO Port 2. Push-pull I/O.
22C1PORT3
GPIO Port 3. Push-pull I/
24A1PORT4GPIO Port 4. Push-pull I/O.
——EP
MAX7304
Exposed Pad (TQFN Only). Internally connected to GND. Connect to a large ground plane
to maximize thermal performance. Not intended as an electrical connection point.
constant-current and PWM intensity control. The maximum
constant-current level for each open-drain LED port is
The MAX7304 is an I2C-interfaced 16-port GPIO expander. The device features 12 push-pull GPIOs configured
for digital I/O and four open-drain GPIOs configurable
as constant-current outputs for LED applications up to
5V. The device supports a second 1.62V to 3.6V power
supply for level translation. The second logic supply
20mA. The intensity of the LED on each open-drain port
can be individually adjusted through a 256-step PWM
control. The port also features LED fading.
The device meets ESD requirements for Q8kV contact
discharge and Q15kV air-gap discharge on all port pins
(configured as GPIO and/or LED drivers).
voltage (VLA) must be set equal to or higher than VCC.
Each GPIO can be programmed to one of the two externally applied logic voltage levels. PORT15–PORT12
can also be configured as LED drivers that feature
On power-up, all control registers reset to power-up
values (Table 1) and the device is in sleep mode.
Table 1. Register Address Map and Power-Up Conditions
ADDRESS
CODE (hex)
0x01
0x31
0x34
0x35
0x36
0x37
0x38
0x39
0x3A
0x3B
0x3C
0x40
0x42
0x43
0x45
0x48Read only0x00I2C timeout flagI2C timeout since last POR
0x50
0x51
0x52
0x53
READ/
WRITE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
POWER-UP
VALUE (hex)
0x0BConfigurationPower-down and I2C timeout enable
0x00LED driver enableLED driver enable register
0x00GPIO direction 1GPIO input/output control register 1 for PORT7–PORT0
0x00GPIO direction 2GPIO input/output control register 2 for PORT15–PORT8
0xFFGPO output mode 1
0x0FGPO output mode 2
0x00GPIO supply voltage 1
0x00GPIO supply voltage 2
0xFFGPIO values 1Debounced input or output values of PORT7–PORT0
0xFFGPIO values 2Debounced input or output values of PORT15–PORT8
0x00GPIO level-shifter enableGPIO level-shifter pair enable
0x00
0x00GPIO debouncePORT7–PORT0 debounce time setting
Table 1. Register Address Map and Power-Up Conditions (continued)
MAX7304
ADDRESS
CODE (hex)
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x5B
READ/
WRITE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
POWER-UP
VALUE (hex)
0x00
0x00
0x00
0x00
0xFFInterrupt mask 1Interrupt mask for PORT7–PORT0
0xFFInterrupt mask 2Interrupt mask for PORT15–PORT8
0x00GPI trigger mode 1
0x00GPI trigger mode 2
REGISTER
FUNCTION
PORT12 LED
configuration
PORT13 LED
configuration
PORT14 LED
configuration
PORT15 LED
configuration
GPIOs
The device has 16 GPIO ports, of which four have
LED control functions. The ports can be used as logic
inputs and logic outputs. PORT15–PORT12 are also
configurable as constant-current PWM LED drivers. Each
ports’ logic level is referenced to VCC or VLA. The GPIO
port’s inputs can also be debounced. When in PWM
mode, the ports are set up to start their PWM cycle in
45N phase increments. This prevents large current spikes
on the LED supply voltage when driving multiple LEDs.
Configuration Register (0x01)
The configuration register controls the I2C bus timeout
feature (see Table 5 in the Register Tables section). The
bus timeout feature prevents the SDA being held low
when the SCL line hangs.
LED Driver Enable Register (0x31)
Bits D[3:0] correspond to PORT15–PORT12 on the
device. Set the corresponding bit to 1 for enabling the
LED driver circuitry and 0 for normal GPIO function (see
Table 6 in the Register Tables section).
GPIO Direction 1 and 2 Registers (0x34, 0x35)
These registers configure the pin as an input or an
output. GPIO direction 1 register bits D[7:0] correspond
with PORT7–PORT0 (see Table 7 in the Register Tables
section). GPIO direction 2 register bits D[7:0] correspond
with PORT15–PORT8 (see Table 8 in the Register Tables
section). Set the corresponding bit to 0 to configure as
input and 1 to configure as output.
DESCRIPTION
PORT12 interrupt, PWM mode control, and blinkperiod settings
PORT13 interrupt, PWM mode control, and blinkperiod settings
PORT14 interrupt, PWM mode control, and blinkperiod settings
PORT15 interrupt, PWM mode control, and blinkperiod settings
GPI edge-triggered detection setting for
PORT7–PORT0
GPI edge-triggered detection setting for
PORT15–PORT8
When the port is initially programmed as an input, there
is a delay of one debounce period prior to detecting
a transition on the input port. This is to prevent a false
interrupt from occurring when changing a port from an
output to an input.
GPO Output Mode 1 and 2 Registers (0x36, 0x37)
These registers configure the pins as an open-drain or
The GPIO values 1 and 2 registers contain the debounced
input data for all the GPIOs for PORT7–PORT0 and
PORT15–PORT8, respectively (see Tables 13 and 14
in the Register Tables section). There is one debounce
period delay prior to detecting a transition on the input
port. This prevents a false interrupt from occurring when
changing a port from an output to an input. The GPIO
values 1 and 2 registers reports the state of all input ports
regardless of any interrupt mask settings.
When writing to the GPIO values 1 and 2 registers, the
corresponding PORT_ voltage is set high when written 1
or cleared when written 0. Reading the port when configured as an output always returns the value 0 for the corresponding port regardless of the output value.
GPIO Level-Shifter Enable Register (0x3C)
Enabling bit D_ in this register enables the direct
level shifter between GPIO pins PORT15–PORT8 and
PORT7–PORT0 (see Table 15 in the Register Tables section). The level-shifting pairs are PORT0/PORT8, PORT1/
PORT9, etc. The direction of the level shifter is controlled by the GPIO direction 2 register (0x35). When the
corresponding bit in the GPIO direction 2 register is set
to 0, PORT15–PORT8 are inputs, while PORT7–PORT0
are outputs. When the bit is set to 1, PORT7–PORT0 are
inputs, while PORT15–PORT8 are outputs.
GPIO Global Configuration Register (0x40)
The GPIO global configuration register controls the main
settings for the GPIO ports (see Table 16 in the Register
Tables section).
Bit D5 enables interrupt generation for I2C timeouts. D4
is the main enable/shutdown bit for the GPIOs. Bit D3
functions as a software reset for the GPIO registers
(0x31 to 0x5B). Bits D[2:0] set the fade-in/out time for the
GPIOs configured as constant-current sinks.
GPIO Debounce Configuration Register (0x42)
The GPIO debounce configuration register sets the
amount of time a GPIO must be held in order for the
device to register a logic transition (see Table 17 in
the Register Tables section). Five bits (D[4:0]) set 32
possible debounce times from 9ms up to 40ms.
LED Constant-Current Setting Register (0x43)
The LED constant-current setting register sets the global
constant-current level (see Table 18 in the Register
Tables section). Bit D0 selects the global current values
between 10mA and 20mA. This setting only applies to the
LED driver enabled pins, PORT15–PORT12.
Common PWM Ratio Register (0x45)
The common PWM ratio register stores the common con-
stant-current output PWM duty cycle (see Table 19 in the
Register Tables section). The values stored in this register
translate over to a PWM ratio in the same manner as the
individual PWM ratio registers (0x50 to 0x53). Ports can use
their own individual PWM value or the common PWM value.
Write to this register to change the PWM ratio of several
ports at once.
2
I
C Timeout Flag Register (0x48) (Read Only)
The I2C timeout flag register contains a single bit (D0),
which indicates if an I2C timeout has occurred (see Table
20 in the Register Tables section). Read this register to
clear an I2C timeout initiated interrupt.
PORT12–PORT15 Individual PWM Ratio
Registers (0x50 to 0x53)
Each LED driver port has an individual PWM ratio reg-
ister, 0x50 to 0x53 (see Table 21 in the Register Tables
section). Use values 0x00 to 0xFE in these registers to
configure the number of cycles out of 256 the output
sinks current (LED is on), from 0 cycles to 254 cycles.
Use 0xFF to have an output continuously sink current
(always on). For applications requiring multiple ports
to have the same intensity, program a particular port’s
configuration register (0x54 to 0x57) to use the common
PWM ratio register (0x45). New PWM settings take place
at the beginning of a PWM cycle, to allow changes from
common intensity to individual intensity with no interrup-
tion in the PWM cycle.
PORT12–PORT15 LED Configuration
Registers (0x54 to 0x57)
Registers 0x54 to 0x57 set individual configurations for
each port (see Table 22 in the Register Tables section).
D5 sets the port’s PWM setting to either the common or
individual PWM setting. Bits D[4:2] enable and set the
port’s individual blink period from 0 to 4096ms. Bits D1
and D0 set a port’s blink duty cycle.
Interrupt Mask 1 and 2 Registers (0x58, 0x59)
The interrupt mask 1 and 2 registers control which ports
trigger an interrupt for PORT7–PORT0 and PORT15–
PORT8, respectively (see Tables 23 and 24 in the
Register Tables section). Set the bit to 0 to enable the
interrupt. Set the bit to 1 to mask the interrupt.
If the port that has generated the interrupt is not masked,
the interrupt causes the INT signal to assert. A read of the
GPIO values 1 and 2 registers (0x3A, 0x3B) is required
to deassert the INT pin. Note that transitions that occur
while the INT signal is asserted, but before the read of
the values 1 and 2 registers, sets the appropriate bit of
the values 1 and 2 registers only, but has no effect on
the INT pin as it is already asserted. However, transitions
that occur when the I2C is active cannot be latched into
the values 1 and 2 registers until after the read has taken
place. If there are transitions that cause the INT signal to
assert, during the time of an I2C read, they cause the INT
signal to reassert once the read transaction has taken
place. Note that the interrupt configurations only apply
when a port is configured as an input.
GPI Trigger Mode 1 and 2 Registers (0x5A, 0x5B)
The GPI trigger mode 1 and 2 registers control how
ports can trigger an interrupt for PORT7–PORT0 and
PORT15–PORT8, respectively (see Tables 25 and 26 in
the Register Tables section). Set the bit to 0 for risingedge triggering. Set the bit to 1 for rising- and fallingedge triggering.
The inputs are debounced (if enabled) by taking a snapshot of the port state when the transition occurs, and
another after the debounce time has elapsed—ensuring that the state of the port is stable prior to triggering
the interrupt. After the debounce cycle, an interrupt is
generated and the INT pin asserts if it is not masked for
that particular port. Regardless of whether or not the INT
signal is masked, the GPIO values 1 and 2 registers
(0x3A, 0x3B) report the state of all input ports.
Sleep Mode
The device is put into sleep mode by clearing bit D4 in
the GPIO global configuration register (0x40). In sleep
mode, the device draws minimal current. The device is
taken out of sleep mode and put into operating mode by
setting bit D4 in the GPIO configuration register. When
the GPIOs are enabled, the part is in operating mode.
In sleep mode, the internal oscillator and I2C timeout
features are disabled.
LED Fade
Set the fade cycle time in the GPIO global configuration
register (0x40) to a non-zero value to enable fade in/out
(see Table 16 in the Register Tables section). Fade in
increases an LED’s PWM intensity in 16 even steps, from
zero to its stored value. Fade out decreases an LED’s
PWM intensity in 16 even steps, from its current value to
zero. Fading occurs automatically in any of the following
scenarios:
1) Change the common PWM register value from any
value to zero to cause all ports using the common
PWM register settings to fade out. No ports using
individual PWM settings are affected.
2) Change the common PWM register value to any value
from zero to cause all ports using the common PWM
register settings to fade in. No ports using individual
PWM settings are affected.
3) Take the part out of sleep mode to cause all ports
to fade in. Changing an individual PWM intensity during fade in automatically cancels that port’s fade and
immediately outputs at its newly programmed intensity.
4) Put the part into sleep mode to cause all ports to fade
out. Changing an individual PWM intensity during
fade out automatically cancels that port’s fade and
immediately turns off.
LED PWM
Each port has an individual PWM ratio register. The value
stored in this register configures the number of cycles
out of 255 that the output is sinking current (LED is on).
Setting a value of 0xFF in an individual intensity register
sets the output to continuously sink current (always on).
Conversely, setting a value of 0x00 in an individual intensity register sets the output in a high-impedance state
(always off).
For applications requiring multiple ports to have the same
intensity, the common PWM ratio intensity setting can be
used in lieu of the individual intensity setting. To use the
common intensity setting, program bit D5 of the
corresponding port’s configuration register to logic-high.
Setting a port to use the common PWM ratio setting
copies the value of the common intensity register into
the individual intensity register at the beginning of each
PWM cycle. This allows an output port to be seamlessly
changed from common intensity to individual intensity
with no interruption in the PWM cycle.
Outputs are configured to sink a constant current of either
10mA or 20mA during the period when the output is on.
The setting in the individual constant-current setting
register (0x43) controls the value of the current.
Each LED driver-supported port has its own blink-control
settings through registers 0x54 to 0x57 (see Table 22
in the Register Tables section). The blink period ranges
from 0 (blink disabled) to 4.096s. Settable blink duty
cycles range from 6.25% to 50%. All blink periods start at
the same PWM cycle for synchronized blinking between
multiple ports.
Each port has its own counter to generate blink
timing. The blink counter can be programmed to cause
the output to gate off and on at a programmable rate. The
blink period can be set to 256ms, 512ms, 1.024s, 2.048s,
or 4.096s using D[4:2] of the port’s individual configuration register. The percentage of time that the LED is on
for one blink cycle is set to 50%, 25%, 12.5%, or 6.25%
by D[1:0] of the individual configuration register.
Interrupt
Two possible sources generate INT: I2C timeout or
GPIOs configured as inputs (registers 0x48, 0x5A, and
0x5B). Read the respective data/status registers for each
type of interrupt in order to clear INT. If multiple sources
generate the interrupt, all the related status registers
must be read to clear INT.
Serial Interface
Figure 1 shows the 2-wire serial interface timing details.
Serial Addressing
The device operates as a slave that sends and receives
data through an I2C-compatible 2-wire interface. The
interface uses a serial-data line (SDA) and a serialclock line (SCL) to achieve bidirectional communication
between master(s) and slave(s). A master (typically a
microcontroller) initiates all data transfers to and from the
device and generates the SCL clock that synchronizes
the data transfer.
The device’s SDA line operates as both an input and an
open-drain output. A pullup resistor, typically 4.7kI, is
required on SDA. The device’s SCL line operates only as
an input. A pullup resistor 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 (S) condition
(Figure 2) sent by a master, followed by the device’s 7-bit
slave address plus R/W bit, a register address byte, one
or more data bytes, and finally, a STOP (P) condition.
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 condition by transitioning SDA from high
to low while SCL is high. When the master has finished
communicating with the slave, it issues a STOP condition
by transitioning SDA from low to high while SCL is high.
The bus is then free for another transmission.
SDA
t
t
LOW
SCL
t
HD, STA
START
CONDITION
Figure 1. Two-Wire Serial Interface Timing Details
One data bit is transferred during each clock pulse
(Figure 3). The data on SDA must remain stable while
SCL is high.
Acknowledge
The acknowledge bit is a clocked 9th bit (Figure 4), which
the recipient uses to handshake receipt of each byte of
data. Thus, each byte transferred effectively requires 9 bits.
SDA
SCL
S
START
CONDITION
Figure 2. START and STOP Conditions
SDA
The master generates the 9th clock pulse, and the recipient pulls down SDA during the acknowledge clock pulse;
therefore, the SDA line is stable low during the high
period of the clock pulse. When the master is transmitting to the device, the device generates the acknowledge
bit because the device is the recipient. When the device
is transmitting to the master, the master generates the
acknowledge bit because the master is the recipient.
The device has two 7-bit long slave addresses. The bit
following a 7-bit slave address is the R/W bit, which is
low for a write command and high for a read command.
The first 4 bits (MSBs) of the device slave addresses
are always 0111. Slave address bits A[3:1] correspond,
by the matrix in Table 2, to the states of the device
address input pin AD0, and A0 corresponds to the R/W
bit (Figure 5). The AD0 input can be connected to any of
four signals: GND, VCC, SDA, or SCL, giving four possible slave-address pairs, allowing up to four devices to
share the same bus. Because SDA and SCL are dynamic
signals, care must be taken to ensure that AD0 transitions
no sooner than the signals on SDA and SCL.
The device monitors the bus continuously, waiting for a
START condition followed by its slave address. When the
device recognizes its slave address, it acknowledges
and is then ready for continued communication.
Table 2. 2-Wire Interface Address Map
PIN AD0
GND
V
CC
SDA10
SCL11
A7A6A5A4A3A2A1A0
0111
DEVICE ADDRESS
00
01
0
R/W
Bus Timeout
The device features a 20ms (min) bus timeout on the
2-wire serial interface, largely to prevent the device from
holding the SDA I/O low during a read transaction, should
the SCL lock up for any reason before a serial transaction is completed. Bus timeout operates by causing the
device to internally terminate a serial transaction, either
read or write, if the time between adjacent edges on SCL
exceeds 20ms. After a bus timeout, the device waits for a
valid START condition before responding to a consecutive transmission. This feature can be enabled or disabled
under user control by writing to the configuration register.
Message Format for Writing
A write to the device comprises the transmission of the
slave address with the R/W bit set to zero, followed by at
least one byte of information. The first byte of information
is the command byte. The command byte determines
which register of the device is to be written by the next
byte, if received. If a STOP condition is detected after the
command byte is received, the device takes no further
action (Figure 6) beyond storing the command byte.
Any bytes received after the command byte are data
bytes. The first data byte goes into the internal register
of the device selected by the command byte (Figure 7).
If multiple data bytes are transmitted before a STOP
condition is detected, these bytes are generally stored
in subsequent device internal registers, because the
command byte address generally autoincrements.
The device is read using the internally stored command
byte as an address pointer, the same way the stored command byte is used as an address pointer for a write. The
pointer generally autoincrements after each data byte is
read using the same rules as for a write. Thus, a read is
initiated by first configuring the device’s command byte
by performing a write (Figure 6). The master can now
read N consecutive bytes from the device, with the first
data byte being read from the register addressed by the
initialized command byte. When performing read-afterwrite verification, remember to reset the command byte’s
address because the stored command byte address is
generally autoincremented after the write (Figure 8).
Operation with Multiple Masters
When the device is operated on a 2-wire interface with
multiple masters, a master reading the device uses a
repeated START between the write that sets the device’s
address pointer, and the read(s) that takes the data from
the location(s). This is because it is possible for master 2
to take over the bus after master 1 has set up the device’s
address pointer but before master 1 has read the data. If
master 2 subsequently resets the device’s address pointer,
master 1’s read can be from an unexpected location.
Command Address Autoincrementing
Address autoincrementing allows the device to be
configured with fewer transmissions by minimizing the
number of times the command address needs to be
sent. The command address (0x31 to 0x5B) stored in the
device increments after each data byte is written or read.
Autoincrement only functions when doing a multiburst
read or write.
Applications Information
Reset from I2C
After a catastrophic event such as ESD discharge or
microcontroller reset, use bit D4 of the GPIO global
configuration register (0x40) as a software reset.
Hot Insertion
The INT, SCL, and AD0 inputs and SDA remain high
impedance with up to 5.5V asserted on them when the
device powers down (VCC = 0V). I/O ports remain high
impedance with up to 5.5V asserted on them when not
powered. Use the device in hot-swap applications.
The LED’s on-time in each PWM cycle is phase delayed
by 45N into four evenly spaced start positions. Optimize
phasing when using fewer than four ports as constantcurrent outputs by allocating the ports with the most
appropriate start positions. For example, if using two
constant-current outputs, choose PORT12 and PORT14
because their PWM start positions are evenly spaced.
In general, choose the ports that spread the current
demand from the ports’ load supply.
Power-Supply Considerations
The device operates with a 1.62V to 3.6V power-supply
voltage. Bypass the power supply VCC to GND with a
0.1FF or higher ceramic capacitor as close as possible
to the device. Bypass the logic power supply (VLA) to
GND with a 0.1FF or higher ceramic capacitor as close
as possible to the device.
Table 3. ESD Test Levels
1A—CONTACT DISCHARGE1B—AIR DISCHARGE
LEVELTEST VOLTAGE (kV)LEVELTEST VOLTAGE (kV)
1212
2424
3638
48415
XSpecialXSpecial
ESD Protection
All device pins meet the Q2.5kV Human Body Model ESD
tolerances. The GPIOs meet IEC 61000-4-2 ESD protection. The IEC test stresses consist of 10 consecutive ESD
discharges per polarity at the maximum specified level
and below (per IEC 61000-4-2). Test criteria include:
1) The powered device does not latch up during the ESD
discharge event.
2) The device subsequently passes the final test used for
prescreening.
Tables 3 and 4 are from the IEC 61000-4-2: Edition 1.1
and measurement techniques—Electrostatic discharge
immunity test.
X = Open level. The level has to be specified in the dedicated equipment specification. If higher voltages than those shown are
specified, special test equipment could be needed.
Table 4. ESD Waveform Parameters
INDICATED
LEVEL
127.50.7 to 142
24150.7 to 184
3622.50.7 to 1126
48300.7 to 1168
0GPIO function
1LED driver enable
0GPIO function
1LED driver enable
0GPIO function
1LED driver enable
0GPIO function
1LED driver enable
1
0
0
0
0
Table 7. GPIO Direction 1 Register (0x34)
REGISTER BITDESCRIPTIONVALUEFUNCTIONDEFAULT VALUE
D7PORT7
D6PORT6
D5PORT5
D4PORT4
D3PORT3
D2PORT2
D1PORT1
D0PORT0
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0Set as input pin
1Set as output pin
0
0
0
0
0
0
0
0
Table 9. GPO Output Mode 1 Register (0x36)
REGISTER BITDESCRIPTIONVALUEFUNCTIONDEFAULT VALUE
D7PORT7
D6PORT6
D5PORT5
D4PORT4
D3PORT3
D2PORT2
D1PORT1
D0PORT0
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
D7PORT150Port is an open-drain output0
D6PORT140Port is an open-drain output0
D5PORT130Port is an open-drain output0
D4PORT120Port is an open-drain output0
D3PORT11
D2PORT10
D1PORT9
D0PORT8
Note: When programmed as GPO, PORT15–PORT12 are always open-drain and bits D[7:4] are not writable.
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
0Port is an open-drain output
1Port is a push-pull output
Level shift between PORT1 and PORT9 enabled;
direction controlled by GPIO direction 2 register (0x35)
Level shift between PORT0 and PORT8 enabled;
direction controlled by GPIO direction 2 register (0x35)
Table 16. GPIO Global Configuration Register (0x40)
REGISTER BITDESCRIPTIONVALUEFUNCTIONDEFAULT VALUE
D[7:6]Reserved0—00
0Disabled
D5
I2C timeout
interrupt enable
1
INT is asserted when I2C bus times out.
INT is deasserted when a read is performed on the
I2C timeout flag register (0x48).
0
0
0
D4GPIO enable
D3GPIO reset
D[2:0]Fade-in/out time
PWM, constant-current circuits, and GPIs are shut
0
1
0Normal operation.
1
000No fading.
XXX
down. GPO values depend on their setting. Register
0x31 to 0x5B values are stored and cannot be
changed. The entire part is shut down.
Normal GPIO operation. PWM, constant-current circuits,
and GPIOs are enabled.
Return all GPIO registers (registers 0x31 to 0x5B) to
their POR value. This bit is momentary and resets itself
to 0 after the write cycle.
PWM intensity ramps up (down) between the common
PWM value and 0% duty cycle in 16 steps over the
following time period:
D[2:0] = 001 = 256ms
D[2:0] = 010 = 512ms
D[2:0] = 011 = 1024ms
D[2:0] = 100 = 2048ms
D[2:0] = 101 = 4096ms
D[2:0] = 110/111 = Undefined
000Port does not blink
001Port blink period is 256ms
010Port blink period is 512ms
011Port blink period is 1024ms
100Port blink period is 2048ms
101Port blink period is 4096ms
110/111Undefined
00LED is on for 50% of the blink period
01LED is on for 25% of the blink period
10LED is on for 12.5% of the blink period
11LED is on for 6.25% of the blink period
MAX7304
I2C-Interfaced 16-Port,
Level-Translating GPIO and LED Driver
with High Level of Integrated ESD Protection
Table 23. Interrupt Mask 1 Register (0x58)
REGISTER BITDESCRIPTIONVALUEFUNCTIONDEFAULT VALUE
D7PORT7
D6PORT6
D5PORT5
D4PORT4
D3PORT3
D2PORT2
D1PORT1
D0PORT0
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
1
1
1
1
1
1
1
1
Table 24. Interrupt Mask 2 Register (0x59)
REGISTER BITDESCRIPTIONVALUEFUNCTIONDEFAULT VALUE
D7PORT15
D6PORT14
D5PORT13
D4PORT12
D3PORT11
D2PORT10
D1PORT9
D0PORT8
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
0Interrupt is not masked
1Interrupt is masked
For the latest application details on WLP construction,
dimensions, tape-carrier information, PCB techniques,
bump-pad layout, and recommended reflow temperature profile, as well as the latest information on reliability
testing results, refer to Application Note 1891: Wafer-Level Packaging (WLP) and Its Applications, available at
www.maxim-ic.com.
PROCESS: BiCMOS
PARTTEMP RANGEPIN-PACKAGE
MAX7304ETG+
MAX7304EWA+**
+Denotes a lead(Pb)-free/RoHS-compliant package.
*EP = Exposed pad.
**Future product—contact factory for availability.
-40NC to +85NC
-40NC to +85NC
Chip Information
Ordering Information
24 TQFN-EP*
25 WLP
Package Information
For the latest package outline information and land patterns (footprints), go to www.maxim-ic.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.
Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are implied.
Maxim 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 Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 28