I2C general purpose I/O expanders
General purpose I/O expanders provide GPIO expansion for most microprocessor families allowing designers to save the GPIOs on microprocessors for other important functions.
As more features and processing requirements, such as LED control, hardware control monitors, and humidity sensors in the computing space are added to applications, the limited numbers of GPIOs on microprocessors are becoming more valuable. By implementing our I/O expanders, designers can utilize the microprocessor GPIOs for important functions and use the I/O expander for other duties including system monitoring, ACPI power switches, sensors, push buttons, LEDs, fans, etc.
GPIO are ideal for adding fan and LED control to systems. They are also ideal for monitoring system functions and accepting push-button inputs.
All our I2C general purpose I/O expanders offer similar functionality and most have an INT output but several newer devices also have a RESET input or RESET and OE input. The INT output is used to signal the microcontroller when any of the inputs change state (1 to 0, or 0 to 1). The RESET input can be used to initialize the device to its default state without de-powering it. This is useful in situations where the I2C bus has a glitch that prevents proper transmission of data between the microprocessor and I/O expander. Incorrect data in the I/O expander is eliminated through resetting it. Other slave devices without a RESET input require their power supply to be lowered to 0V and then powered back up to VCC for the slave device to return to its default state which can be inefficient and time consuming in the application. The OE is used to "Hi-Z" the outputs without having to use I2C commands. This is useful in applications such as LED control where the OE pin can be connected to the microcontroller and all LEDs blinked or dimmed at the same time while the individually LEDs are controlled via the I2C bus.
PCF8574(A) and PCF8575(C) Highlights
The PCF8574(A) and PCF8575(C) devices have an interrupt output, and the 8 or 16 I/O pins are used as inputs or outputs. An open-drain interrupt is activated when any input state differs from its corresponding input port register state and is used to indicate to the system master that an input state has changed. The outputs provide active sink current but are a current source to provide the source current. The PCF8574, PCF8575, and PCF8575C have the same I2C address while the PCF8574A has a slightly different fixed address allowing 16 devices (eight PCF8574A and eight PCF8574/PCF8575(C) in any combination) to be on the same I2C bus. The PCF8575C has open drain outputs and is optimized for automotive applications.
PCA8574(A) and PCA8575 Highlights
These are updated versions of the PCF8574(A) and PCF8575 that offer 400KHz operation over a VCC range of 2.3 to 5.5V with 5V-tolerance and the ability to sink 25mA per bit with all bits on (i.e., a total of 200mA for 8-bit products and 400mA for 16-bit products) over the -40 to +85°C temperature range.
The PCA9500 is a is a replacement for the PCF8574 8-bit I/O expander and for the 24C02 2kbit serial EEPROM in one 16-pin package. The PCA9500 has the same footprint as the PCF8574 except the interrupt output has been replace by the EEPROM write protect. The PCA9500 has the same I2C addresses as the PCF8574 and 24C02 and is seen as two different slave devices by the bus master.
The PCA9501 is a combination of the PCF8574 8-bit I/O expander and of the 24C02 2kbit serial EEPROM in one 20-pin TSSOP package. The four extra pins allow the interrupt output to be included in addition to the write protect and the three other pins are used to offer a total of six address pins allowing up to 64 of these devices to share the same I2C bus. It is seen as two different slave devices by the bus master with the I/O expander address starting with 1 and the EEPROM starting with 0. The PCA9500/PCA9501 devices are designed for telecom maintenance and control applications.
The PCA9502 is an 8-bit I/O expander with configurable I2C or SPI host interface. The I/O pins offer standard CMOS input or output, and the input states are latchable.
PCA9505 and PCA9506 Highlights
The PCA9505 and PCA9506 are 40-bit wide GPIOs electrically identical to the PCA9539 including the interrupt output and reset input but include an Output Enable. The PCA9505 and PCA9506 are identical except that the PCA9505 has internal pull-up resistors on each pin while the PCA9506 doesn't.
PCA9534 and PCA9535 Highlights
The PCA9534/PCA9535 are identical to the PCA9554/PCA9555 except that there is no internal pullup resistor. They are useful in battery-powered applications to minimize current drain and in applications where the outputs need to be tri-stated at power up or where external pulldown resistors are used.
The PCA9536 is identical to the PCA9554 except that it is a 4-bit instead of 8-bit GPIO in an 8-pin package, the I2C address is different/fixed, and there is no Interrupt Output.
The PCA9537 is identical to the PCA9534 except that it is a 4-bit instead of 8-bit GPIO in a 10-pin package, the I2C address is different/fixed, and there is a Hardware Reset input in addition to the Interrupt Output.
PCA9538 and PCA9539 Highlights
The PCA9538/PCA9539 are identical to the PCA9534/PCA9535 except that the I2C address range is different, and the A2 address pin input has been replaced by a Hardware Reset input. The Hardware Reset input allows the device to be reset remotely if the I2C bus hangs up.
PCA9554(A) and PCA9555 Highlights
The PCA9554(A) and PCA9555 are footprint and I2C address-identical to the PCF8574(A) and PCF8575 but provide push-pull outputs with active source and sink current sources. Internal pull up resistors provide the source current to imitate the PCF8574(A)/PCF8575. Additionally, there are four sets of registers that are programmable and provide for configuration (I or O) control, input (value), output (value), or polarity (active high or low). Although pinout and I2C addresses are the same as the PCF857X series, software changes are required due to the command byte. The application note AN469 discusses these software changes.
The PCA9557 features a hardware reset pin instead of the interrupt output that allows the device to be reset remotely should the I2C bus become hung up. The PCA9557 is an improved version of the PCA9556 and has the electrical characteristics of the PCA9554/PCA9554A.
The PCA9558 is a highly integrated, multi-function device composed of a 5-bit multiplexed/1-bit latched 6-bit I2C EEPROM, an 8-bit I/O expander (open drain), and a 2kbit serial EEPROM with write protect. The multiplexer can be used to select digital information between a set of 5-bits of default hardware inputs and an alternative set of inputs provided by the I2C interface and stored in the EEPROM. Examples of this type of selection include processor voltage configuration or processor Vendor IDentification (VID) and DIP switch or jumper replacement since the settings can be easily changed via the I2C without having to open the cabinet and the non-volatile memory retains the settings when the power is turned off. The I/O expander function is used to control, monitor, or collect remote information or power LEDs. Monitored or collected information can be read through the I2C or can be stored in the internal 2kbit serial EEPROM. Control information can be programmed through the I2C or can be programmed through the EEPROM. Information such as card identification or revision/maintenance history can be stored in the EEPROM on every card and can be read or written via the I2C when required.
PCA9670 through PCA9675 Highlights
These are Fast-mode Plus (Fm+) versions of the PCA8574(A) and PCA8575 that offer 1MHz operation up to 540pF bus loading and, at lower speeds, up to 4000pF. Three address pins allow for 64 different addresses by using inputs of GND, VCC, SCL, and SDA. The PCA9674(A) and PCA9675 are drop-in upgrades to the PCA8574(A) and PCA8575. The PCA9670 and PCA9675 are drop-in upgrades to the PCA8574(A) and PCA8575. The PCA9670 and PCA9671 are identical to the PCA9674 and PCA9675 except that the interrupt pin has been replaced with a hardware reset pin. The PCA9672 and PCA9673 are identical to the PCA9674 and PCA9675 except that the A2 address pin has been replaced by a hardwre reset pin which limits them to only 16 different addresses.
The PCA9698 is a 40-bit wide Advanced GPIO. Maximum frequency is 1000kHz. SDA output current is ten times stronger than normal to allow use in large area networks without the need for bus buffers. Each byte will change on acknowledge or wait for a stop condition, allowing you to update the output registers on multiple devices and then change all the outputs at once—which is great for large sign applications. Each pin can sink 25mA and all pins can be on (40 x 25mA = 1 amp) when using the HVQFN package. When used for sensing input, the inputs can be masked so you don't generate an interrupt. Three address pins allow for 64 different addresses by using inputs of GND, VCC, SCL, or SDA so you can control up to 2560 LEDs on one I2C bus. Additionally there is a GPIO All Call fixed address that allows you to turn on or off LEDs on all the GPIOs in the circuit with a single command sequence—which is great for lamp test or darking the array between displays. A hardware reset input will reset the device to its power up state. There is even an Output Enable pin that will tri-state the outputs which are selectable between push pull and open drain. There is no internal pull up resistor on the I/O pins.
Comparison Table A
Comparison Table B
I2C General Purpose I/O Expanders
Click for datasheet. Click More... to access full product/package information.
Frequently Asked Questions