meta data for this page
  •  

This is an old revision of the document!


lamaPLC: PCF857x I/O Expander chip/modul with I²C communication

CF857x I/O Expander chip/modul with I²C communication The PCF857x series consists of I²C-based general-purpose I/O (GPIO) expanders manufactured by NXP and Texas Instruments. They allow microcontrollers (such as Arduino, ESP32, or Raspberry Pi) to control multiple digital pins with only two wires: Serial Data (SDA) and Serial Clock (SCL).

FeaturePCF8574 / PCF8574APCF8575
GPIO Count8-bit (8 pins)16-bit (16 pins)
I²C Base Address0x20 (PCF8574) / 0x38 (PCF8574A)0x20
Max Devices on 1 Bus8 units16 units
Operating Voltage2.5V to 6V2.5V to 5.5V
Interrupt OutputYes (Open-drain INT)Yes (Open-drain INT)

The current limits of the PCF857x are heavily lopsided because of its quasi-bidirectional architecture. It handles current entirely differently depending on whether you are sinking current (outputting 0/LOW) or sourcing it (outputting 1/HIGH).

Main Control & Power Header

  • VCC: Power input. Connects to 3.3V or 5V to match your microcontroller's logic levels.
  • GND: Common ground reference.
  • SDA: Serial Data line for I²C communication.
  • SCL: Serial Clock line for I²C communication.
  • INT: Interrupt output (Active Low). Pulls low to alert the microcontroller when an input pin changes state, eliminating the need for software polling.

8/16-Bit I/O Extension Pins

  • Port 0 (P00 to P07): The first group of 8 quasi-bidirectional GPIO pins.
  • Port 1 (PCF8575 only, P10 to P17): The second group of 8 quasi-bidirectional GPIO pins.

Sinking Current (Output LOW / Connecting to Ground)

  • Maximum per individual pin: 25 mA (typical) / 20 mA for extended use.
  • Maximum combined total (all 16 pins combined): 100 mA.
  • The Math: If you activate all 16 pins simultaneously at LOW logic, you can only allocate a maximum of 6.25 mA per pin (100 mA ÷ 16) to avoid overloading the chip.

Sourcing Current (Output HIGH / Connecting to VCC)

This is the weak mode meant mostly for sensing state changes.

  • Maximum per individual pin: Only 100 µA (0.1 mA).
  • The Limit: This current is too weak to directly light up an LED or actuate a standard relay trigger.