← Commit history

component page: CAD + datasheet-first provenance

Ray ·aad600ef5a ·2mo ago ·parent 34953f7
1 file changed +234−22
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",