meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sensor:pcf857x [2026/05/14 15:42] – vamsan | sensor:pcf857x [2026/05/14 16:58] (current) – vamsan | ||
|---|---|---|---|
| Line 10: | Line 10: | ||
| ^Operating Voltage|2.5V to 6V|2.5V to 5.5V| | ^Operating Voltage|2.5V to 6V|2.5V to 5.5V| | ||
| ^Interrupt Output|Yes (Open-drain INT)|Yes (Open-drain INT)| | ^Interrupt Output|Yes (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). | ||
| + | |||
| + | The [[arduino: | ||
| **Main Control & Power Header** | **Main Control & Power Header** | ||
| - | * VCC: Power input. Connects to 3.3V or 5V to match your microcontroller' | + | |
| - | * 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): | ||
| + | * **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. | ||
| + | |||
| + | **How to Correctly Wire Components** | ||
| + | |||
| + | * **Correct (Sinking): | ||
| + | * **Incorrect (Sourcing): | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ==== Wiring with relay modules ==== | ||
| + | Connecting optocoupled relay modules to the PCF8575 is a common practice, but it requires strict electrical care. Because of the chip's asymmetrical quasi-bidirectional ports, a mistake in how you trigger the relay will prevent it from working entirely. | ||
| + | |||
| + | **The Triggering Rule: Active LOW Only** | ||
| + | |||
| + | * **Why Active HIGH fails:** Standard optocoupled multi-channel relay modules require 2-5 mA of logic current on their IN pins to light the internal infrared LED and engage the circuit. Because the PCF8575 can source only 0.1 mA when outputting HIGH, it cannot trigger an Active HIGH configuration. | ||
| + | * **Why Active LOW works:** When configured as Active LOW, the PCF8575 acts as a ground connection (0V), cleanly sinking the current from the relay module. The PCF8575 can safely sink up to 20 mA per pin, easily meeting the relay' | ||
| + | |||
| + | For example, the HL-54 (4-channel 3.3V optocoupled relay module) can be directly connected to the PCF8575. Because the HL-54 is hardwired as an Active LOW module, it is perfectly suited to the PCF8575' | ||
| + | |||
| + | ===== I²C topics on lamaPLC ===== | ||
| + | {{topic> | ||
| + | |||
| + | \\ | ||
| + | \\ | ||
| + | {{tag> | ||
| + | \\ | ||
| + | This page has been accessed for: Today: {{counter|today}}, | ||