Herzschrittmacher für den Raspberry Pi – Teil 2: Hardware

Herzschrittmacher Projekt LogoIn dieser Artikelserie geht es um ein Lebenserhaltungssystem für den Raspberry Pi. Sollte sich das Betriebssystem eines RasPi einmal aufhängen, wird eine Überwachung aktiv und startet den Raspberry Pi neu. Heute beschreibe ich die kleine Hardwareschaltung, die das ermöglicht. Zum Einsatz kommen ein kleiner Mikrocontroller, zwei MOSFETs, eine LED, die den Pulstakt anzeigt und ein paar passive Bauelemente. Daraus entsteht für kleines Geld eine kleine stromsparende Überwachungsschaltung, die einen Raspberry Pi im Fall der Fälle automatisch wieder zurück ins Leben holt.

Konzept

Herzschrittmacher BlockschaltbildWerfen wir zuerst noch einmal einen Blick auf das Blockschaltbild. Der Raspberry Pi bekommt einen Mikrocontroller zur Seite gestellt, der die die Vitalfunktion des RasPi überwacht und bei Bedarf die Stromzuführung unterbricht. Für die Übertragung des Herzschlagsignals verwenden wir einen GPIO-Pin des Raspberry Pi, der mit einem Eingang des Mikrocontrollers verbunden wird. Gleichzeitig wird in die Stromzuführung des Raspberry Pi ein Schaltmechanismus eingefügt, der vom µC gesteuert wird. Dazu braucht es dann noch Software für den Mikrocontroller und für den Raspberry Pi, aber um die geht es in den nachfolgenden Artikeln. Zuerst schauen wir uns die Schaltung an.

Schaltplan

Herzschrittmacher Schaltplan

Raspberry Pi Pins

Links befinden sich schematisch die ersten 20 der 40 Pins umfassenden GPIO-Leiste eines Raspberry Pi. Davon greifen wir 4 Pins ab:

  • Pin 1 ist der 3,3V Ausgang des Raspberry Pi. Diese 3,3V brauchen wir als Referenz um das Heartbeat-Signal von 3,3 auf 5V Logikpegel zu wandeln.
  • Pin 2 ist der 5V Stromanschluss des Raspberry Pi. Er wird über diesen Pin mit Strom versorgt und nicht über den üblichen Mikro-USB-Anschluss.
  • Pin 7 ist der GPIO-Ausgang BCM4, über den der Raspberry Pi seinen Herzschlag ausgibt. Natürlich kann auch ein anderer GPIO-Pin für diesen Zweck verwendet werden.
  • Pin 9 ist der Common Ground also Masse.

Herzschrittmacher-Schaltung auf einem Raspberry Pi 3Pegelanpassung

Beginnen wir bei Pin 7, an dem der Raspberry Pi seinen Herzschlag ausgibt (wenn die entsprechende Software läuft). Ein Raspberry Pi führt an seinen GPIO-Pins 3,3V Pegel, ein ATtiny 13A Mikrocontroller aber 5V. Kann es dann funktionieren, den Ausgang des Raspberry Pi direkt mit dem Eingang des ATtiny zu verbinden? Auskunft gibt das Datenblatt des ATtiny 13A. Dort wird die Input High Voltage, also der Spannungspegel, bei dem ein logisches High erkannt wird mit minimal 0,6 x VCC angegeben. Das wären bei 5,0V Versorgungsspannung 3,0V. Es könnte also knapp werden mit den 3,3V, die der Raspberry Pi anbietet, vor allem, wenn die Versorgungsspannung etwas höher liegt, als exakt 5V (darauf kommen wir später noch zu sprechen). Zur Beruhigung, ich habe es gemessen und erhalte bei einer Direktverbindung zwischen 2,9V und 3,1V und die High-Low-Erkennung funktioniert sogar mit diesen Werten einwandfrei. Eine saubere Lösung ist es aber nicht, Raspberry Pi und ATtiny direkt zu verbinden. Aus diesem Grund habe ich eine Pegelwandlung von 3,3V auf 5V eingebaut. Das übernimmt der N-Kanal MOSFET 2N7000 mit je einem 10kΩ Widerstand an Source und Drain, die zum jeweiligen Pluspol der Versorgungsspannung führen.

Puls LED

Am Drain-Beinchen des MOSFET hängt über einen 220Ω Vorwiderstand eine LED, die im Takt des Herzschlags blinkt. Die ist für die Funktion nicht erforderlich und man kann sie auch weglassen.

Mikrocontroller

Attiny-PinsDer ATtiny 13A ist einer der kleinsten und billigsten Mikrocontroller, die zu bekommen sind. Für diesen Zweck ist er aber immer noch leistungsstark genug. Zum Einbau sollte unbedingt eine 8-pol DIL-Fassung vorgesehen werden, damit der µC zur Programmierung entnommen werden kann. Der ATtiny hängt an der 5V Versorgungsspannung (Pin 8 = VCC und Pin 4= GND) und darüber hinaus brauchen wir zwei weitere Anschlüsse:

  • Pin 6 (PB1) ist der Puls-Eingang, der direkt mit der Drain des Pegelwandler MOSFET verbunden ist.
  • Pin 2 (PB3) ist der Schaltausgang, der die Stromversorgung des Raspberry Pi steuert.

Stromschalter

Ein I/O-Pin des Mikrocontrollers ATtiny 13A kann maximal 40mA Strom liefern. Das würde für eine LED reichen, aber nicht um damit einen Raspberry Pi zu versorgen, der auch mal 2A ziehen kann.Wir brauchen also einen Schalter, der so eine Last bewältigen kann. Ein Relais wäre die klassische Lösung, aber es geht auch sehr elegant auf elektronische Weise. Wir verwenden wieder einen MOSFET, aber diesmal den P-Kanal Typ SUP75P03-07. Der kann bis zu 65A schalten und kommt deshalb im dicken TO-220 Gehäuse daher. Einen Kühlkörper brauchen wir aber nicht. Der MOSFET bekommt die 5V Versorgungsspannung an Source angelegt und schaltet sie bei entsprechendem Gatesignal durch auf Drain. Zu beachten ist die invertierte Logik, wenn Low am Gate anliegt, wird die Spannung für den Raspberry Pi ein- und bei High ausgeschaltet.

Vorteil des SUP75P03-07 ist, dass es ein Logic-Level-MOSFET ist, also bereits mit 5V geschaltet werden kann und dass er einen geringen Drain-Source-Widerstand aufweist. Letzteres ist wichtig, damit von den angelegten 5V auch möglichst viel hinten beim Raspberry Pi ankommt. Dieser Punkt sollte nicht unterschätzt werden, ich messe 110mV, die am MOSFET verloren gehen. Von ursprünglich 5,00V bleiben also nur 4,89V übrig. Das sollte an sich reichen, wer aber seinen Raspberry Pi eh über einen Spannungswandler betreibt, wie ich bei meinen Kameras, der kann mit der Eingangsspannung ruhig entsprechend höher gehen, also vielleicht auf 5,15V. Dem ATtiny macht das nichts aus.

Bauteile

Ich führe hier nur die Elektronikbauteile auf, denn bei denen muss der Typ stimmen. Platine, Stecker, DIL-Fassung, LED und Widerstände besorgt man nach eigenem Wunsch im Elektronikfachhandel.

  • ATtiny 13A-PU Mikrocontroller im DIP-8 Gehäuse (keine 3€ für 5 Stück bei Amazon)
  • 2N7000 N-Kanal MOSFET im TO-92 Gehäuse (je nach abgenommener Stückzahl einige 10 Cent pro Stück bei Amazon)
  • SUP75P03-07 P-Kanal MOSFET im TO-220 Gehäuse (ca. 7€ pro Stück bei Amazon)

Zum Flashen des ATtiny Mikrocontrollers ist zusätzlich noch ein Programmer erforderlich.

Realisierung

Heartbeat-Schaltung für 5v Heartbeat-Schaltung für 12-19VDer Aufbau kann leicht auf einer kleinen Lochrasterplatine erfolgen. Wenn man der eine 10- oder 20-polige doppelreihige Buchsenleiste spendiert, dann kann sie direkt auf die GPIO-Stiftleiste des RasPi gesteckt werden. Es gibt diese Buchsenleisten mit überlangen Metallstiften. Die ermöglichen das Einlöten in eine Platine und sind dann noch lang genug, dass die Pins weiterhin mit Steckdrähten abgegriffen werden können. Das ist sinnvoll, wenn man weitere GPIO-Pins für andere Zwecke benötigt. Zur Verdrahtung kann für den Logikteil üblicher dünner Schaltdraht verwendet werden, aber alles was Strom zum Raspberry Pi führt (5V und GND), sollte mit dickem (0,5mm) Draht ausgeführt werden um Leitungswiderstände klein zu halten. Wer es gewohnt ist, eine Schaltung vor dem Löten auf einem Steckbrett aufzubauen, der sollte bedenken, dass die handelsüblichen Breadboards nicht für hohe Ströme gedacht sind. Da passiert zwar nichts, aber die Übergangswiderstände an den Steckverbindungen können sich aufsummieren, so dass für den Raspberry Pi hinten zu wenig oder instabile Spannung ankommt. Im Bild links oben sieht man einen Aufbau der Schaltung mit einem Micro-USB-Anschluss für die 5V-Zuführung. In der Variante rechts ist vorne links ein kleines Spannungswandler-Board aufgelötet und rechts daneben Klemmbuchsen zum Anschluss von 12V oder 19V.

 


Weitere Artikel in dieser Kategorie:

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.