Blick ins Kerngehäuse

Der Cortex-M3 im Vergleich zu ARM 7 – Stromverbrauch

27. Mai 2010, 15:14 Uhr | Von Dr. Kurt Böhringer
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

STM32-Powermodi: Stromsparen in allen Betriebszuständen

Tabelle 2
Tabelle 2: Stromverbrauch des Cortex-M3 im Sleep-Modus. Der Stromverbrauch kann durch Absenkung der Frequenz und durch Abschalten von Peripherieeinheiten von 14 auf 0,4 mA gesenkt werden.
© Elektronik

Im Run-Modus läuft die STM32-CPU aus der Performance Line mit bis zu 72 MHz, aus der Access Line mit bis zu 36 MHz. Die Stromaufnahme bei 72 MHz beträgt ca. 34 mA. Hier kann Strom gespart werden, indem die Taktsignale zu nicht benötigten Peripherieeinheiten abgeschaltet werden. Damit wird die dynamische Stromaufnahme dieser Teile eingespart. Dies geschieht durch Ein- oder Ausschalten der entsprechenden Bits im Reset-Clock-Control- Modul, was durchaus auch dynamisch geschehen kann. Zusätzlich kann der Takt auf kleinere Frequenzen geschaltet werden. Läuft die CPU direkt vom externen Oszillator, kann zusätzlich noch der Prefetch aus- und auf Half-Cycle-Operation geschaltet werden.

Die letzte Ersparnis kommt dann noch durch Umschalten auf den internen Oszillator. Die Stromaufnahmewerte im Run-Modus können hier von ca. 34 mA auf unter 1 mA bei 8 MHz reduziert werden.

Der Sleep-Modus ist der einfachste der Stromsparmodi. Wird ein WFI- oder WFE-Befehl ausgeführt, werden der Takt der CPU angehalten und die Befehlsausführung gestoppt. Der Rest des STM32-Chips arbeitet weiter. Auch in diesem Modus tragen dann die Anzahl der eingeschalteten Peripherieeinheiten und die Arbeitsfrequenz maßgeblich zur Stromaufnahme bei. Tabelle 2 gibt einen Überblick hierüber. Bei voller Frequenz mit sämtlicher Peripherie beträgt der Stromverbrauch im Sleep-Modus 14 mA, was auf bis zu ca. 0,4 mA reduziert werden kann. Diese Reduktion durch verminderte Frequenz und Peripherieaktivität geschieht nicht vom Controller automatisch, sondern muss per Software gesteuert werden.

Der STM32 kann so programmiert werden, dass bei einem WFI- oder WFE-Befehl nicht in den Sleep- Modus, sondern in den Stopp-Modus geschaltet wird. Hierfür muss das bereits erwähnte „Sleepdeep“- Bit gesetzt werden, das dann der Peripherie den Low-Power-Modus signalisiert und das Power- Down-Sleep-Bit im STM32- Power-Control-Register löscht. Bei Eintritt in den Stopp-Modus werden dann der interne und der externe Oszillator abgeschaltet und die CPU angehalten. Flash, SRAM und Peripherie bekommen nach wie vor noch Spannung, damit sie ihren Status beibehalten. Genauso wie der Sleep-Modus kann der Stopp-Modus durch einen Peripherie-Interrupt verlassen werden. Da im Stopp-Modus fast alle Peripherieeinheiten angehalten sind, kann dies nur durch einen externen Interrupt (die EXTIPeripherie wird nicht abgeschaltet) oder durch die RTC (Real- Time Clock) geschehen, die ihren eigenen Oszillator hat. Im Stopp- Modus wird der Stromverbrauch noch weit stärker reduziert – auf ca. 24 µA.

Wird der interne Spannungsregler zusätzlich in einen Sparmodus gesetzt, geht der Verbrauch sogar auf 14 µA zurück.

Der Standby-Modus ist der sparsamste Modus. Er wird ebenfalls durch einen WFI- oder WFE-Befehl erreicht, jedoch muss hierfür sowohl das „Sleepdeep“-Bit als auch das Power-Down-Sleep-Bit gesetzt sein. Im Standby-Modus ist der STM32 tatsächlich ausgeschaltet, so dass auch die statischen Ströme verschwinden. Nicht nur die Oszillatoren sind ausgeschaltet, sondern auch die interne Spannungsversorgung. Aus dem Standby-Mode aufgeweckt werden kann der STM32 durch externen Reset oder einen Reset des „independent Watchdog“, eine steigende Flanke am Port A.0 (wenn dieser als Wake-up konfiguriert ist) oder von einem Alarm der RTC. Den Standby-Modus zu verlassen, dauert am längsten, ca. 50 µs. Das Verlassen dieses Modus ähnelt einem Reset, da alle Register der CPU und der Peripherie sowie der Hauptspeicher ihren Inhalt verloren haben und die Applikation alles neu initialisieren muss, was für eine geeignete Applikation wie die oben genannte Fernbedienung kein großes Hindernis ist.


  1. Der Cortex-M3 im Vergleich zu ARM 7 – Stromverbrauch
  2. Wie der STM32 den Stromverbrauch drosselt
  3. STM32-Powermodi: Stromsparen in allen Betriebszuständen
  4. Darstellung der Stromsparmodi mit dem STM32-PerformanceStick

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu ARM Germany GmbH

Weitere Artikel zu Mikrocontroller