Bild 1: EFM32 Peripheral Reflex System, das eine einzelne ADC-Wandlung als Reaktion auf einen Timer 0 Overflow initiiert und ein Analogkomparator-Ausgangssignal als Eingang am Compare/Capture-Kanal an Timer 1 bereitstellt.

Bild 1: EFM32 Peripheral Reflex System, das eine einzelne ADC-Wandlung als Reaktion auf einen Timer 0 Overflow initiiert und ein Analogkomparator-Ausgangssignal als Eingang am Compare/Capture-Kanal an Timer 1 bereitstellt.Energy Micro

Energieeffizienz ist weltweit ein zentrales Thema. Jeder ist angehalten, die Treibhausgas-Emissionen durch Senkung des Energieverbrauchs zu mindern. Zuhause schalten wir das Licht aus, wenn es nicht benötigt wird, aber nur wenige Menschen akzeptieren es, Fernsehgeräte, Computer und ähnliche Verbraucher komplett auszuschalten und nutzen lieber den komfortablen Standby-Modus. Leider verbrauchen die Geräte in den Standby-Modi immer noch erhebliche Strommengen – die Herausforderung bei fortschrittlichen Geräten ist es also, diesen Verbrauch auf ein Minimum zu reduzieren.

In Haushalten sind Elektro- und Elektronikgeräte heute zunehmend mit einem Mikrocontroller (MCU) ausgestattet, um selbst einfache Funktionen wie eine Rückmeldung an den Nutzer oder eine Reaktion auf andere externe Eingaben zu bieten. Der Strombedarf der MCU wird dabei selbst zu einem wichtigen Faktor für den Gesamtenergieverbrauch des Geräts. Ist die MCU aktiv, wird deren Stromaufnahme über die programmierten Funktionen bestimmt. Nicht alle MCUs sind in dieser Hinsicht gleich. Einige Modelle sind effizienter als andere – aber bei einer bestimmten Prozessorarchitektur ermöglichen grundlegende Parameter wie der Stromverbrauch pro MHz einen Vergleich untereinander. Entwickler können so die am besten geeignete MCU für ihre Aufgabe auswählen.

Sensorzustände ohne CPU-Aktivierung ermitteln

Energy Micro bietet Entwicklern, die früher MCUs periodisch im aktiven Modus betrieben haben, um Ereignisse erkennen zu können, eine höchst energieeffiziente Lösung. Energy Micros EFM32 MCUs bieten autonome Funktionen zur Überwachung verschiedener Analogsensoren im Deep-Sleep-Modus, wie das beschriebene Low Energy Sensor Interface (Lesense). Dabei werden Signale von der integrierten Peripherie erzeugt, die dann ohne CPU-Aktivierung über das Peripheral Reflex System (PRS) verschiedene Sensorzustände ermitteln und weitere Aktionen bei einem Strombedarf von um die 1 µA einleiten können. Damit lässt sich Energie bis zu einem Faktor 100 einsparen.

Peripheral Reflex System (PRS)

Im Leerlauf bieten MCUs verschiedene Möglichkeiten, den Stromverbrauch zu reduzieren. Dabei ist meist von Sleep-Modi die Rede, aber auch hier sind einige MCUs effizienter als andere. Die EFM32 Tiny Gecko MCU von Energy Micro zum Beispiel basiert auf einem 32-Bit-Cortex-M3-Prozessor, der nur 150 µA/MHz im Aktivzustand und gerade einmal 20 nA im Stop-Modus verbraucht.

Aktiv- und Sleep-Modi sind aber nicht alles. Wie der Name schon sagt, ist ein Standby-Modus nur dann sinnvoll, wenn das System auf eine Eingabe (Stimulus) reagieren kann. Eine MCU muss daher in bestimmten Abständen prüfen, ob sie sich selbst für Aufgaben aktivieren muss. Das Problem dabei ist: das Hochfahren der MCU aus dem Sleep-Modus kostet Zeit und verbraucht Energie, vor allem wenn andere Aufgaben wie das Abfragen einer Tastatur oder einer Touchscreen-Schnittstelle mit ausgeführt oder Signale zur Ansteuerung externer Sensoren erzeugt werden müssen.

Bild 2: Bedingte Aktivierung bei Analog-Ereignissen.

Bild 2: Bedingte Aktivierung bei Analog-Ereignissen.Energy Micro

Genau hier bietet Energy Micro einen besseren, energieeffizienteren Ansatz: Die MCUs der EFM32-Gecko-Serie verfügen über ein autonomes System von Peripherie und Sensoreingängen, das die Aktivierung der CPU bei jeder Messung erübrigt. Zu den wesentlichen Funktionseinheiten zählen das Peripheral Reflex System (PRS), mit dem Eingangs- und Ausgangsschaltkreise ohne CPU-Beteiligung betrieben werden können, und das Low Energy Sensor Interface (Lesense). Eine EFM32-MCU kann so weiterhin im Sleep-Modus bleiben, der weniger als 1,2 µA verbraucht, und trotzdem eine Reihe von Funktionen ausführen, wie zum Beispiel Eingabeeinheiten über kapazitive Oberflächen, Licht- oder Temperatursensoren überwachen.

Das in Bild 1 dargestellte Peripheral Reflex System (PRS) zeigt, wie Ereignisse sendender Peripherie als Eingangssignale oder Trigger für empfangende Peripherie ohne CPU-Beteiligung verwendet werden können. Zu den sendenden Signalen zählen Ausgänge von Komparatoren, gewandelte Signale von ADCs und DACs sowie Overflow/Underflow-Signale von Zählern. Ein Empfängersignal kann ein Trigger eines ADC oder DAC, ein Timer-Eingang oder ein Enable-Eingang für einen UART/USART sein.

Low Energy Sensor Interface (Lesense)

Der autonome Betrieb von Peripherieschaltkreisen wird durch Lesense ergänzt. Darüber lassen sich bis zu 16 externe Analogsensoren ohne CPU-Beteiligung ansteuern. Die stromsparende Sensorschnittstelle arbeitet im Deep-Sleep-Modus mit etwa 1 µA und überwacht praktisch jede Art von Analogsensor-Kontrollsystem, einschließlich kapazitive, induktive und Widerstandssensoren. So kann Lesense beispielsweise die intelligente Überwachung von Sensorwerten durchführen und Maßnahmen über das PRS einleiten. Die CPU wird dabei nur aktiviert, wenn vorher festgelegte Schwellenwerte überschritten werden.

Bild 3: Kapazitiver Sensor.

Bild 3: Kapazitiver Sensor.Energy Micro

Die Lesense-Schnittstelle verwendet die integrierten Analogkomparatoren, den 12-Bit-DAC und verfügt über eine Ablaufsteuerung (Sequenzer-Modul) mit 32 kHz Taktfrequenz. Die Ablaufsteuerung legt fest, welche Pins mit den Komparatoren verbunden werden und ob der DAC für eine genauere Komparator-Referenz zum Einsatz kommen. Die Komparator-Ausgänge können gezählt und kombiniert werden, so dass die CPU nur dann aktiviert werden muss, wenn vorher festgelegte Bedingungen erfüllt sind, zum Beispiel wenn Temperatur- oder Feuchtigkeits-Sensorschwellenwerte überschritten werden, oder wenn ein Drucksensor mehrere Male ausgelöst wurde. Bild 2 zeigt das Prinzip der bedingten Aktivierung und wie wiederkehrende, energieverschwendende CPU-Aktivierungen vermieden werden.

Ein genaueres Beispiel zum Lesense-Einsatz nutzt die bedingte Aktivierung (Bild 3). In Bedienfeldern für Mensch-Maschine-Schnittstellen (HMI) kommen oft kapazitive Sensoren zum Einsatz. Sie sind robuster als mechanische Schalter. Ihr Betrieb ist mittels Fingerberührung sehr einfach. Dabei ändert sich die Kapazität in einem RC-Oszillatorschaltkreis, was wiederum dessen Frequenz verändert.

Der Ausgang des Analog-Komparators ist mit einem Zähler verbunden, der die Anzahl der in einem vorher festgelegten Zeitraum gezählten Pulse mit einem Schwellenwert vergleicht. Da die Frequenz bei Berührung durch einen Finger abnimmt, lässt sich der Schwellenwert des Zählers auf einen Wert zwischen berührtem und unberührtem Zustand einstellen. Somit wird ein Interrupt-Signal zur CPU-Aktivierung nur dann gesendet, wenn der Sensor berührt wird.

Lesense und PRS kombiniert

Bild 4: Erfassung von Drehbewegungen.

Bild 4: Erfassung von Drehbewegungen.Energy Micro

Die Kombination aus Lesense und PRS ermöglicht sogar noch komplexere Lösungen und senkt den Stromverbrauch noch weiter, vor allem in der Steuerungs- und Regelungstechnik. Bild 4 zeigt einen Drehzähler, wie er beispielsweise in einem elektronischen Wasserzähler zum Einsatz kommt. Die Bewegung wird über Lesense erfasst, und die Umdrehungen werden mit einem Quadratur-Zähler gezählt, der mit dem PRS verbunden ist. Nach zum Beispiel zehn Umdrehungen kann die CPU aktiviert werden, um das Display aufzufrischen und die Verbrauchanzeige zu aktualisieren. Bei einer herkömmlichen MCU würde die CPU auch für die Ablauf- und die Komparator-Steuerung stets aktiv sein. Die Handhabung über Lesense und PRS ermöglicht jedoch den Verbleib im Deep-Sleep-Modus.