component
MCP23017
Public Unreviewedby adom
Microchip 16-bit I2C I/O expander, SOIC-28. Two 8-bit ports, interrupts, configurable pull-ups, 3 address pins. Datasheet-verified.
← Commit history
page.json+234−22@@ -3,8 +3,9 @@ "type": "component", "slug": "mcp23017", "title": "MCP23017",- "brief": "16-bit I2C I/O expander, DIP-28",+ "brief": "Microchip 16-bit I2C I/O expander, SOIC-28. Two 8-bit ports, interrupts, configurable pull-ups, 3 address pins. Datasheet-verified.", "version": "0.1.0",+ "license": "CC-BY-SA-4.0", "tags": [ "component", "interface",@@ -14,36 +15,247 @@ "soic-28", "microchip" ],- "license": "MIT", "component": { "mpn": "MCP23017",- "manufacturer": "Microchip",- "package": "DIP-28",- "pin_count": null,- "category": "library",- "subcategory": "",- "body_size": null,- "parts": {},- "distributor_links": {}+ "manufacturer": "Microchip Technology",+ "package": "SOIC-28",+ "pin_count": 28,+ "category": "Interface IC",+ "subcategory": "I2C 16-bit I/O expander",+ "datasheet": "https://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf",+ "parts": {+ "symbol": "mcp23017.kicad_sym",+ "footprint": "mcp23017.kicad_mod",+ "model_3d": "mcp23017.glb"+ },+ "distributor_links": {},+ "pins": [+ {+ "number": "1",+ "name": "GPB0",+ "type": "bidirectional",+ "description": "PORTB bit 0 bidirectional I/O. Configurable per-pin as input or output; supports interrupt-on-change and internal ~75 \u00b5A weak pull-up to VDD. IOL up to 8.0 mA @ VDD=4.5V."+ },+ {+ "number": "2",+ "name": "GPB1",+ "type": "bidirectional",+ "description": "PORTB bit 1 bidirectional I/O. Same characteristics as GPB0 - configurable direction, interrupt-on-change, optional weak pull-up."+ },+ {+ "number": "3",+ "name": "GPB2",+ "type": "bidirectional",+ "description": "PORTB bit 2 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "4",+ "name": "GPB3",+ "type": "bidirectional",+ "description": "PORTB bit 3 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "5",+ "name": "GPB4",+ "type": "bidirectional",+ "description": "PORTB bit 4 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "6",+ "name": "GPB5",+ "type": "bidirectional",+ "description": "PORTB bit 5 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "7",+ "name": "GPB6",+ "type": "bidirectional",+ "description": "PORTB bit 6 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "8",+ "name": "GPB7",+ "type": "bidirectional",+ "description": "PORTB bit 7 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "9",+ "name": "VDD",+ "type": "power_in",+ "description": "Positive supply. Operating range 1.8V-5.5V (industrial), 2.7V-5.5V and 4.5V-5.5V for wider temperature grades. Bypass with a 0.1 \u00b5F ceramic close to the pin."+ },+ {+ "number": "10",+ "name": "VSS",+ "type": "power_in",+ "description": "Ground reference for supply and all I/O."+ },+ {+ "number": "11",+ "name": "NC",+ "type": "unconnected",+ "description": "No connect on MCP23017 (this pin is Chip Select /CS on the SPI-variant MCP23S17). Leave floating or tie to ground."+ },+ {+ "number": "12",+ "name": "SCL",+ "type": "input",+ "description": "I2C serial clock input (Schmitt-trigger). Standard 100 kHz, Fast 400 kHz, and Fast-mode Plus 1.7 MHz supported. Requires an external pull-up resistor to VDD."+ },+ {+ "number": "13",+ "name": "SDA",+ "type": "bidirectional",+ "description": "I2C serial data (open-drain, Schmitt-trigger input). Requires an external pull-up resistor to VDD. VOL \u2264 0.6V @ 3 mA sink (VDD=1.8V), \u2264 0.8V @ 3 mA sink (VDD=4.5V)."+ },+ {+ "number": "14",+ "name": "NC",+ "type": "unconnected",+ "description": "No connect on MCP23017 (this pin is SPI Serial Out on MCP23S17). Leave floating or tie to ground."+ },+ {+ "number": "15",+ "name": "A0",+ "type": "input",+ "description": "Hardware slave address bit 0 (TTL buffer). Must be externally biased to VDD or VSS - do not leave floating. Sets bit A0 of the 7-bit I2C address 0100 A2 A1 A0."+ },+ {+ "number": "16",+ "name": "A1",+ "type": "input",+ "description": "Hardware slave address bit 1 (TTL buffer). Must be externally biased to VDD or VSS."+ },+ {+ "number": "17",+ "name": "A2",+ "type": "input",+ "description": "Hardware slave address bit 2 (TTL buffer). Must be externally biased to VDD or VSS. Combined with A1/A0 allows up to eight MCP23017 devices on one I2C bus."+ },+ {+ "number": "18",+ "name": "RESET",+ "type": "input",+ "description": "Active-low hardware reset (Schmitt-trigger). Must be externally biased (tie to VDD directly or via a pull-up if unused). Minimum low pulse 1 \u00b5s; device is active 0 ns after RESET returns high; outputs go Hi-Z within 1 \u00b5s of RESET going low."+ },+ {+ "number": "19",+ "name": "INTB",+ "type": "output",+ "description": "Interrupt output for PORTB. Configurable via IOCON as active-high, active-low, or open-drain. Can be mirrored with INTA when IOCON.MIRROR=1. VOL \u2264 0.6V @ 1.6 mA sink (VDD=4.5V)."+ },+ {+ "number": "20",+ "name": "INTA",+ "type": "output",+ "description": "Interrupt output for PORTA. Configurable via IOCON as active-high, active-low, or open-drain. Can be mirrored with INTB when IOCON.MIRROR=1."+ },+ {+ "number": "21",+ "name": "GPA0",+ "type": "bidirectional",+ "description": "PORTA bit 0 bidirectional I/O. Configurable per-pin as input or output; supports interrupt-on-change and internal ~75 \u00b5A weak pull-up to VDD. IOL up to 8.0 mA @ VDD=4.5V."+ },+ {+ "number": "22",+ "name": "GPA1",+ "type": "bidirectional",+ "description": "PORTA bit 1 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "23",+ "name": "GPA2",+ "type": "bidirectional",+ "description": "PORTA bit 2 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "24",+ "name": "GPA3",+ "type": "bidirectional",+ "description": "PORTA bit 3 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "25",+ "name": "GPA4",+ "type": "bidirectional",+ "description": "PORTA bit 4 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "26",+ "name": "GPA5",+ "type": "bidirectional",+ "description": "PORTA bit 5 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "27",+ "name": "GPA6",+ "type": "bidirectional",+ "description": "PORTA bit 6 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ },+ {+ "number": "28",+ "name": "GPA7",+ "type": "bidirectional",+ "description": "PORTA bit 7 bidirectional I/O with optional interrupt-on-change and weak pull-up."+ }+ ],+ "provenance": {+ "extractor": "ds2sf",+ "datasheet": {+ "url": "https://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf",+ "pages": 42,+ "sha256": "14159c6f5655e943",+ "source_tier": "mfr"+ },+ "cad": "KiCad official (CC-BY-SA 4.0)",+ "pins": {+ "total": 28,+ "described": 28,+ "cites_pages": true,+ "refuses_to_fabricate": true+ }+ },+ "viewers": {+ "symbol": "viewers/symbol.html",+ "footprint": "viewers/footprint.html"+ } },- "readme": "# MCP23017\n\n16-bit I2C I/O expander, DIP-28\n\nThe MCP23017 is a 16-bit I/O expander with I2C interface from Microchip. Provides 16 additional GPIO pins configurable as input or output with interrupt capability. Up to 8 devices on one bus (128 extra GPIOs).",+ "metadata": {+ "specs": {+ "Type": "I2C 16-bit I/O expander",+ "I/O lines": "16 (ports GPA0-7, GPB0-7)",+ "Bus": "I2C up to 1.7 MHz",+ "Address pins": "A0-A2 (8 per bus)",+ "Per-pin features": "direction, pull-up, polarity, interrupt",+ "Interrupts": "INTA + INTB (configurable)",+ "Supply voltage": "1.8-5.5 V",+ "Package": "SOIC-28"+ }+ },+ "sections": [+ "hero",+ "viewers",+ "readme",+ "breadcrumbs",+ "info"+ ],+ "discovery_triggers": [+ "mcp23017",+ "16-bit io expander",+ "i2c gpio expander",+ "port expander",+ "mcp23017 i2c"+ ],+ "discovery_pitch": "MCP23017 16-bit I2C I/O expander (SOIC-28) with datasheet-verified pinout, KiCad symbol/footprint/3D, and full provenance.", "author": {- "name": "Kyle Bergstedt",- "email": "[email protected]"+ "name": "Ray",+ "email": "[email protected]" },- "visibility": "public",+ "dependencies": {}, "hero": { "type": "image", "path": "docs/hero.png" },- "sample_prompts": [],- "discovery_triggers": [],- "discovery_pitch": null,- "metadata": {},- "created_at": "2026-05-28T05:33:57.303Z",- "updated_at": "2026-05-28T05:33:57.303Z",- "description": "Microchip 16-bit I2C I/O expander, SOIC-28. Two 8-bit ports, interrupts, configurable pull-ups, 3 address pins. Datasheet-verified.",- "dependencies": {}, "files": [ "page.json", "README.md",