Ultra low power: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
(→‎geeignete Stromquellen: LR + R hinzugefügt)
KKeine Bearbeitungszusammenfassung
Zeile 24: Zeile 24:


* Das Abschalten von UARTs kann zu einem "break" auf dem Empfangsseite führen.  Hier ggf. die Leitung auf hi-Pegel hochziehen und den UART-Ausgang als input konfigurieren bis zur nächsten Benutzung. Es kann auch vorkommen, daß der UART abgeschaltet wird während noch ein Zeichen gerade übertragen wird. Bei niedriger Baudrate dauert das Senden eines Zeichens ja recht lange. Daher sollte vor dem Abschalten geprüft werden ob die Übertragung noch läuft.
* Das Abschalten von UARTs kann zu einem "break" auf dem Empfangsseite führen.  Hier ggf. die Leitung auf hi-Pegel hochziehen und den UART-Ausgang als input konfigurieren bis zur nächsten Benutzung. Es kann auch vorkommen, daß der UART abgeschaltet wird während noch ein Zeichen gerade übertragen wird. Bei niedriger Baudrate dauert das Senden eines Zeichens ja recht lange. Daher sollte vor dem Abschalten geprüft werden ob die Übertragung noch läuft.
* Zur Kontrolle des Stromverbrauchs ist es manchmal schwierig direkt den Strom zu messen. Der Innenwiderstand gängiger Multimeter kann bei kleinen Strommessbereichen so hoch werden, daß die Schaltung Fehlfunktionen zeigt. Dies gilt insbesondere für die kritischen Einschaltmomente. Daher sollte man zunächst im Einschaltmoment das Amperemeter kurzschliessen. Oder man fügt einen 100 Ohm Widerstand (oder 1 KOhm) in die Verbrauchsleitung ein uns schliesst diesen Widerstand in den ersten Sekunden kurz. Es kann auch vorkommen daß eine Schaltung beispielsweise 2µA verbraucht, jede Sekunde 1 ms lang der Verbrauch 1 A beträgt. Die Summe wäre dann aber 2µA + 1000µA = 1002 µA (1mA). Die Entladung der Batterie folgt aber nun in diesem Fall nicht der normalen 1 mA - Entladekurve, sondern erfolgt viel früher (siehe Peukert'sche Regel). Hier kann man nur in tagelangen Versuchen die Entladung schätzen indem man mit mehreren gleichartigen Batterien und verschiedenen Lastwiderständen einen "äquivalenten" Strom findet, der dem Stromverbrauch dieser Schaltung in etwa entspricht.
* Zur Kontrolle des Stromverbrauchs ist es manchmal schwierig direkt den Strom zu messen. Der Innenwiderstand gängiger Multimeter kann bei kleinen Strommessbereichen so hoch werden, daß die Schaltung Fehlfunktionen zeigt. Dies gilt insbesondere für die kritischen Einschaltmomente. Daher sollte man zunächst im Einschaltmoment das Amperemeter kurzschliessen. Oder man fügt einen 100 Ohm Widerstand (oder 1 KOhm) in die Verbrauchsleitung ein uns schliesst diesen Widerstand in den ersten Sekunden kurz. Es kann auch vorkommen daß eine Schaltung beispielsweise 2µA verbraucht, jede Sekunde 1 ms lang der Verbrauch 1 A beträgt. Die Summe wäre dann aber 2µA + 1000µA = 1002 µA (1mA). Die Entladung der Batterie folgt aber nun in diesem Fall nicht der normalen 1 mA - Entladekurve, sondern erfolgt viel früher (siehe Peukert'sche Regel ([http://www.amplepower.com/pwrnews/beer/ Amp Hours and Beer])). Hier kann man nur in tagelangen Versuchen die Entladung schätzen indem man mit mehreren gleichartigen Batterien und verschiedenen Lastwiderständen einen "äquivalenten" Strom findet, der dem Stromverbrauch dieser Schaltung in etwa entspricht.
* Manche Hersteller empfehlen im Schlafzustand Leitungen als output zu definieren, dies kann aber zu einem höheren Stromverbrauch führen. Ausprobieren geht über studieren.
* Manche Hersteller empfehlen im Schlafzustand Leitungen als output zu definieren, dies kann aber zu einem höheren Stromverbrauch führen. Ausprobieren geht über studieren.
* Das An- und Abschalten von externen Bauteilen, die zur Stützung einen eigenen Kondensator haben führt zu kurzen Blindströmen die nicht genutzt werden können.
* Das An- und Abschalten von externen Bauteilen, die zur Stützung einen eigenen Kondensator haben führt zu kurzen Blindströmen die nicht genutzt werden können.

Version vom 29. Mai 2006, 08:11 Uhr

Ultra low power Anwendungen auf Mikrokontrollern. Zunehmend spielt der Stromverbrauch bei der Entwicklung von µC Hardware eine Rolle. Moderne Prozessoren sind immer besser in der Lage von Batterien über lange Zeit versorgt zu werden, da es gelingen kann den über eine lange Zeit gemittelten Stromverbrauch unter 1 mA zu halten bis hin zu einem Verbrauch unter 1 µA. Bei Strömen im Umfeld von 1 µA tauchen spezielle Probleme auf, die gesondert betrachtet werden müssen.

Hardware-Tipps für die Entwicklung

  • Den Prozessor finden der einerseits den Anforderungen genügt, aber andererseits im Vergleich den geringsten Stromverbrauch hat. Hier ist zu beobachten daß es einen Trend gibt hin zu immer geringerem Stromverbrauch, daher lohnt es sich ständig auf dem Laufenden zu bleiben.
  • niedrigst-mögliche Betriebsspannung wählen.
  • möglichst niedrigsten Prozessortakt wählen und beispielsweise bei zeitkritischen Programmteilen dann nur vorübergehend den Takt hochfahren und nach der Berechnung wieder herabsetzen.
  • periphere Hardware (externe AD-Wandler, Speicher) vom Prozessor aus entweder direkt oder über Schalttransistoren nur für den Moment des Zugriffs einschalten.
  • manche Kondensatoren die zur Stützung der Betriebsspannung oder aus EMV Gründen zwischen Betriebsspannung und Minus geschaltet sind, können ärgerliche kleine Ströme bewirken, insbesondere Elektrolytkondensatoren, hier manchmal erst nach einer Weile (Alterung).
  • Bei nicht batteriebetriebenen Geräten ist es manchmal so daß die Spannungsregelung alleine 90% des Stromverbrauchs verursacht. In den letzten Jahren gibt es jedoch ein immer größer werdendes Potential an stromsparenden Reglern.

Einfluss von Software auf Stromverbrauch

  • Den Prozessor möglichst lange in einen sleep - Zustand versetzen und jeweils nur kurz aufwecken.
  • unnötige "NOP" Warteschleifen oder "delay" Routinen vermeiden
  • Look-up Tabelle statt höherer Mathematik. Beispiel Cosinus und Sinus bei DFT/FFT.
  • integrierte zusätzliche Hardware wie AD-Wandler, UART usw nur für den Zeitraum einschalten in dem sie benötigt werden. Möglicherweise kann Strom gespart werden wenn man bei einer AD-Wandlung den Prozessor in einen sleep Zustand versetzt und ihn über den Interrupt der ausgelöst wird wenn die Wandlung beendet ist, aufwachen lässt.
  • Statt Schalterzustände zu "pollen" lieber einen Interrupt auslösen lassen.
  • kurze Macros werden schneller als entsprechende Unterprogramme abgearbeitet
  • manche Mikroprozessoren (z.B. Atmel) bieten die Möglichkeit interne pull-up Widerstände zu schalten, diese können auch in einem sleep-Zustand zu einem unerwartet hohen Stromverbrauch führen.

Probleme

  • Das Abschalten von UARTs kann zu einem "break" auf dem Empfangsseite führen. Hier ggf. die Leitung auf hi-Pegel hochziehen und den UART-Ausgang als input konfigurieren bis zur nächsten Benutzung. Es kann auch vorkommen, daß der UART abgeschaltet wird während noch ein Zeichen gerade übertragen wird. Bei niedriger Baudrate dauert das Senden eines Zeichens ja recht lange. Daher sollte vor dem Abschalten geprüft werden ob die Übertragung noch läuft.
  • Zur Kontrolle des Stromverbrauchs ist es manchmal schwierig direkt den Strom zu messen. Der Innenwiderstand gängiger Multimeter kann bei kleinen Strommessbereichen so hoch werden, daß die Schaltung Fehlfunktionen zeigt. Dies gilt insbesondere für die kritischen Einschaltmomente. Daher sollte man zunächst im Einschaltmoment das Amperemeter kurzschliessen. Oder man fügt einen 100 Ohm Widerstand (oder 1 KOhm) in die Verbrauchsleitung ein uns schliesst diesen Widerstand in den ersten Sekunden kurz. Es kann auch vorkommen daß eine Schaltung beispielsweise 2µA verbraucht, jede Sekunde 1 ms lang der Verbrauch 1 A beträgt. Die Summe wäre dann aber 2µA + 1000µA = 1002 µA (1mA). Die Entladung der Batterie folgt aber nun in diesem Fall nicht der normalen 1 mA - Entladekurve, sondern erfolgt viel früher (siehe Peukert'sche Regel (Amp Hours and Beer)). Hier kann man nur in tagelangen Versuchen die Entladung schätzen indem man mit mehreren gleichartigen Batterien und verschiedenen Lastwiderständen einen "äquivalenten" Strom findet, der dem Stromverbrauch dieser Schaltung in etwa entspricht.
  • Manche Hersteller empfehlen im Schlafzustand Leitungen als output zu definieren, dies kann aber zu einem höheren Stromverbrauch führen. Ausprobieren geht über studieren.
  • Das An- und Abschalten von externen Bauteilen, die zur Stützung einen eigenen Kondensator haben führt zu kurzen Blindströmen die nicht genutzt werden können.
  • Manche externen Bauteile funktionieren paradoxerweise auch ohne eigene Stromversorgung, es reicht ein hi - Pegel an einer der Inputs dieser Chip um sie am Laufen zu halten, was zu einem erheblichen Stromverbrauch führen kann. Beispiel: serieller Eingang des FT232BM von FTDI.
  • Oft ist die maximale Betriebsdauer fast nur durch die Selbstentladung der versorgenden Batterie bestimmt, dann war allerdings die Entwicklung (bis vielleicht auf die Batteriewahl) perfekt.

spezielle Probleme im Bereich 1µA oder darunter

Die Schaltung kann hier merkwürdige Effekte zeigen:

  • geladene Kondensatoren lassen die Schaltung auch ohne Versorgung noch eine Weile funktionieren.
  • Stützkondensatoren verbrauchen mitunter mehr Strom als die Schaltung
  • Z-Dioden sind mit Vorsicht zu gebrauchen! In Sperrichtung geschaltete Dioden können auch den Stromverbrauch erhöhen.
  • Signalpegel von aussen können die gesamte Schaltung zum Laufen bringen.
  • starke EMF (Handy) oder Rundfunksender (eingekoppelte HF durch lange Anschlussleitung) schalten die Schaltung ein, können sogar zu einer Überspannung und Zerstörung führen.
  • Batterie- oder Akkuspannung steigt nach dem Einschalten (vorübergehend) an.
  • die Schaltung wird empfindlich für elektrostatische Aufladungen, die dann gerne einen reset auslösen, allerdings gibt es bewährte Lösungen für diese Probleme.
  • Selbstentladung von Batterien/Akkus beachten!

Die Frage des Schutzes einer Schaltung vor EMF und statischer Aufladung sollte in einem anderen Artikel ausführlich beleuchtet werden.

geeignete Stromquellen

  • Li-Knopfzellen (z.B. 3V CR2032) haben eine sehr flache Entladekurve und hohe Energiedichte, gefürchtet bei Tauchern weil sie dann plötzlich bei Entladeschluss ausfallen.
  • Alkali-Mangan (LR) Primärzellen sind besser als Zink-Kohle (R).
  • NC Akkus (sollte man eigentlich inzwischen vergessen)
  • Nickel-Metallhydrid Akkus. Leider niedrigere Spannung als Primärzellen.
  • kleine Solarzellen gekoppelt an Goldcaps oder Akkuzellen.
  • Stromerzeugung durch Bewegung der Schaltung.
  • Goldcaps. Goldcaps haben leider oft hohe Innenwiderstände und die Entladekurve ist natürlich nicht flach.
  • durch äusseres elektromagnetisches Wechselfeld, siehe RFID-chips.

Hinweis: Mikro (AAA/(L)R03) Primärzellen haben etwa 500-1300 mAh. Mignon (AA/(L)R06) Primärzellen haben etwa 900-3000 mAh.

Die Entladekurve von Primärzellen ist in etwa eine Gerade. Eine volle Zelle hat etwa mehr als 1,5 V und bei 0,8 bis 1,0 V ist Schluss. Akkus haben dagegen eine Klemmenspannung, die zu Beginn deutlich abfällt, dann einigermaßen stabil bleibt um schliesslich recht plötzlich abzufallen. Die Kapazität ist vom Strom selbst abhängig, siehe Peukert`sche Regel. Bei hohen Entladeströmen nimmt die zur Verfügung stehende Energiemenge ab.

Thema Selbstentladung von Batterien (Primärzellen)

Wir können in etwa von einer Selbstentladung von 2-5% der Kapazität pro Jahr ausgehen. Dabei ist noch zu beachten daß Batterien aber nicht ewig benutzbar sind und bei Bestellung schon eine gewisse Zeit gelagert waren. Daher ist es seriös davon auszugehen daß eine Batterie bei Betriebsbeginn nur noch die Hälfte der theoretischen Kapazität hat. Über diesen Wert und mit Hilfe von mittlerem Stromverbrauch + Selbstentladung kann man dann (bei Zimmertemperatur) in etwa die maximale Betriebsdauer abschätzen. Beispiel: AAA/LR03/Micro Zelle mit 1000 mAh. Selbstentladung angenommen 5%/Jahr. Der "virtuelle" Entladestrom wäre dann circa 6µA.

Selbstentladung von Akkus

Sekundärzellen entladen sich sehr viel schneller als Primärzellen. Bei Bleisäurezellen liegt der Verlust bei ca 5% im Monat. Nickelmetallhydridzellen können 10 bis 30 % pro Monat verlieren, am meisten innerhalb der ersten 24 Stunden. Nach 3 Monaten können 80% der Ladung nicht mehr zur Verfügung stehen. Fausformel: 1% / Tag. Hohe Temperaturen erhöhen die Selbstentladung.

Weblinks