Leistungsaufnahme von Mikrocontrollern

Wechseln zu: Navigation, Suche

Bei der Auswahl eines Mikrocontrollers für eine bestimmte Aufgabe steht man vor dem Problem, die Leistungsaufnahme verschiedener Typen zu vergleichen. Allerdings ist das nicht ganz so einfach. Unzählige Betriebszustände z. B. Sleep Mode, Betriebsspannungen, Familien und Unterfamilien, neue Revisionen etc. machen einen Vergleich schwierig.

Dennoch ist es möglich, eine gute Orientierung zu liefern, wenn man sich auf einheitliche, praxistaugliches Vergleichsbedingungen einigt. Das soll in diesem Artikel versucht werden.

Vergleichskriterien und Vergleichsbedingungen

So ziemlich alle Mikrocontroller von heute basieren auf CMOS-Technik. Diese hat im statischen Fall (keine Takte und Signaländerungen) nahezu Null Strombedarf. Nur wenn Signale ihren Zustand wechseln müssen parasitäre Kapazitäten umgeladen werden und es wird Strom benötigt. Der Zusammenhang zwischen Taktfrequenz und Stromaufnahme ist fast immer linear. Weiterhin ist die Ladungsmenge/Zeit (=Strom) von der Höhe der Betriebsspannung abhängig, was auch einleuchtet. Denn es ist ein Unterschied, ob man einen Kondensator auf 1,8 oder 5V aufladen muss. Dies läßt sich mit der lang bekannten Formel darstellen.

P={V_\text{CC}}^2 \cdot C_P \cdot f_T

  • P : Verlustleistung
  • Vcc: Betriebsspannung
  • CP : Parasitäre Kapazität
  • fT : Taktfrequenz

Daraus lassen sich folgende Vergleichskriterien aufstellen, nach denen die Mikrocontroller in die untenstehende Tabelle eingeordnet werden sollen.

  • Stromaufnahme in aktiven Modus bei 1 MHz und 1,8/3,3V/5V (Aktiv); möglichst alle Komponenten aktiv
  • Stromaufnahme im Schlafmodus mit laufender Echtzeituhr und 1,8/3,3V/5V (RTC); weitestgehend alle Komponenten inaktiv
  • Stromaufnahme im tiefsten Schlafmodus bei 1,8/3,3V/5V (OFF); alle Komponenten inaktiv

Mit diesen Angaben kann man recht leicht den Stromverbrauch bei anderen Taktfrequenzen und Betriebsspannungen berechnen. Alle Angaben sollten den typischen Stromverbrauch bei 25°C darstellen. Sollte es notwendig sein, von diesen Angaben abzuweichen, so muss das in der Spalte Bemerkungen erklärt werden. Um den Stromverbrauch spezieller Komponenten zu vergleichen wird eine zweite Tabelle benutzt.

Vergleichstabelle der Betriebsmodi

Stromaufnahme [µA]
Familie Controller Modus 1,8V 3,3V 5V Bemerkung
AVR ATmega88 Aktiv 250 500 900 -
AVR ATmega88 RTC 4 7 9 -
AVR ATmega88 OFF 0,1 0,3 0,7 -
AVR ATmega8 Aktiv - 1800 2300 -
AVR ATmega8 RTC - 10 15 -
AVR ATmega8 OFF - 0,4 1 -
AVR ATmega324P Aktiv 500 600 1100 @2V, 3V, 5V
AVR ATmega324P RTC 0,5 0,6 - @2V, 3V
AVR ATmega324P OFF - 0,2 - @3V, no WDT
AVR AT90S2313 Aktiv - 2000 5000 AVR der klassischen Baureihe
AVR AT90S2313 OFF - 0,1 0,1 AVR der klassischen Baureihe

Vergleichstabelle der Module

Stromaufnahme [µA]
Familie Controller Modul 1,8V 3,3V 5V Bemerkung
AVR ATmega88 Brown Out 22 23 26 -
AVR ATmega88 ADC 220 280 370 -
AVR ATmega88 Analog Comparator 65 75 90 -
AVR ATmega8 Brown Out - 15 17 -
AVR ATmega8 ADC - 270 360 -
AVR ATmega8 Analog Comparator - 60 75 -
AVR ATmega324P UART 6 9,5 19 @2V, 3V, 5V @1MHz
AVR ATmega324P ADC 18 21 35 @2V, 3V, 5V @1MHz
AVR ATmega324P Timer0 - 8bit 5 9 15 @2V, 3V, 5V @1MHz
AVR ATmega324P Timer1 -16bit 9 15 30 @2V, 3V, 5V @1MHz
AVR ATmega324P IO pullup 36k 50 100 138 @0V am Eingang

Variable Speisespannung?

Beim Betrieb an Stromquellen, etwa einem Kondensatornetzteil, kann die Gesamtleistungsaufnahme nur durch Reduktion der Spannung abgesenkt werden, denn sonst müsste der Strom in den Rechenpausen am Controller vorbei geleitet (und verheizt) werden. Dies ist nur bei Controllern sinnvoll, deren Taktfrequenz softwaremäßig umschaltbar ist, also allen(?) ATtinys und neueren ATmegas.

Allerdings lauert hier eine Falle: Im Versuch stürzten die ATtiny13 ab, oder wurden gar unbrauchbar (nicht mehr programmierbar)! Offenbar benötigen die Ladungen in den sRAM-Zellen eine konstante Speisespannung. Vielleicht darf sie sich nur langsam ändern. Was zu untersuchen wäre.

Links