Der Weg zum geringsten Energieverbrauch in MCU-Systemen (Teil 1)

Seite: 3/4

Firmen zum Thema

Software ist mitentscheidender Faktor für die Energieaufnahme

Andererseits, die Software ist in vielen Fällen ein mitentscheidender Faktor für die Energieaufnahme. Wichtige Faktoren sind beispielhaft aufgeführt:

  • die Programmiertechnik, hardwarenah oder viele Abstraktionsebenen (HAL, API, RTOS, OS, etc.) und intensive Nutzung der Abstraktion
  • Wechsel/falsche Wahl der Power-Modi
  • Rechnen mit Fest-/Gleitkommazahlen
  • Compiler gerechte Programmierung, Auswahl der richtigen Compiler-Optionen
  • Fortschritt in der Compileroptimierung
  • „universelle“ statt optimierte Software.

Fazit, eine gute strategische Produktplanung der Hardware- und der Softwareeigenschaften wichtig ist. Der Energieverbrauch über Produktlebensdauer und Wartung der Produkte ist neben der Funktionalität ein essentieller Teil der Design-/Verifikationskette. Neue Compiler-, HAL-, RTOS-Versionen etc. können zu mehr oder weniger Energieverbrauch führen. Wiederverwendbarkeit über die gesamte Entwicklungs- und Produktionskette verlangen unter Umständen, dass binäre Objekte verwendet werden müssen.

Bildergalerie

Steht die Hardware, Software oder die Applikationsanforderung im Zentrum des Denkens? Bei dieser Frage wird die große Mehrheit dafür plädieren, dass die Anwendung erfüllt werden muss. Die Hardware wird dementsprechend aus dem großen Portfolio an MCU/SoCs ausgewählt und die Software „muss eben“ so geschrieben sein, dass das Pflichtenheft getroffen wird. Wieviel Reserve eingeplant wird oder werden muss, hängt von der Ausrichtung und dem Zweck der Anwendung ab - eine mitunter schwierige Entscheidung.

Es gibt mindestens zwei Rahmen die das Pflichtenheft vorgeben kann. Erstens, alles ist bis in „letzte“ Detail festgelegt. Dies kann zutreffen, wenn ein System 1-zu-1 ersetzt werden muss. Zweitens, ein System wird anhand der Eigenschaften und den äußeren Erfordernissen beschrieben. Damit sind die Lösungsmöglichkeiten in Grenzen variabel und können weitgehend optimal mit verfügbarer Hardware und Software gestaltet werden. In der Mehrheit der Entwicklungen sind variable Lösungsansätze möglich.

Tue nur dann etwas, wenn es unbedingt sein muss!

Diesen „Kernsatz der Energieeffizienz“ bedenkend sind verschiede Lösungsansätze möglich, die positiv auf die Energieeffizienz abgebildet werden können. Als Beispiel nehmen wir an, dass eine Kommunikation mit hoher zeitlicher Genauigkeit notwendig ist und einen quarzgenauen Takt erfordert. Die einfachste Lösung ist dauernd einen Quarzoszillator zu betreiben.

Nehmen wir weiter an, dass die Kommunikation eine Latenzzeit zwischen Kommunikationsanforderung und voller Betriebsbereitschaft erlaubt, können auch andere Lösungen im Sinne der Energieeffizienz angedacht werden. So kann der Quarzoszillator erst mit der Aufforderung zur Kommunikation gestartet werden. Der Einsatz eines PLL-Systems ist eine andere Alternative die als Referenztakt zum Beispiel ein Uhrenquarz-Taktsystem nutzt.

Im Bild 1 ist exemplarisch eine Erkennung einer Kommunikations-Anforderung gezeigt die auch in effizienten Energie-Modi die MCU/SoC ansprechbar halten. Die meisten MCU/SoC haben jedoch nur „Wake-up“-Implementierungen die mit digitalen Ein-/Ausgängen verbunden sind. Ein Beispiel für „Wake-up“-Implementierung finden wir in der MCU-Familie STM32L4xx.

Der Signalempfang im U(S)ART und LPUART Module ist im Stop(2)-Mode (~1,4uA mit RTC) funktionsfähig und generiert einen „Wake-up“-Interrupt beim Kommunikationsstart, bei einer Adressübereinstimmung oder einem Ereignis eines „Frames“. Diese Implementierung ist jedoch nicht bereit, wenn der Standby oder Shutdown-Mode aktiv ist.

Im Bild 2 ist exemplarisch eine Erkennung einer Kommunikations-Anforderung gezeigt die nur mit Hilfe von digitalen Ein-/Ausgängen wirkt. Damit ist keine reine Hardware-gesteuerte Betriebsmode-Umschaltung möglich – zumindest bei heutigen Implementierungen – sondern bedingt Software-Unterstützung. Die Software-Unterstützung ist üblicherweise verknüpft mit dem Einschalten des leistungsfähigsten Betriebs-Modes. Dies ist der RUN-Mode, der vor dem Low-Power-Mode aktiv war. Dabei werden dann die Hauptstromverbraucher, Memory (e.g. Flash), das Bussystem, die CPU und das Power/Takt-System aktiv – meist zusätzlich mit entsprechender Latenzzeit.

(ID:45104002)