Raspberry Pi Pico: Grundlagen zum Strom sparen

Wenn ein Raspberry Pi Pico ohne angeschlossenen Computer betrieben werden soll, muss man sich auch um die Stromversorgung kümmern. In den meisten Fällen reicht dafür jedes noch so einfache USB-Netzteil aus. Der Stromverbrauch des Raspberry Pi Pico und der angeschlossenen Komponenten ist in der Regel sehr niedrig.

Spannend wird es, wenn man den Stromverbrauch bewusst reduziert: Dann eröffnen sich neue Möglichkeiten für die Energieversorgung, zum Beispiel der Betrieb mit Akkus oder Batterien, die sonst vielleicht nicht ausgereicht hätten.

Übersicht

Programmiert man den Raspberry Pi Pico mit MicroPython, gibt es verschiedene Möglichkeiten, den Energieverbrauch während des Betriebs gezielt zu senken. Darüberhinaus gibt es Lösungen, die von MicroPython unabhängig, aber Pico-spezifisch sind.

  1. Senken der Taktfrequenz: Im Programmcode kann man die Taktrate verändern. Ein geringerer Takt führt dazu, dass weniger Strom geschaltet werden muss und somit der Stromverbrauch sinkt.
  2. Zeitweise in den Schlafmodus versetzen: Der Programmcode versetzt den Pico möglichst oft in einen Betriebszustand, in dem er nur ganz wenig Strom verbraucht.
  3. Schlafmodus mit Aufweck-Funktion: Pico wird möglichst oft in den Schlafmodus versetzt, in dem er nur ganz wenig Strom verbraucht. Über eine GPIO mit IRQ lässt sich der Pico aufwecken und den Programmcode weiter ausführen.
  4. DORMANT-Modus mit Aufwach-Funktion: Der Programmcode versetzt den Pico möglichst oft in einen Sleep-Mode, in dem er nur ganz wenig Strom verbraucht. Über eine GPIO mit IRQ lässt sich der Pico aufwecken und im Programmcode weiterarbeiten.
  5. Spannungsregler steuern: Der Pin 3V3_EN am Raspberry Pi Pico ermöglicht es, den 3,3-V-Schaltregler (SMPS) komplett abzuschalten. Dadurch wird praktisch das gesamte Boards stromlos. Das kann man gezielt zum Stromsparen nutzen.
  6. Mikrocontroller steuern: Wenn RUN dauerhaft auf Low gezogen wird, bleibt der Mikrocontroller im abgeschalteten Zustand und verbraucht keinen Strom. Dabei bleibt die 3,3-V-Versorgung erhalten.
  7. Auto-Power-Off-Schaltung: Der Mikrocontroller kann sich selber durch setzen eines GPIOs von der Stromversorgung abschalten. Durch Drücken eines Tasters oder Auslösen eines Sensors wird der Pico wieder mit der Stromversorgung verbunden.

Energieeinsparung durch Software-Steuerung

Eine Möglichkeit der Energieeinsparung erfolgt durch die Steuerung der Software auf dem Mikrocontroller. Beispielsweise lässt sich die Taktfrequenz senken, was den Energieverbrauch senkt oder man nutzt die integrierten Stromsparmodi mit und ohne Aufweck-Funktion.

1. Senken der Taktfrequenz

Um Strom zu sparen, besonders bei Geräten im Akku-Betrieb, ist es üblich, die Rechenleistung zu drosseln, wenn sie nicht voll benötigt wird. Eine einfache Möglichkeit dafür ist, die Taktfrequenz des Prozessors zu verringern.
In MicroPython lässt sich die Taktfrequenz des Mikrocontrollers leicht anpassen. Reduziert man den Takt im Programmcode, arbeitet der Controller langsamer, führt also weniger Schaltvorgänge pro Zeit aus. Dabei fällt auch der Stromverbrauch geringer aus.

2. Schlafmodus nutzen

Um Energie zu sparen, kann der Mikrocontroller im Programmcode möglichst häufig in einen Energiesparmodus versetzt werden. In diesem Zustand arbeitet er nur eingeschränkt, aber benötigt deutlich weniger Strom.
Neben dem normalen Betrieb verfügt der Mikrocontroller des Raspberry Pi Pico über einen Schlafmodus, in dem der Stromverbrauch besonders stark reduziert ist. Hierbei muss man unterscheiden: Zeitweise oder dauerhaft in den Schlafmodus versetzen.

3. Sleep-Modus mit Aufweck-Funktion

Der Mikrocontroller wird zum Stromsparen in den Sleep-Modus versetzt und kann anschließend über einen GPIO-Interrupt (IRQ) wieder aufgeweckt werden. Nach dem Aufwachen setzt er die Programmausführung an der nachfolgenden Stelle fort.

4. DORMANT-Modus mit Aufweck-Funktion

Wenn man auf ein zeitgesteuertes Aufwecken verzichten möchte, kann man eine externe Bibliothek nutzen. Diese versetzt den Raspberry Pi Pico in den sogenannten DORMANT-Modus und bietet gleichzeitig eine passende Aufweck-Funktion.
Dieser Modus ist besonders stromsparend. Der Pico kann dabei ebenfalls über einen GPIO-Interrupt (IRQ) wieder aufgeweckt werden und anschließend das Programm weiter ausführen.

Energieeinsparung durch Hardware-Steuerung

Die Energieeinsparung erfolgt durch eine externe Hardware, die Steuereingänge schaltet und dadurch die Stromversorgung des Boards oder den Mikrocontroller abschaltet oder wieder einschaltet.

5. Spannungsregler abschalten

Der 3V3_EN-Pin vom Pico-Board steuert den 3,3-Volt-Schaltregler (SMPS). Standardmäßig ist dieser Pin über einen 100-kOhm-Widerstand mit VSYS verbunden und damit auf HIGH gezogen. Dadurch ist der Spannungsregler eingeschaltet und versorgt den Mikrocontroller mit 3,3 Volt.
Wird 3V3_EN mit LOW bzw. mit GND verbunden, schaltet der Regler ab. In diesem Zustand wird die 3,3-Volt-Versorgung deaktiviert und der Mikrocontroller ist praktisch ausgeschaltet.

Man kann den 3V3_EN-Pin also gezielt nutzen, um den Mikrocontroller komplett stromlos zu schalten. Dazu zieht man 3V3_EN über einen GPIO eines anderen Bausteins oder einen Schalter auf LOW, wenn der Pico schlafen oder ausgeschaltet sein soll. Sobald der Pin wieder auf HIGH gesetzt wird (oder freigegeben wird), startet das Board und der Programmcode neu.

So lässt sich der Energieverbrauch stark reduzieren, da der gesamte 3,3-V-Teil des Boards im abgeschalteten Zustand keinen Strom mehr bekommt.

6. Mikrocontroller über RUN-Pin deaktivieren

Der RUN-Pin dient zum Ein- und Ausschalten bzw. zum Zurücksetzen des Mikrocontrollers auf dem Raspberry Pi Pico.
Im Normalbetrieb liegt RUN auf HIGH, wodurch der Mikrocontroller aktiv ist. Wird der Pin mit LOW oder GND verbunden, wird der Mikrocontroller ausgeschaltet. Wenn RUN nur kurz auf LOW gezogen wird, entspricht das einem Reset, also einem Neustart des Systems.

Der RUN-Pin kann genutzt werden, um den Mikrocontroller gezielt auszuschalten. Wird er dauerhaft auf LOW gehalten bzw. GND verbunden, bleibt der Mikrocontroller inaktiv und verbraucht praktisch keinen Strom.
Dabei bleibt die 3,3-Volt-Versorgung weiterhin eingeschaltet, sodass angeschlossene Bauteile oder Sensoren weiterhin versorgt werden können.
RUN schaltet nur den Mikrocontroller ab und nicht die komplette Stromversorgung. Deshalb eignet sich diese Lösung gut für stromsparende Betriebsmodi, bei denen nur der Mikrocontroller schlafen soll.

7. Auto-Power-Off-Schaltung

Eine Auto-Power-Off-Schaltung hat den Vorteil, dass man nicht allein auf die internen Stromsparmodi des Mikrocontrollers angewiesen ist. Stattdessen kann der Mikrocontroller das gesamte Board vollständig von der Stromversorgung trennen. Dadurch lässt sich der Stromverbrauch im ausgeschalteten Zustand praktisch auf 0 Volt reduzieren.

Die Umsetzung erfolgt typischerweise so, dass der Mikrocontroller über einen GPIO-Pin einen Schalter (z. B. Transistor oder MOSFET) ansteuert und sich damit selbst von der Versorgung trennt. Wieder eingeschaltet wird das System anschließend z. B. durch einen Taster, Sensor oder ein externes Signal, woraufhin der Pico in Betrieb geht.

Wann ist welche Art sinnvoll?

Es wäre denkbar, dass man „Taktrate senken“ und den „Schlafmodus“ miteinander kombiniert. Aber, die größtmögliche Stromsparwirkung wird man in der Regel dadurch erreichen, dass man die Taktrate relativ hoch lässt, damit die notwendigen Berechnungen schnell erfolgen, um den Pico möglichst schnell wieder in den Schlafmodus versetzt zu können. Der Grund ist, weil im Schlafmodus in der Regel der Stromverbrauch sehr gering ist und in Abhängigkeit der Anwendung sehr lange dauern kann. Während man versucht, den Normalbetrieb so kurz wie möglich zu halten.

Welche Methode besser ist, hängt davon ab, was der Raspberry Pi Pico zu tun hat.

  • Die Taktrate zu reduzieren macht dann Sinn, wenn die Rechenaufgaben relativ gering sind, Zustände dauernd geprüft werden müssen oder laufend Eingaben erwartet werden.
  • Der Schlafmodus lohnt sich dann, wenn der Programmcode inklusive der eingebundenen Bibliotheken meistens nichts zu tun hat oder man ihn nach getaner Arbeit ausschalten könnte.

Weitere verwandte Themen:

Elektronik-Sets für das Hardware-nahe Programmieren

Elektronik-Sets für das Hardware-nahe Programmieren

Programmieren mit dem Raspberry Pi Pico
Online-Meeting

Programmieren mit dem Raspberry Pi Pico

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

Frag Elektronik-Kompendium.de