MAX6956 Programming Guide
MAX6956 Programming Guide
4021
Maxim > Design Support > Technical Documents > Application Notes > Display Drivers > APP 4021
Maxim > Design Support > Technical Documents > Application Notes > Power-Supply Circuits > APP 4021
Abstract: This instructional guide provides detailed information on programming the MAX6956 LED
display driver and I/O expander. Programming tips for similar devices (the MAX6957, MAX7300, and
MAX7301) are also discussed.
Overview
The MAX6956 LED driver and I/O expander can provide and
maintain desired constant-current levels on all of its 20 or 28
(depending on the package type) LED drive ports without the use
of external current-limiting resistors. Sixteen constant-current levels
(from 1.5mA to 24mA) can be applied to all ports simultaneously or
Click here for an overview of the wireless
selected differently for each individual port. The MAX6956 not only components used in a typical radio
controls LED intensity levels, but also its port-matching accuracy transceiver.
The MAX6957 is similar to the MAX6956, but it has an SPI™- instead of an I²C-compatible interface.
The MAX7300 is a general-purpose I/O (GPIO) port expander that is similar to the MAX6956, except
that it does not have the constant-current LED-drive capability. The MAX7301 is a GPIO port expander
similar to the MAX7300, but it has an SPI- instead of an I²C-compatible interface.
Figure 1 shows a simple application example that uses the MAX6956 to drive ten white and RGB LEDs
without requiring current-limiting resistors.
Page 1 of 5
Figure 1. Application circuit for the MAX6956.
Page 2 of 5
I2CWrite(0x80, 0x02, 0x07); // Set a half global constant current
I2CWrite(0x80, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); // Set all
ports to LED drive mode
I2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit of the configuration
register
As a reference checkpoint the binary equivalent of the write command to set the shutdown/run bit is also
listed below.
Below are I²C commands to set one port (P4 in this example) to the full constant-current level at power-
up.
All ports are set to the logic input without a pullup resistor at power-up. Only the following I²C command
is needed to activate the MAX6956 to operate with all power-up defaults.
Below are data bytes on the MAX6957 DIN input pin to set all ports to half of the maximum constant-
current level of 24mA. These commands are similar to those for the MAX6956, except the need to
specify the device address. For the SPI interface, a particular device is selected by setting the active-low
CS input pin low. There is no register-address autoincrement feature for the MAX6957.
Page 3 of 5
0x0F, 0x00; // Set ports P28 through P31 to LED drive mode
0x04, 0x01; // Set the shutdown/run bit of the configuration register
Below are data bytes on the MAX7301 DIN input pin to set half of the ports, P14 through P23, as
outputs at logic-level high and then bring the chip into operation from initial shutdown. These commands
are similar to those for the MAX7300, except the need to specify the device address. For the SPI
interface, a particular device is selected by setting the active-low CS input pin low. There is no register-
address autoincrement feature for the MAX7300.
Page 4 of 5
Related Parts
MAX6946 10-Port, Constant-Current LED Driver and I/O Expander Free Samples
with PWM Intensity Control
MAX6957 4-Wire-Interfaced, 2.5V to 5.5V, 20-Port and 28-Port LED Free Samples
Display Driver and I/O Expander
MAX7301 4-Wire-Interfaced, 2.5V to 5.5V, 20-Port and 28-Port I/O Free Samples
Expander
More Information
For Technical Support: http://www.maximintegrated.com/support
For Samples: http://www.maximintegrated.com/samples
Other Questions and Comments: http://www.maximintegrated.com/contact
Page 5 of 5