Dieser Beitrag soll der Hardware in der Zentrale des HomePi beschreiben.

In Teil 1 sind dies die Platinen, die alle Einzelkomponenten miteinander verbinden.


Die in der Zentrale des HomePi verwendeten Platinen habe ich selbst mit EAGLE entworfen und dann nach meinen Layouts fertigen lassen und schließlich von Hand bestückt.

Die ersten Platinen aus dem Jahr 2015 sind noch recht einfach gehalten mit THT-Bauteilen, ohne Lötstopplack und ohne Durchkontaktierungen.

Die erste Erweiterung im Jahr 2016 folgten kann war dann schon etwas komplexer und in der gleichen Qualität.

Im Mai 2019 habe ich dann zusammen mit einer Erweiterung einige Platinen unter Verwendung von SMD-Bauteilen neu designt und inklusive Durchkontaktierungen, Lötstopplack und Bestückungsdruck fertigen lassen.

Anfang 2020 folgten dann nochmals ein paar Erweiterungen und Upgrades mit neuen Platinen.

Die Platinen aus 2015 und 2016 habe ich mit gutem Ergebnis bei der kleinen deutschen Firma Platinenbelichter fertigen lassen.

Die neuen Platinen in 2019 und 2020 wurden von ALLPCB in China gefertigt. Die Qualität und das Preis-/Leistungsverhältnis sind echt top.


Hauptplatine mit Raspberry Pi

Das Herzstück des HomePi bildet ein Raspberry Pi 4 Modell B mit 4Gb Arbeitsspeicher. Dieser ist auf die selbst designte HomePi Hauptplatine aufgeschraubt und über ein kurzes 40-poliges Flachbandkabel verbunden.

Die Hauptplatine stellt die Verbindung des Raspberry Pi mit der Backplane sicher. Hierzu gehören die Spannungsversorgung, der I²C-Bus, die SPI-Schnittstelle, der 1-Wire Bus, die UART-Schnittstelle, sowie einige GPIOs.

Weiterhin verfügt die Hauptplatine über zwei Status-LEDs, die direkt über die GPIOs 26 und 27 (BCM) angesteuert werden können.

Der 1-Wire Bus ist mit dem GPIO 04 (BCM) verbunden und mit einem Pullup-Widerstand gegen +3,3 V versehen. Zur Überwachung der Temperatur in der Zentrale ist zudem in Temperatursensor vom Typ DS18B20 vorgesehen.

Für den Fall, dass sich der Raspberry Pi mal aufhängt, ist eine Ansteuerung des Reset-Pins des Raspberry Pi vorgesehen. Der Reset-Pin wird bei Bedarf über einen Optokoppler gegen GND geschaltet. Hierfür ist die Reset-Leitung als Active Low auf den Pin A26 zur Backplane geführt.

Optional ist eine +5 V Stromversorgung für eine 2,5” USB-Festplatte über einen Phoenixstecker vorgesehen.

Eagle-Dateien


Backplane

Die Backplane dient der Verbindung aller Einschubplatinen und stellt somit die Signalübertragung zwischen den einzelnen Platinen her. Alle Signale werden direkt zu allen Einschubplatinen weitergeleitet.

Pro Backplane können über 64-polige Feder- beziehungsweise Messerleisten bis zu vier Einschubplatinen verbunden werden. Über zweireihige Stift- beziehungsweise Buchsenleisten ist zudem eine Verbindung mehrerer Backplanes und somit eine einfache Erweiterbarkeit möglich.

Eagle-Dateien


Spannungsversorgung

Die Stromversorgung erfolgt über ein Schaltnetzteil, welches eine Spannung von +24 V und bis zu 3 A Strom liefert. Diese +24 V werden über einen Phoenixstecker auf die Spannungsversorgungsplatine gegeben.

Details zur im Jahr 2020 aktualisierten Spannungsversorgung sind im Beitrag Projekt HomePi – Die Spannungsversorgung zu finden.


CAN-Bus

Diese Einschubplatine ermöglicht die Anbindung eines CAN-Bus an den HomePi. Die Anbindung an den zentralen Raspberry Pi erfolgt über die SPI-Schnittstelle über einen MCP2515 CAN-Controller sowie einen MCP2562 CAN-Transceiver.

Herausgeführt wird der CAN-Bus über RJ45 Buchsen, wodurch die externe Verkabelung die Verwendung von handelsüblichen Netzwerkkabeln ermöglicht. Achtung: Es darf, trotz gleicher Stecker, keine Verbindung zwischen dem CAN-Bus und einem Ethernet hergestellt werden, da dies zu Beschädigungen auf beiden Seiten führen kann!

Es sind ein bis drei Anschlüsse von Kabeln zur externen Verteilung des CAN-Bus sowie +24 V Versorgungsspannung vorgesehen. Da ein CAN-Bus als Linientopologie aufgebaut wird, sind die drei Anschlüsse in Reihe geschaltet. Über ein angeschlossenes Kabel wird der CAN-Bus hin und auch wieder zurück geführt. Bei dem letzten verwendeten Anschluss muss die Drahtbrücke (Jumper) zur Aktivierung des Abschlusswiderstands gesetzt werden.

Zusätzlich zu der direkten Anbindung an den Raspberry Pi Verfügt diese Platine über einen eigenständigen Mikrocontroller vom Typ ATMega328, der ebenfalls über einen MCP2515 und MCP2562 an den CAN-Bus angebunden ist. Über diesen kann bei einer entsprechenden Nachricht über den CAN-Bus ein Hardware-Reset des zentralen Raspberry Pi ausgelöst werden. Zusätzlich steuert er drei Status-LEDs an und verfügt über neun freie GPIOs, die bei Bedarf auf die Leitungen A14 bis A22 der Backplane gelegt werden können.

Die drei Status-LEDs können, je nach Programmierung des ATMega328 Mikrocontrollers, beispielsweise dazu genutzt werden den Empfang von bestimmten CAN-Nachrichten unabhängig vom zentralen Raspberry Pi zu signalisieren.

Programmiert werden kann der ATMega328 Mikrocontroller entweder über die herausgeführten Pins der ISP-Schnittstelle, oder alternativ über die nach vorne herausgeführte UART-Schnittstelle. Für die Verwendung der UART-Schnittstelle ist ein entsprechender Bootloader auf dem Mikrocontroller erforderlich. Die Belegung der Buchsenleiste ist für ein direktes Anstecken der meisten FT232RL USB-TTL-Konverter ausgelegt.

Eagle-Dateien


Rollladensteuerung

Zur Ansteuerung von drei Rollläden habe ich bereits im Jahr 2015 diese Platine entworfen und gebaut. Sie funktioniert seit dem sehr gut, trotzdem an dieser Stelle der Hinweis, dass ich dies inzwischen etwas anders bauen würde.

Auf der Platine befinden sich zwei PCF8574 ICs, wobei jeweils einer für 6 Aus- beziehungsweise 6 Eingänge zuständig ist. Die Ansteuerung der beiden ICs erfolgt durch den zentralen Raspberry Pi über den I²C-Bus. Alle Ein- und Ausgänge sind über Optokoppler von der externen Verkabelung galvanisch getrennt.

Die Ausgänge sind über einen 74HCT04N und zwei 74HCT08N Logik-ICs zur Sicherheit zusätzlich Hardwaremäßig gegeneinander verriegelt, sodass selbst bei einer falschen Ansteuerung des PCF8574 nicht hoch und runter von einem Rollladen gleichzeitig angesteuert werden können. Zur Anzeige des Status der Ausgänge sind zudem 6 Status-LEDs vorhanden.

Der Anschluss der externen Leitungen erfolgt über 10-polige Wannenstecker und die zugehörigen Pfostenbuchsen.

Zur Einbindung des alten Stecksystems an die neue 2019er Backplane ist eine Adapterplatine (siehe unten) erforderlich.

Eagle-Dateien


IO-Platine

Über die IO-Platine aus dem Jahr 2016 werden jeweils 16 digitale Ein- und Ausgänge bereitgestellt. Auch hier wieder der Hinweis, dass die Platine super funktioniert, ich dies inzwischen jedoch etwas anders bauen würde.

Die Steuerung der Ein- und Ausgänge erfolgt über vier PCF8574 ICs, wobei die I²C-Adressen über Lötbrücken einstellbar sind. Jeder Ein- beziehungsweise Ausgang ist über jeweils einen Optokoppler galvanisch getrennt angebunden. Alle Ausgänge werden zudem über einen Transistor vom Typ BC337-25 geschaltet, wodurch auch Lastströme bis zu 0,8 A direkt gesteuert werden können.

Die Anbindung von externen Komponenten erfolgt über RJ45-Buchsen. Diese sind recht günstig in der Anschaffung und einfach in der Handhabung. Einziger Nachteil ist, dass es eventuell zu Verwechslungen mit Ethernet-Buchsen kommen könnte.
Weiterhin sind zwei Wannenstecker vorgesehen, über die eine zusätzliche Verbindung zu anderen Platinen hergestellt werden kann. Dies kann beispielsweise erforderlich werden, wenn die Pins der RJ45-Buchsen nicht mehr ausreichen.

Um die Platine so flexibel wie möglich zu gestalten wurde auf eine feste Verbindung der IOs mit den RJ45-Buchsen beziehungsweise den Wannensteckern verzichtet. Dafür sind an den jeweiligen Stellen auf der Platine Lötpunkte vorgesehen, sodass einfache Kabelbrücken vom Ein- beziehungsweise Ausgang zum entsprechenden Anschluss geschaffen werden können.

Zur Einbindung des alten Stecksystems an die neue 2019er Backplane ist eine Adapterplatine (siehe unten) erforderlich.

Eagle-Dateien


Adapterplatine

Damit die älteren Platinen aus 2015 und 2016 mit der neuen Backplane aus 2019 weiter verwendet werden können, habe ich eine kleine Adapterplatine erstellt. Auf diese Adapterplatine kann eine alte Platine aufgelötet werden und die Kombination dann zusammen in das neue System gesteckt werden.

Eagle-Dateien