Low Power Design

Entwurf von energiesparenden Mikrocontroller-Schaltungen

27. Februar 2014, 13:41 Uhr | Von Andreas Riedenauer
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Besonderheiten bei AVR-Mikrocontrollern

AVR- und SAM-Mikrocontroller sind aufgrund des statischen CMOS-Designs und der Harvard-Architektur an sich schon sehr sparsam, sowohl absolut als auch auf die Rechenleistung bezogen. Beim AVR sind Eigenschaften wie der effiziente RISC-ähnliche Befehlssatz, Zero-Flag Propagation und das Flash Sampling zu nennen, bei dem der Programmspeicher nur während der Zugriffsphase mit Strom versorgt wird. Innerhalb der AVR-Familie variiert die Ausstattung mit Stromsparfunktionen. Bei den klassischen AVRs sind die Pico-Power-Ausführungen am sparsamsten und darunter wiederum die A-Typen (z.B. ATmega48/88/168PA), die um zirka 30 Prozent sparsamer sind als ihre Vorläufer. Xmegas sind grundsätzlich mit modernsten Techniken ausgestattet, insbesondere die Versionen mit USB (z.B. ATxmega128A1U).

ModulEinsparung aktive Einsparung Idle Mode
USART 2 % 6 %
 Asynchroner Timer (RTC) 4 % 15 %
Timer/Counter 2 % 6 %
ADC 4 % 14 %
 SPI 3 % 11 %

Tabelle 3: Einsparungen bei abgeschalteter Peripherie bei AVR-Controllern


Nicht benötigte Peripherie sollte abgeschaltet werden. Moderne AVRs haben ein sogenanntes Power Reduction Register (PRR), über das Timer, A/D-Wandler, USART und I2C durch Setzen eines Bits vom Takt getrennt werden können; sie verbleiben dann in ihrem letzten Zustand, bis der Takt wieder freigegeben wird. Der Analog-Komparator muss extra abgeschaltet werden, nämlich durch Setzen des Bits ACD im Register ACSR. Die Ersparnis beträgt etwa 60 µA bei 3 V. Dabei muss der Analog-Komparator-Interrupt gesperrt sein, sonst wird er durch Ändern des Bits ausgelöst. Dazu ist das ACIE-Bit im Register ACSR zuvor zu löschen. Wenn die Bandgap-Diode (Uref) intern mit einem Komparator-Eingang verbunden ist, fließen etwa 15 µA, und zwar auch im Sleep Mode. Deshalb sollte das ACBG-Bit im Register ACSR auf null gesetzt werden. Tabelle 3 fasst die Einsparmöglichkeiten zusammen.

Der Adressraum für die Spezialfunktions-Register (SFR), in dem schnelle Spezialbefehle angewandt werden können, ist beschränkt, so dass einige Peripherie-Register in den SRAM-Bereich gelegt werden mussten. Durch geschickte Auswahl der Peripherie können einige Takte eingespart werden. Zum Ausgleich stehen außerdem Allzweck-I/O-Register zur Verfügung, auf die ein schnellerer Zugriff möglich ist als auf das SRAM. Bei Xmegas kann man darüber hinaus die aktive Phase durch sogenannte Virtual Ports verkürzen, die den Zugriff auf die Register DIR, IN, OUT und INTFLAGS von bis zu vier Ports mit Single-Cycle-Befehlen zu Datentransfer und Bitmanipulation gestatten.

Der A/D-Wandler wird nur bei Bedarf eingeschaltet und dann möglichst im Single-Conversion-Modus betrieben. Im Noise Reduction Mode wird die CPU während der Wandlung abgeschaltet, was nicht nur Strom spart, sondern auch die Genauigkeit erhöht: Störungen des A/D-Wandlers durch die Aktivitäten der CPU fallen weg. Reichen 8 bit Auflösung anstelle der möglichen 10 bit, verkürzt sich die Wandlungszeit des A/D-Wandlers von 65 µs auf 12 µs. Da aber kein eigener 8-bit-Modus zur Verfügung steht, muss man den Wandler-Takt auf einen entsprechend hohen Wert stellen und durch Setzen des ADLAR-Bits das signifikante Ergebnisbyte ins ADCH-Register schieben. Dieses Register liest man 12 µs aus und schaltet dann den A/D-Wandler ab.

Liegen analoge Spannungen an Eingangs-Pins, die auch digitale Funktion haben, fließen in den digitalen Eingangsstufen Querströme, da beide Transistoren teilweise leiten. Bei modernen Typen können die digitalen Eingangszweige über das „Digital Input Disable Register“ (DIDR) bitweise getrennt werden. Beim Xmega kann man den Non-Volatile Memory Controller stromsparend konfigurieren. Dabei werden das EEPROM sowie nicht benutzte Teile des Flash abgeschaltet. Page-weise in das EEPROM zu schreiben ist sparsamer als Byte-weise.

Checkliste zum Low-Power Design mit Mikrocontrollern
Tabelle 4. Checkliste zum Low-Power Design mit Mikrocontrollern
© Ineltek-Mitte GmbH

Den Watchdog-Timer (WDT) abzuschalten spart einige µA, er wird möglichst nur in der Entwicklungsphase benutzt. Bei den Xmegas gibt es dank DMA und Event-System mehr Möglichkeiten, die CPU anzuhalten und dennoch auf Ereignisse zu reagieren und sogar Teilaufgaben selbstständig in der Peripherie ablaufen zu lassen. Ein Datenlogger etwa kann fast ohne CPU arbeiten: Über das Event-System löst die Echtzeituhr (RTC) periodisch A/D-Wandlungen aus, deren Ergebnisse über die DMA direkt im Speicher unter fortlaufenden Adressen abgelegt werden. Die CPU wird nur bei Bedarf per Interrupt geweckt, zum Beispiel, wenn das Ergebnis außerhalb eines zuvor definierten Bereichs liegt. Die DMA reduziert die CPU-Belegung um 96 % bei SPI-Kommunikation mit 4 Mbit/s und um 57 % bei UART-Kommunikation mit 2 Mbit/s. Die Verschlüsselungs-Einheit beim Xmega und einigen Cortex-Derivaten wie dem SAM4L erlaubt AES-Verschlüsselung unabhängig von der CPU. Bei den MCUs mit LCD-Con­troller wählt man spezielle Ansteuer-Signalformen und hält die Frame Rate möglichst niedrig, siehe im Datenblatt unter „Minimizing Power Consumption“ und „Low Power Waveform“. Bei synchronem LCD-Takt kann das LCD-Modul auch im Idle- und im Power-Save-Modus betrieben werden, bei asynchronem LCD-Takt dazu im A/D-Wandler-Noise-Reduction-Modus.

Fazit

Durch die genannten Verfahren kann der Energiebedarf mikrocontrollergesteuerter Schaltungen erheblich vermindert werden, wobei viele Maßnahmen noch nicht einmal die Rechenleistung einschränken oder die Systemkosten erhöhen – und wo Letzteres doch zutrifft, amortisiert sich der Mehraufwand mit der Zeit zumeist vielfach. Tabelle 4 zeigt eine Checkliste zum Low-Power Design mit Mikrocontrollern. Bei weltweit milliardenfacher Verbreitung von Mikrocontrollern ist schließlich auch der Umweltschutzaspekt nicht zu vernachlässigen.

 

Literatur

[1] www.atmel.com/products/microcontrollers
[2] www.atmel.com/devices/ATA5580.aspx
[3] AVR4013: picoPower Basics http://www.atmel.com/dyn/resources/prod_documents/doc8349.pdf
[4] www.ams.com/eng/Products/Magnetic-Encoders
[5] www.ams.com/eng/RFID/AS3953
[6] www.ams.com/eng/Products/RF-Products/Low-Frequency/AS3932
[7] Dembowski, K.: Energy-Harvesting für die Mikroelektronik, VDE-Verlag 2011.
[8] www.b-kainka.de/bastel36.htm
[9] http://leuze-verlag.de/dmdocuments/646-656_PLUS_0312.pdf
[10] www.mas-oy.com
[11] www.mcrystal.ch
[12] Holberg, A.M.; Saetre, A.: Innovative Techniques for Extremely Low Power Consumption with 8-bit Microcontrollers,www.atmel.com/technologies/lowpower/default.aspx
[13] Riedenauer, A.: Jedes Mikrojoule zählt. www.elektor.de/jahrgang/2010/marz/jedes-mikrojoule-zahlt.1255269.lynkx.

 

Der Autor

Dipl.-Ing. Andreas Riedenauer 
arbeitet bei der Ineltek-Mitte GmbH als Field Application Engineer (FAE).

riedenauer@ineltekmitte.de



  1. Entwurf von energiesparenden Mikrocontroller-Schaltungen
  2. Energiesparen bei Displays, Relais und HF-Bausteinen
  3. Controller-Auswahl
  4. Besonderheiten bei AVR-Mikrocontrollern

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!