Ursprünglich wollte ich einfach nur einen simplen Portexpander für das Labornetzteil bauen. Da hier im Forum aber immer wieder die Frage nach einer Erweiterung der vorhandenen Anzahl der GPIO auftaucht, habe ich zusätzlich eine erweiterte Schaltung entworfen.
Eine schnelle und einfache Möglichkeit der Erweiterung bietet der MCP23017, den es in einer I²C und einer SPI Version gibt. Erik Bartmann beschreibt in seinen beiden beigefügten Anleitungen, die er zum freien Download zur Verfügung stellt, zwar die SPI Version, aber abgesehen vom Bus ist die Umsetzung nahezu identisch.
Ich habe eine kleine Platine entworfen, mit der es einfach möglich ist, einen MCP23017 an einen Raspberry Pi, einen ESP8266 oder einen Arduino, etc. anzuschließen. Um diese Flexibilität zu ermöglichen, muss ein Betrieb mit sowohl 3V3 als auch 5V möglich sein. Hierzu habe ich für SDA und SCL einen Lötjumper vorgesehen, über den sich einstellen lässt, welche Spannung an den beiden Lötpads anliegen soll. Als Levelshifter wurde diese Lösung gewählt.
Da der RasPi an den GPIO für SDA und SCL bereits Pullup Widerstände integriert hat, müssen diese dann auf der Platine entsprechend weg gelassen werden. Um zu verdeutlichen, welche Widerstände zu welcher Spannung und welchem Signal gehören, habe ich sie neben den Kennzeichnungen für die Lötjumper positioniert.
Die Spannungsversorgung der angeschlossenen Komponenten kann über die Platine erfolgen. Es sind jeweils 6 Lötpads für Vcc und GND vorgesehen. Die Spannungsversorgung der Platine kann direkt über das Lötpad "Vcc" (zwischen GND und SDA) erfolgen. Wer die Spannungsversorgung lieber über eine externe Quelle zuführen möchte, kann dies über die Micro-USB-Buchse tun. Über einen Lötjumper kann dann eingestellt werden, ob die Platine mit den 5V aus der Buchse versorgt werden soll, oder ob daraus über den verbauten LDO 3V3 gemacht werden sollen, mit denen die Platine dann arbeitet. Der LDO kann bis zu 500mA liefern, was für den Betrieb der meisten Sensoren, LCD/TFT, etc ausreichend sein sollte.
Über drei Lötjumper am IC kann die I²C Adresse des MCP32017 frei konfiguriert werden.
Wer Interesse an einer (bestückten) Platine hat, kann sich gerne per PN melden, da ich noch einige Exemplare übrig habe.