Metainformationen zur Seite
Dies ist eine alte Version des Dokuments!
MCP23017 Expansion Module
Beschreibung
Der MCP23017 ist die Bezeichnung des Chipsatzes, so gut wie immer findet man aber unter dem Namen auch passend vorkonfektionierte Module, z. B. dieses hier von Adafruit:
Abbildung: © https://learn.adafruit.com/adafruit-mcp23017-i2c-gpio-expander/overview
Ein Chip bzw. Modul kann 16 IOs bereitstellen. Je nach Konfiguration können diese als Ein- oder Ausgang dienen. Über 2 Interrupts (die jeweils an einen GPIO des Raspberry angeschlossen werden müssen), werden bei Eingängen Änderungen in Echtzeit eingelesen. Es können bis zu 8 Module parallel betrieben werden (also insgesamt 128 IOs). Dazu werden diese im “Daisy Chain”-Verfahren einfach hintereinander geschaltet.
Datenblatt
Hardware-Konfiguration
Das Modul wird an den I2C-Bus des Raspberry angeschlossen (PIN SDA, SCL) und benötigt zusätzlich die 3.3V Spannungsversorgung des Raspberrys (Anschluss an VCC und GND). Das Modul darf nicht an die 5V Spannungsversorgung des Raspberrys angeschlossen werden!
Wenn das Modul als Eingangskarte verwendet werden soll, so muss die Interrupt-Leitung (PIN INTA bzw. PIN INTB) des Moduls noch mit einem GPIO des Raspberrys verbunden werden.
Welche Bus-Adresse das Modul verwendet, muss über 3 PINs auf dem Modul eingestellt werden. Möglich sind Adressen zwischen 0x20 und 0x27
Die PINs werden wie folgt für die einzelnen Bus-Adressen gesetzt:
Address (Hex) MCP23017 | D2/A2 | D1/A1 | D0/A0 |
0x20 | LOW | LOW | LOW |
0x21 | LOW | LOW | HIGH |
0x22 | LOW | HIGH | LOW |
0x23 | LOW | HIGH | HIGH |
0x24 | HIGH | LOW | LOW |
0x25 | HIGH | LOW | HIGH |
0x26 | HIGH | HIGH | LOW |
0x27 | HIGH | HIGH | HIGH |
Software-Konfiguration
Modul
Eingänge
Bitte ergänzen
Ausgänge
Bitte ergänzen