weidner/archives/2012/01/

Billig-USV mit Signalisierung für ALIX

Willy Tarreau hat in einem Webartikel eine billige USV für ALIX-Rechner beschrieben. Seine Lösung arbeitet mit einem 9V / 120 mA NiCD Akku, benötigt außer diesem nur drei Bauelemente, sowie eine Buchse und einen Stecker um die Schaltung in die Stromversorgung einzuschleifen. Laut seinen Artikel kann er damit einen ALIX-Rechner etwa 10 Minuten ohne Netzspannung betreiben. Das ist für kurze Unterbrechungen des Stromnetzes in den meisten Fällen ausreichend. Da das Dateisystem auf dem ALIX-Rechner sowieso meist read-only eingehängt ist, macht es auch nichts, wenn nach den 10 Minuten der Rechner doch ausgeht.

Wenn ich aber wissen will, wie oft der Strom kurzzeitig ausfällt, oder Änderungen aus den tmpfs Dateisystemen sichern will, bin ich schon an einer Signalisierung von Stromausfällen interessiert. Diese läßt sich relativ leicht nachrüsten. Ein Operationsverstärker mit Open-Collector-Ausgang und vier Widerstände reichen aus, wie in nachfolgender Schaltung zu sehen.

Schaltplan UPS mit Signalisierung

Der linke Teil der Schaltung ist die USV, wie von Willi Tarreau beschrieben. Für die Signalisierung mache ich mir den Umstand zu nutze, dass die Polarität der Spannung über der Diode D1 wechselt, wenn die Spannung vom Netzteil wegbricht. Die beiden Widerstandspaare R2/R3 und R4/R5 reduzieren die Spannung lediglich auf für den Komparator brauchbare Werte. Wichtig ist, dass der Komparator U1 am Ausgang einen offenen Kollektor hat. Dadurch kann ich ihn mit einem Pull-Up-Widerstand an den niedrigeren Pegeln im ALIX verwenden. In meiner Testschaltung habe ich einen LM393 als Komparator verwendet.

Bleibt nur noch die Frage, wie ich die Signalisierung im ALIX-Rechner auswerte.

Die erste Lösung, die mir einfiel, ist, diese Leitung an den Pin mit dem Schalter (Mode Switch) zu führen. Dieser Pin wird bei den neueren Boards auf demselben Steckverbinder wie der I²C-Bus herausgeführt. Der Zustand kann dann relativ einfach durch Abfragen von Bit 8 an I/O-Port 0x61b0 ermittelt werden. Diese Lösung hat aber einen gravierenden Nachteil: Wenn beim Systemstart der Mode Switch gedrückt ist, schaltet das BIOS die serielle Schnittstelle ein und geht in den Setup-Modus, d.h. der Rechner startet nicht. Das passiert genau dann, wenn ich den Rechner an die USV anschließe, während noch keine Spannung vom Netzteil kommt. Außerdem kann ich einen Spannungsausfall nicht von einem Druck auf besagten Taster unterscheiden.

Also habe ich mich nach weiteren Möglichkeiten umgesehen. Laut diesem Thread im Webforum von PC Engines gibt es zwar ein paar Optionen, aber keine vorgefertigten Lösungen. Von den im Forumthread erwähnten Möglichkeiten erscheint mir am ehesten ein I²C-Bus-Expander geeignet. Die dafür benötigten Bauelemente kosten relativ wenig, so dass ich das demnächst ausprobieren werde.

Update: In einem anderen Artikel habe ich eine mögliche Lösung für die Signalisierung via I²C-Bus beschrieben.

Posted 2012-01-08
Tags: