← Commit history

Initial commit: component/pca9555

Ray ·e316c2c069 ·2mo ago
2 files changed +104
README.mdadded+68
@@ -0,0 +1,68 @@+# PCA9555++**NXP Semiconductors** · I2C 16-bit I/O expander · SO-24++A 16-bit general-purpose I/O expander with an I2C interface, in SO-24, NXP's take on the port-expander and a peer of the MCP23017. It gives a microcontroller sixteen more pins across two 8-bit ports (IO0 and IO1), each pin independently input or output, with a per-pin polarity-inversion register and an open-drain interrupt (INT) that fires on an input change so the host need not poll. Three address pins (A0-A2) put up to eight on one bus for 128 I/O. It runs I2C at up to 400 kHz over a 1.65-5.5 V supply, and unlike the PCF8574 it has real direction control per pin.++## Pinout++| Pin | Name | Type | Function |+|---|---|---|---|+| 1 | INT | output | Active-LOW open-drain interrupt output. Asserts when any input port pin state differs from its input port register value; requires an external pull-up to VDD. |+| 2 | A1 | input | I2C-bus slave address input bit 1. Tie to VDD or VSS to set the programmable portion of the 7-bit slave address (0100 A2 A1 A0). |+| 3 | A2 | input | I2C-bus slave address input bit 2. Tie to VDD or VSS to set the programmable portion of the 7-bit slave address. |+| 4 | IO0_0 | bidirectional | Port 0 bit 0 general-purpose I/O. Configurable per bit as input (default, high-Z with weak 100 kΩ pull-up to VDD) or push-pull output. 5 V-tolerant input. |+| 5 | IO0_1 | bidirectional | Port 0 bit 1 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 6 | IO0_2 | bidirectional | Port 0 bit 2 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 7 | IO0_3 | bidirectional | Port 0 bit 3 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 8 | IO0_4 | bidirectional | Port 0 bit 4 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 9 | IO0_5 | bidirectional | Port 0 bit 5 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 10 | IO0_6 | bidirectional | Port 0 bit 6 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 11 | IO0_7 | bidirectional | Port 0 bit 7 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 12 | VSS | power_in | Supply ground (0 V) reference for the device. |+| 13 | IO1_0 | bidirectional | Port 1 bit 0 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 14 | IO1_1 | bidirectional | Port 1 bit 1 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 15 | IO1_2 | bidirectional | Port 1 bit 2 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 16 | IO1_3 | bidirectional | Port 1 bit 3 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 17 | IO1_4 | bidirectional | Port 1 bit 4 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 18 | IO1_5 | bidirectional | Port 1 bit 5 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 19 | IO1_6 | bidirectional | Port 1 bit 6 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 20 | IO1_7 | bidirectional | Port 1 bit 7 general-purpose I/O. Configurable per bit as input (default) or push-pull output. 5 V-tolerant input. |+| 21 | A0 | input | I2C-bus slave address input bit 0. Tie to VDD or VSS to set the programmable portion of the 7-bit slave address (0100 A2 A1 A0). |+| 22 | SCL | input | I2C-bus serial clock input line. 0 Hz to 400 kHz clock frequency; requires external pull-up to VDD. |+| 23 | SDA | bidirectional | I2C-bus serial data line (open-drain). Requires external pull-up to VDD. |+| 24 | VDD | power_in | Positive supply voltage input. Operating range 2.3 V to 5.5 V; bypass locally with a 100 nF ceramic capacitor to VSS. |++## Key specifications++| Parameter | Value |+|---|---|+| Type | I2C 16-bit I/O expander |+| I/O lines | 16 (ports IO0, IO1) |+| Bus | I2C up to 400 kHz |+| Per-pin | direction + polarity inversion |+| Interrupt | open-drain INT on change |+| Address pins | A0-A2 (8 per bus) |+| Supply voltage | 1.65-5.5 V |+| Package | SO-24 |++## Ordering variants++- `PCA9555D (SO-24)`+- `PCA9555PW (TSSOP-24)`++## CAD (KiCad official)++- Symbol: `Interface_Expansion:PCA9555D`+- Footprint: `Package_SO:SOIC-24W_7.5x15.4mm_P1.27mm`+- 3D model: SOIC-24W (KiCad packages3D)++## Provenance++Data extracted from the manufacturer datasheet, not a distributor listing:++- **Datasheet:** [NXP Semiconductors datasheet](https://www.nxp.com/docs/en/data-sheet/PCA9555.pdf) (34 pp, sha256 `9f4f9c0ce4c461d7`, retrieved 2026-08-17, tier: manufacturer)+- **Extractor:** `ds2sf` (Claude). Every pin and dimension is cited to a datasheet page; it refuses to fabricate.+- **CAD:** KiCad official libraries (CC-BY-SA 4.0).++[Datasheet PDF](docs/pca9555-datasheet.pdf)
page.jsonadded+36
@@ -0,0 +1,36 @@+{+  "slug": "pca9555",+  "version": "0.1.0",+  "type": "component",+  "description": "NXP 16-bit I2C I/O expander, SO-24. Two 8-bit ports, interrupt output, polarity inversion, 3 address pins. Datasheet-verified.",+  "tags": [+    "component",+    "interface",+    "io-expander",+    "i2c",+    "gpio",+    "so-24",+    "nxp"+  ],+  "dependencies": {},+  "hero": {+    "type": "image",+    "path": "docs/hero.png"+  },+  "files": [+    "page.json",+    "README.md",+    "pca9555.kicad_sym",+    "pca9555.kicad_mod",+    "pca9555.glb",+    "docs/hero.png",+    "docs/pca9555-datasheet.pdf",+    "viewers/symbol.html",+    "viewers/footprint.html"+  ],+  "visibility": "public",+  "author": {+    "name": "Ray",+    "email": "[email protected]"+  }+}\ No newline at end of file