© NATTHAPONG/Shutterstock.com
Powermanagement für den Raspberry Pi

Licht aus!


Ein klassisches Antiargument gegen Prozessrechner wie Raspberry Pi, Orange Pi und Co. ist ihr extrem hoher Strombedarf: Auch im Stand-by bzw. mit abgeschalteten Rechenkernen sind die Systeme alles andere als genügsam. Wie so oft erweist sich auch hier das System des kombinatorischen Prozessrechners als Lösung.

Der Autor musste in seiner privaten Consultingpraxis vor einiger Zeit ein ähnliches Problem lösen – mittlerweile sind einige hundert der Systeme im Einsatz. Lassen Sie uns deshalb gemeinsam einen Blick auf einen Weg zur Senkung des Energieverbrauchs werfen.

Gleich zu Beginn und zur Vermeidung von Leserbriefen: Wir arbeiten hier mit einem unter Windows 10 for IoT betriebenen Raspberry Pi 3B und einem Mikrocontroller aus der altehrwürdigen PIC16-Familie des amerikanischen Herstellers Microchip. Es sei jedoch angemerkt, dass das Konzept natürlich auch mit einer MCU aus dem Hause SGS Thomson (STMicroelectronics) und einem unter Unix laufenden Orange Pi funktioniert (Kasten „Relativ teuer!“).

Relativ teuer!

Der hier verwendete Build 16F1503 ist im Vergleich zu klassischen MCUs relativ billig, aber auch in Zehntausenderstückzahlen nicht mit dem STM8 konkurrenzfähig. Auf der Habenseite der Microchip-MCU steht, dass sie auch im DIP-Gehäuse zu haben ist, was beim Design von Prototypen hilft.

Intelligentes Schlafengehen?

Die hier zu realisierende Aufgabe war, ein Prozessrechnersystem zu erstellen, dessen Bereitschaft nicht permanent gegeben sein musste. Aufseiten des Kunden entstanden immer wieder Totzeiten, in denen der Prozessrechner schlafen sollte. Wichtig war nur, dass er beim Eintreffen eines bestimmten Ereignisses binnen kurzer, im Minutenbereich liegender Zeit wieder zur Verfügung stand. Aus dieser eigenwilligen Designanforderung folgt, dass der hier besprochene Weg für Echtzeit nicht geeignet ist: Wer die Mess-, Steuer- und Regellogik im Controller unterbringt, kann das Aufwachen und Einschlafen der Anzeige allerdings auf diese Art und Weise realisieren.

Komplexe Scheidungssysteme lassen sich am einfachsten verstehen, wenn man einen Blick auf das Blockschaltbild wirft. Im Fall unseres „Stand-by-Bändigers“ präsentiert sich das wie in Abbildung 1.

hanna_powermanagement_1.tif_fmt1.jpgAbb. 1: Zerlegen Sie Schaltungen in Blöcke, um sie verständlicher zu machen

Der aus dem Hause Texas Instruments stammende Schaltregler vom Typ LM2576xx gilt in der Industrie als Klassiker: Er ist nicht allzu effizient, aber auch nicht allzu teuer. Zudem ist er im Bereich der Schaltfrequenz mit 52 Kilohertz im akzeptablen Bereich – kurzum ein Teil, das man bei Bedarf gerne einsetzt. Besonders interessant ist, dass diese Regler einen Enable-Eingang mitbringen, mit dem man sie in einen sehr energiesparenden „Schlafmodus“ versetzen kann. Ein Blick auf die Ausgangsspannung von 5 V reicht aus, um erfahrene Informatiker davon zu überzeugen: Hierbei handelt es sich um die Stromversorgung des Raspberry Pi.

Fertiger fragen!

Wer seine PCBs in China fertigen lässt, sollte die Beschaffung des LM2576 mit dem Fertiger absprechen; in der praktischen Erfahrung findet man am Graumarkt oft Teile, die auch die Preise der Preisvergleichs-Engine OEMsecrets unterbieten.

Der Mikrocontroller ist mit dem Enable-Eingang des Hauptspannungsreglers verbunden und kann so die Stromversorgung des Raspberry Pi nach Bedarf ein- und ausschalten. Zudem nimmt der PIC Ereignisse vom externen System entgegen und kommuniziert mit dem Prozessrechner über den I²C-Bus. Windows 10 for IoT kann den Controller so jederzeit um eine Schlafpause bitten.

I²C ist für derartige Aufgaben aus zweierlei Gründen ideal geeignet: Erstens ist der Bus sehr ressourcenschonend und lässt sich aufwandsarm implementieren. Zweitens ist I²C nicht auf ein einzelnes Gerät beschränkt: Es spricht also nichts dagegen, Accelerometer und andere Hardware ebenfalls an diesen Bus zu hängen.

Aus technischer Sicht ist das einst von Philips entwickelte Kommunikationsprotokoll alles andere als kompliziert. Eine der Leitungen übertragt Taktsignale, während die andere für die Nutzdaten verantwortlich ist. Beide Leitungen basieren auf dem Open-Drain-Prinzip – sie „levitieren“ über einen im Raspberry Pi verbauten Widerstand nach oben und werden bei Bedarf nach unten gezogen.

Von Interesse ist hier, dass der PIC-Prozessor über einen eigenen Regulator in der 3V3-Ebene gehalten wird. Dies ist insofern sinnvoll, als man sich so den Aufwand der Realisierung eines Pegelwandlers erspart: Liegt der PIC in der 5-V-Domäne, so sollte man ihn nicht direkt mit dem Raspberry Pi verbinden, auch wenn es ob des Fehlens von Pull-up-Widerständen bei diesem spezifikationswidrigen Sonderregime nicht unbedingt zu Problemen kommen muss.

Eine Frage der Technologie

Im Pleistozän der Informatik griff der Programmierer an dieser Stelle zum Datenblatt des Controllers, um draufloszuhacken. In der heutigen Zeit ist das nur selten notwendig: Alle Controllerhersteller haben ihre integrierten Entwicklungsumgebungen mittlerweile mit Codegeneratoren ausgestattet, die Hardware-Abstraction-Layers „auf Zuruf“ zusammenbauen.

Im Fall von Microchip hört das Produkt auf den Namen MC...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang