Die Serie MCP23X17 sind 16 Bit Portexpander. Diese können dazu genutzt die Anzahl der GPIO für Input- / und Output-Aufgaben zu erweitern. Dazu bietet jeder dieser Portexpander 16 GPIOs an, welche sich auf zwei Registerbänke zu je 8 GPIOs aufteilen.
Weiterhin können diese Chips via Adress-Settings an einem Bus einfach parallel angeschlossen werden. Durch diese Adress-Codierung kann man an einem I²C wie auch an einem SPI Bus mit nur einem CS-Pin, insgesamt 8 dieser Erweiterungsbausteine anschließen.
Als weitere Besonderheit verfügen diese Bausteine über Eingangsrückmelder INT_A und INT_B welche immer aktiv werden, wenn an einem der INPUT GPIOs ein Pegelwechsel festgestellt wird. Dieses dient vorrangig dazu den Datenstrom auf den Datenbus zu reduzieren, weil man für verschiedene Input Abfragen nicht ständig die Port-Register auslesen muss, sondern einfach auf das INT Signal warten kann. Zudem kann über den vorhandene RESET Pin im Falles eines Datakonfliketes der Bus geresetet werden, wie auch während der Laufzeit die GPIO Nutzung variabel umprogrammiert werden.
Die kleineren Brüder mit nur 8 Bit bzw. 8 GPIOs sind die MCP23008 bzw. MCP23S08.