Der Artikel soll euch eine schnelle Entscheidungshilfe und ein einfaches HowTo bei der Umsetzung von Energie Einsparungsmaßnahmen für IoT Sensoren mit Microcontrollern (MCU) geben:

Quick Guide (Faustregeln): 

  • Im Falle von Prozessoren
    • je höher die Takt Frequenz desto mehr Strom verbraucht der MCU
    • dasselbe gilt für die Spannung, allerdings wird die Schlatung auch störanfälliger
    • Grundsätzlich gilt die Leistungsaufnahme P ~ U²*f
    • auch die Prozesstechnologie hat einen direkten Einfluss auf den Stromverbrauch des MCU, eine 90nm Strukturgröße verbraucht im Schnitt nur noch ein Drittel von einer MCU in 180nm Strukturgröße, eine 7nm CPU verbraucht bei gleicher Leistung nur noch halb soviel an Energie wie eine 14nm CPU. Und je kleiner die Schaltverluste der Gate werden desto dominanter werden die Ruhe Leckströme der jeweiligen Technologie – also auf jeden Fall muss das Datenblatt zu Rate gezogen werden.
    • Externe Pullup Widerstände so hoch wie möglich wählen, Achtung auch hier muss da in jedem Fall über die Datenblätter des z.B. MCU kontrolliert werden
    • Den Deep Sleep Modus sooft wie möglich ansteuern, manche Prozessoren haben gleich mehrere Varianten und je nachdem können unter Umständen Peripherie Einheiten (z.B. ADC, Zähleingang, …) trotz Sleep Mode noch weiter verwendet werden
    • Überhaupt kann man durch eine geschickte Programmierung Strom sparen, daher immer wieder mal den Stromverbrauch des Systems messen.
    • Manche Compiler erzeugen bezüglich Energieverbrauch ineffizienten Code, daher während der Programmentwicklung auch immer wieder mal den Stromverbrauch kontrollieren

328 active supply current

  • Bei der Stromversorgung
    • Ein Verpolungsschutz sollte nicht über eine einfache Diode realisiert werden, sondern je nach Ausprägung über einen P-Kanal Mosfet (oder eben über einen N-Kanal Mosfet im GND Zweig), je nach RDson wird hier der Verlust über diesem Element drastisch reduziert.
    • Alle Peripherie Einheiten wie serielles Ram oder Sensor ICs sollten im Sleepmodus auch gänzlich abgeschaltet werden. Auch hier wird typischerweise ein P-Kanal Mosfet verwendet. Nicht abschalten kann man die Versorgungspannung des MCU selber (Ast auf dem man sitzt)!
    • Effiziente Spannungswandler helfen noch einmal Verluste zu reduzieren
    • Je weniger verschiedene Spannungs-Level notwendig sind desto weniger muss von einer Spannung auf eine andere „transformiert“ werden und auch damit sind wieder Verluste verbunden.

 

 

Welche Microcontroller sind jetzt besonders sparsam?

Der MSP430 von Texas Instruments sticht da seit vielen Jahren heraus und mit seinen fein abgestimmten Sleep Modi lassen sich extrem effiziente Lösungen realisieren. Er ist auch einer der wenigen MCUs die von der ESA für den Weltraum freigegeben wurden.

Von den Arm based MCUs hat jeder Lizenznehmer (z.B. Infoneon, ST, Microchip, …) eine ultra low power variante, exemplarisch hier 

  • von Microchip der SAMl10 der  mit 25 uA/MHz und im Deep Sleep gar nur 100 nA verbrauchen soll 
  • von ST die STM32L0 series of ultra-low-power MCUs mit 49 uA/MHz und im Deep Sleep 230 nA
  • von NXP die Kinetis KL33 Serie mit 69 uA/MHz und im Deep Sleep 1.3 uA

Linksammlung zum Thema:

Sehr viel Benchmark Informationen gibt es bei der EEMBC community aber halt nur für eine beschränkte Auswahl an MCUs 

Texas Instruments (TI) Benchmarking White Paper – etwas TI lastig, aber informativ

Link auf ResearchGate: System Design Impacts on Battery Runtime of Wearable Medical Sensors – adressiert ein paar interessante Aspekte so z.B. der Einsatz eines Real Time Operating Systems und die Abhängigkeit vom verwendeten Compiler

Vergleich von Analog Devices MCU, einmal mit M3 (mit ARMv7-M Architektur) und einmal mit M4F  Core

Einfach lesbarer Artikel von Pallav Aggarwal zum Thema 

Der Designspark Artikel gibt auch einen einfachen Einblick in das Thema Temperatur, Spannungsversorgung oder z.B. Wake Up Time 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert