Energieeffizienz mit 32-Bit-Mikrocontrollern

Autonome Überwachungsfunktionen senken den Energieverbrauch

| Autor / Redakteur: Anders Guldahl * / Holger Heller

Energieverbrauch im aktiven Zustand senken: Eine Messgröße ist der Stromverbrauch einer MCU pro MHz. Energy Micros EFM32 Tiny Gecko MCUs setzen mit 150 µA/MHz einen Benchmark
Bildergalerie: 4 Bilder
Energieverbrauch im aktiven Zustand senken: Eine Messgröße ist der Stromverbrauch einer MCU pro MHz. Energy Micros EFM32 Tiny Gecko MCUs setzen mit 150 µA/MHz einen Benchmark (Energy Micro)

Energieeffizienz ist das zentrale Thema vieler Anwendungen. Bei tragbaren und batteriebetriebenen Geräten muss diese Forderung aber nicht die Leistungsfähigkeit und Benutzerfreundlichkeit einschränken.

Der Verbraucher wird heute bei Haushaushaltsgeräten mit Initiativen wie dem EnergyStar auf den Energieverbrauch der Geräte im Betrieb sowie im Standby aufmerksam gemacht. Hier ist der Energieverbrauch ein wesentliches Auswahlkriterium. Dieser gilt auch immer mehr bei batteriebetriebenen Geräten. Einen großen Anteil des Gesamtenergieverbrauchs eines Systems nimmt die Funktion des Mikrocontrollers (MCU) ein. Entwickler müssen daher die MCU-Leistungsaufnahme minimieren, indem sie sich auf drei wesentliche Aspekte konzentrieren:

  • Ein wichtiger Aspekt ist der Verbrauch im aktiven Zustand. Eine Messgröße hierfür ist der Stromverbrauch einer MCU pro MHz. Energy Micros' EFM32 Tiny Gecko MCUs, die auf einem 32-Bit-ARM-Cortex-M3-Prozessor basieren, setzen mit 150 µA/MHz einen Benchmark.
  • Ein weiterer Aspekt sind Sleep- und Deep-Sleep-Modi, die so wenig Strom wie möglich verbrauchen. Auch hier setzen die Gecko-MCUs Maßstäbe, da sie im Stop-Modus einen Wert von 20 nA erreichen.
  • In der Praxis ist jedoch der dritte Aspekt des Energieverbrauchs entscheidend: Energie kann besonders dann eingespart werden, wenn die MCU die Möglichkeit bietet, externe Ereignisse im Sleep-Modus zu überwachen. Die meisten MCUs verbringen ihre Zeit daher in einer Art Zwischenmodus, in dem sie auf ein Eingangssignal warten.

Es gibt zahlreiche Beispiele für solche Zustände. Ein Smartphone wird nur dann aktiviert, wenn ein Anruf oder eine Nachricht eingeht, oder wenn der Nutzer eine Eingabe über die Mensch-Maschine-Schnittstelle tätigt. Ein intelligenter Wasserzähler überwacht, ob Wasser zu fließen beginnt. Die übliche Lösung in diesen Fällen ist das periodische Aktivieren der MCU, um zu überprüfen, ob Zustandsänderungen externer Sensoren vorliegen. Ist dies der Fall, werden Berechnungen durchgeführt, ob weitere Maßnahmen getroffen werden müssen.

Ständiges Aktivieren des Gesamtsystems verschwendet Energie

Dabei ergeben sich einige Herausforderungen: Die Sensormessungen verlangen vom System, spezielle Anregungs- und Abtastmuster zu erstellen. Ein kapazitiver Sensor muss z.B. mit einem sinusförmigen Signal angeregt werden. Im besten Fall findet eine Abwägung zwischen Energieverbrauch und Reaktionsfähigkeit des Systems statt: Ein Handy, das seine Touchscreen-Schnittstelle regelmäßig abfragt (Polling) mag träge und nur schwer bedienbar erscheinen, wenn es nur alle paar Sekunden geschieht. Das ständige Aktivieren des gesamten Systems verbraucht unnötig Energie, da der Übergang vom Sleep-Modus in den Aktivmodus keinen Nutzen für die Anwendung erzielt.

Ein besserer, energieeffizienterer Ansatz ist die Wahl einer MCU mit einem autonomen System aus Peripherie und Sensoreingängen. Dabei muss die CPU nicht für jede Messung aktiviert werden. Die EFM32 Gecko MCUs bieten ein solches System, das ein Low Energy Sensor Interface (LESENSE) mit einem Peripheral Reflex System (PRS) kombiniert. Peripheriefunktionen können so ohne CPU-Eingriff interagieren. Somit können im Deep-Sleep-Modus Funktionen wie „Aktivieren bei Berührung“ (Capacitive Touch), Erfassen metallischer Gegenstände oder Überwachen von Widerstandssensoren realisiert werden – und das mit einem Stromverbrauch von weniger als 1,2 µA.

Das PRS (Bild 1) ermöglicht, Signale von „sendender“ On-Chip-Peripherie an andere „empfangende“ Peripherie auf dem Chip zu senden, die dann Aktionen auf Basis dieser Eingaben ausführt. „Sendende“ Signale können von folgenden Peripheriefunktionen erzeugt werden: Analog-Komparator- und GPIO-Ausgänge, gewandelte Signale von ADCs und DACs, Overflow/Underflow-Signale von Zählern/Timern und TX/RX-Statusnachrichten vom UART oder USART. Zu den Reflex-„Empfängern“ zählen DAC/ADC-Trigger, Timer-Eingänge und UART/USART-Enable-Eingänge.

Mehr Autonomie: Das Low Energy Sensor Interface

Das PRS hat bis zu zwölf Kanäle, die jeweils über einen Flankendetektor verfügen. Es erzeugt Logikimpulse aus Pegeln. Zwei Register pro Kanal (PRS_SWPULSE und PRS_SWLEVEL) ermöglichen die Ansteuerung jedes Ausgangs auf einen softwarebestimmten Pegel oder eine logische „1“.

Ergänzendes zum Thema
 
Der Energieverbrauch eines Systems kann signifikant reduziert werden ...

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 36311370 / Embedded Systeme)