7. Gut konzipierte Energie-Modi
Bei jedem EFM32-Mikrocontroller können die Ressourcen und dabei auch die Leistungsaufnahme in fünf Stufen, den Energie-Modi, eingestellt werden (Tabelle).
EFM32 @ 3 V |
EM0 »Run Mode« | EM1 »Sleep Mode« | EM2 »Deep Sleep Mode« | EM3 »Stop Mode« | EM4 »Shutoff Mode« |
---|---|---|---|---|---|
Stromaufnahme | 180 µA/MHZ |
45 µA/MHz |
0,9 µA | 0,6 µA |
20 nA |
Aufwachzeit | - | 0 µs |
2 µs |
2 µs |
160 µs |
CPU | aktiv | - | - | - | - |
Peripherie mit hoher Taktfrequenz | verfügbar | verfügbar | - |
- |
- |
Peripherie mit niedriger Taktfrequenz | verfügbar | verfügbar | verfügbar | - |
- |
Asynchrone Peripherie | verfügbar | verfügbar | verfügbar | verfügbar | - |
CPU- und RAM-Datenerhalt | aktiv | aktiv | aktiv | aktiv | - |
Power-on-Reset- Brown-out-Erkennung | aktiv | aktiv |
aktiv |
aktiv | aktiv |
Die fünf Energie-Modi des EFM32 und die jeweils verfügbaren bzw. aktiven Ressourcen.
Eine Feinabstimmung der Ressourcen lässt sich in jedem einzelnen Energie-Modus über ein Aktivieren bzw. Deaktivieren von Peripheriekomponenten erzielen. Dieses flexible Vorgehen stellt sicher, dass nur tatsächlich verwendete Ressourcen aktiviert sind und somit keine Energie verschwendet wird. Power-on-Reset und Brown-out- Erkennung sind bei allen in der Tabelle genannten Stromwerten inbegriffen, und vollständige Systemwiederherstellung besteht bis hin zum Energie-Modus 3 (EM3). Im Energie-Modus 2 ist sogar die laufende Echtzeituhr in den Werten enthalten.
8. Energieeffiziente Peripheriefunktionen
Selbst wenn CPU und Speicher häufig den Hauptanteil der Energie in der MCU aufnehmen, trägt auch die Peripherie beträchtlich zur Gesamtleistungsaufnahme bei. Deshalb wurden „leistungshungrige“ Peripheriefunktionen wie A/D-Wandler, LCD-Controller etc. äußerst energieeffizient ausgelegt. Über die integrierten Oszillatoren kann die Taktfrequenz sowohl der CPU als auch der Peripheriekomponenten individuell eingestellt werden, so dass die dynamische Leistungsaufnahme der verschiedenen Blöcke auf einem Minimum gehalten wird. Jeder EFM32 verfügt zudem über Komparatoren mit geringer Leistungsaufnahme, ferner über 12-bit-A/D- und -D/A-Wandler sowie Kommunikationsschnittstellen (UART, SPI, I2C, IrDA) und Timer. Des Weiteren hat Energy Micro einen Hardware-AES-Beschleuniger implementiert. Dieser kann eine Verschlüsselung oder Entschlüsselung für einen 128-bit-Block in nur 54 Zyklen bei Verwendung eines 128-bit-Schlüssels oder in 75 Zyklen bei Verwendung eines 256-bit-Schlüssels durchführen. Das ist 20 bis 40 Mal schneller als bei einer Software-Implementierung auf dem Cortex-M3 und 80 Mal schneller als Software-Lösungen auf einem 8-bit-Controller.
9. Entwicklungs-Tools vereinfachen die Arbeitsabläufe
Bei der Entwicklung energiesensibler Anwendungen muss der Entwickler viele Implementierungsentscheidungen treffen, die sich direkt auf die Energieaufnahme auswirken. Wenn Energieverluste bereits im Frühstadium der Prototypenentwicklung erkannt und beseitigt werden können, so kann auch der Energiebedarf des Endprodukts maßgeblich reduziert werden. Das als Option erhältliche EFM32- Entwicklungs-Kit erledigt diese Aufgabe mit dem Advanced Energy Monitoring System (AEM), wodurch der Entwickler die Leistungsaufnahme der Prototypanwendung in Echtzeit analysieren kann. Das Entwicklungs-Kit ist mit einer separaten MCU-Platine sowie einer Prototypenplatine ausgestattet, die auf der Hauptplatine aufgesteckt werden. Die Leistungsaufnahme der Anwendung kann auf dem AEMDisplay des Boards oder mit der energyAware- Profiler-Software auf dem PC dargestellt werden.
Debugging wird mit dem auf dem Board integrierten J-Link-Emulator von Segger über USB durchgeführt, womit ein Live-Debugging unter Einbeziehung von Entwicklungs-Tools (IDE) wie IAR Embedded Workbench und Keil μVision ermöglicht wird. Das Entwicklungsboard verfügt zudem über einen Debug-Ausgang, um eigene EFM32-Hardware zu debuggen. Sämtliche Schnittstellen sowie die Peripheriekomponenten des EFM32 sind verfügbar. Außerdem enthält die Entwicklungsplatine noch Bauteile wie Umgebungslichtsensor, Fotowiderstand, 3-Achsen-Beschleunigungssensor, Analogschnittstelle Line-in/Line-out und RS-232-Stecker. Das Entwicklungs-Kit wird über den USB-Port mit Strom versorgt oder wahlweise über eine externe Stromversorgung betrieben.
Zusätzlich zum Entwicklungs-Kit hat Energy Micro das EFM32-Starterkit (Bild 2) herausgebracht. Auf der Leiterplatte befinden sich die MCU EFM32G890F128, ferner ein 160-Segment- LC-Display, das über den integrierten LCD-Controller der MCU angesteuert wird, sowie ein Touch-Slider zur Veranschaulichung der kapazitiven MCU-Touch-Funktion. Zu den anderen E/A-Funktionen zählen vier LEDs, zwei Taster sowie ein MCUReset- Taster. Alle unbenutzten E/APorts sind am Rand der Leiterplatte über eine Platinenstiftleiste für Anwender zugänglich. Ein Erweiterungs- Port für komplexere Anwendungsentwicklungen ist ebenfalls vorhanden. Um dem Anwender eine weitere Verbesserung der Energieeffizienz seiner Anwendung zu ermöglichen, können Daten zur Stromaufnahme mithilfe des AEM-Systems von Energy Micro in Echtzeit analisiert werden. Energieverluste lassen sich damit frühzeitig erkennen und verhindern. Um das Debugging und die Programmierung der Anwendung zu vereinfachen, kann sowohl über USB als auch über einen 20-poligen Standardstecker auf den integrierten J-Link-Emulator zugegriffen werden.
Das Starterkit wird durch energy- Aware, die Software-Bibliothek von Energy Micro, unterstützt, die auf der Standard-CMSIS-Abstraktionsschicht von ARM aufbaut. Zum Support durch Drittanbieter zählen die IAR Embedded Workbench, Keil MDK-ARM und CrossWorks von Rowley Associates.