Startseite>Mini-USV im Eigenbau
Aus Raspberry Pi Geek 10/2018

Mini-USV im Eigenbau

© Alongkot Sumritjearapol, 123RF

Ausfallsicher

Bernhard Bablok

Eine selbst gebaute USV für den RasPi verschafft Ihnen die entscheidenden Sekunden, um bei unerwarteten Stromausfällen einem Datenverlust vorzubeugen.

Bei einer klassischen unterbrechungsfreien Stromversorgung (USV) überwacht ein Mikroprozessor in der USV sowohl die Eingangsspannung als auch den Ladestand des Akkus. Bei einem Stromausfall schaltet er dann nicht nur auf Akkubetrieb um, sondern warnt zugleich den angeschlossenen Rechner. Fällt die Spannung des Akkus unter einen kritischen Wert, schaltet sich die USV ab und vermeidet so Schäden am Stromspeicher. Vorher bekommen angeschlossene Computer noch die Chance zum geordneten Herunterfahren.

Die Kommunikation mit dem Rechner läuft bei USVs üblicherweise über USB ab. Da Linux im Server-Bereich weit verbreitet ist, sieht es mit der Treiber-Unterstützung hier nicht schlecht aus. Für den geringen Strombedarf eines RasPi erweisen sich klassische Lösungen aber als überdimensioniert – hier hat sich ein eigener Markt mit kleinen Lösungen entwickelt, die in RPG bereits Thema waren [1].

Alternative

Für die Eigenbau-USV lohnt es sich, die Architektur des Systems in einigen Punkten abzuändern. Es liegt nahe, die Kommunikation nicht über USB abzuwickeln, sondern per GPIO. Wichtiger aber ist die geänderte Verschaltung der Komponenten (Abbildung 1).

Abbildung 1: Der Schaltplan unserer Mini-USV.

Abbildung 1: Der Schaltplan unserer Mini-USV.

Die Stromversorgung lädt über ein handelsübliches Modul einen 3,7-Volt-Akku. Der wiederum gibt seine Ladung über einen Spannungskonverter an den angeschlossenen RasPi ab. Bei diesem Setup entfällt die Notwendigkeit des schnellen Umschaltens von Netz- auf Akkubetrieb, was das Schalten deutlich vereinfacht. Darüber hinaus braucht der Mikrocontroller nur die Spannung am Akku im Blick zu behalten, das Modul zum Laden überwacht den Vorgang für den Akku selbstständig.

Als Nachteil entpuppt sich allerdings genau dieses Bauteil: Handelsübliche Akkus unterstützen nur begrenzte Ströme, bei 2 Ampere ist Schluss. Das Nachladen im Betrieb dauert deshalb sehr lange, der Bedarf des angeschlossenen Rechners darf nicht zu hoch ausfallen.

Abgesehen vom Mikrocontroller ähnelt die Architektur unserer Mini-USV also der einer Powerbank. Anders als bei dieser bekommt der RasPi aber dank der GPIO-Kommunikation eine Chance zum geordneten Shutdown.

Die Hardware

Der Aufbau des Systems ist leicht zu verstehen (Abbildung 2). Am Eingang oben links findet sich das Lademodul (TP4056). Rechts daneben liegt das Fach für die AA-großen Akkus (Typ 14500), die sich im Handel mit Kapazitäten von 450 bis maximal 800 mAh finden. Beim Akku in der Abbildung handelt es sich um ein China-Fake: Kapazitäten wie die aufgedruckte gibt es in dieser Baugröße nicht – der Akku speichert tatsächlich nur ungefähr 250 mAh.

Abbildung 2: Die Mini-USV besteht aus nur wenigen Teilen, die Sie leicht in eine kompakte Form bringen.

Abbildung 2: Die Mini-USV besteht aus nur wenigen Teilen, die Sie leicht in eine kompakte Form bringen.

Unten rechts sitzt der Mikrocontroller, ein 12F675. Rechts außen davon finden sich die Anschlüsse für die Leitungen zum RasPi. Links davon sitzt ein normaler Stepup-Konverter (MT3608), der aus der Akkuspannung von 3,7 V die vom RasPi benötigten 5 V erzeugt.

Ein Schalter sowie verschiedene LEDs, die den Betriebszustand signalisieren, ergänzen unsere USV. Nicht zu sehen ist der Mosfet vom Typ Si4463, mit dem der PIC den Stepup-Konverter vom Akku trennt.

Neben dem Status Ausgeschaltet kennt die USV die vier Zustände OK, WARN, CRIT und Shutdown. Die erste Warnstufe löst aus, wenn die Akkuspannung unter 3,5 Volt fällt. Kritisch wird es, wenn die Akkuspannung die 3,3-Volt-Grenze unterschreitet. Während diese drei Zustände beliebig wechseln dürfen, ist der letzte Zustand, Shutdown, final: Dann fällt die Spannung unter 2,9 Volt. In diesem Fall informiert der PIC den RasPi und schaltet die Stromzufuhr nach drei Minuten ab.

Die Tabelle “USV-Zustände” zeigt die zu den einzelnen Zuständen gehörenden Pegel-Level an den beiden Ausgängen GP4 und GP5. Damit der RasPi die Pegel auslesen kann, verbinden Sie diese (inklusive des mittleren GND-Pins) mit dem RasPi, zum Beispiel mit GPIO17 und GPIO27.

USV-Zustände

Zustand

GPIO4

GPIO5

Akkuspannung

OK

0

0

kleiner als 3,5 Volt

WARN

0

1

3,3 bis 3,5  Volt

CRIT

1

1

2,9 bis 3,3 Volt

Shutdown

1

0

kleiner als 2,9 Volt

Die Anforderungen an den PIC fallen recht gering aus. Er misst mit seinem internen ADC (10 Bit) die Spannung ähnlich wie in einem früheren Artikel beschrieben [2]. Dort war der externe ADC MCP2002 (10 Bit) oder ADC MCP2202 (12 Bit) Thema: Der ADC vergleicht die Spannung des Akkus mit einer Referenzspannung.

Über etwas einfache Mathematik berechnen Sie dann aus dem digitalen Wert die Originalspannung. Das geschieht 64-mal in kurzer Folge, wobei eine Mittlung einzelne Messspitzen glättet. Abhängig von der gemessenen Spannung setzt der PIC die Pegel an seinen beiden Ausgängen GPIO4 und GPIO5.

Die Wahl des Mikrocontrollers in diesem Projekt war abhängig von den Erfahrungen mit diesem besonders energiesparenden Bautyp. Im Prinzip funktioniert die Schaltung aber auch mit einem entsprechenden Controller aus der Arduino-Welt; selbst die kleinsten Typen verfügen über einen internen ADC, und Tutorials zur Spannungsmessung mit dem Arduino gibt es zuhauf.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland