master
Ray mcp23017: laser-etched CAD + chip hero (factory 2.0.0 backfill) 1b3a786 29d ago
{
  "schema_version": 1,
  "type": "component",
  "slug": "mcp23017",
  "title": "MCP23017",
  "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",
    "io-expander",
    "i2c",
    "gpio",
    "soic-28",
    "microchip"
  ],
  "component": {
    "mpn": "MCP23017",
    "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-etched.glb",
      "model_3d_plain": "mcp23017.glb",
      "lbr": "mcp23017.lbr",
      "model_3d_step": "mcp23017-etched.step",
      "model_3d_step_plain": "mcp23017.step"
    },
    "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 µA 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 µF 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 ≤ 0.6V @ 3 mA sink (VDD=1.8V), ≤ 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 µs; device is active 0 ns after RESET returns high; outputs go Hi-Z within 1 µs 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 ≤ 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 µA 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"
    }
  },
  "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": "Ray",
    "email": "[email protected]"
  },
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "mcp23017.kicad_sym",
    "mcp23017.kicad_mod",
    "mcp23017.glb",
    "mcp23017.lbr",
    "docs/hero.png",
    "docs/mcp23017-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "mcp23017-etched.step"
  ],
  "variants": [
    {
      "mpn": "MCP23017-E/SO (SOIC-28)",
      "kind": "packaging"
    },
    {
      "mpn": "MCP23017-E/SP (SPDIP-28)",
      "kind": "packaging"
    }
  ]
}