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.
master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
{
"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"
}
]
}