Des weiteren muss mit Rev 4 die Beschaltung der MCU bzw. konkret eines Abwärtswandlers dahingehend verändert werden, dass – wie in Bild 5 gezeigt – die Kapazität C3 von 1 µF auf 2 µF erhöht wird – laut AmbiqMicro, um Spannungswellen zu glätten. Dieser Wandler wird zur Versorgung von Core, Flash-Speicher, SRAM und analoger/digitaler Peripherie genutzt. Damit ist mit einer größeren Kapazität auch von einem höheren Spitzenstrom als in Rev 3 auszugehen. Last but not least steigt in Rev 4 die Übergangszeit vom Deep-Sleep-Modus in den aktiven Modus von 20 µs auf maximal 43 µs, sie hat sich im Worst-Case somit mehr als verdoppelt.
Alle drei Veränderungen werden am Ende zu einer geringeren Energieeffizienz der MCU führen (die wir mangels vorhandenem Silizium der Rev 4 nicht messen konnten), wobei man fairerweise sagen muss, dass für bestimmte Betriebspunkte (Versorgungsspannung liegt nicht unterhalb von 2,1 V und es herrschen vergleichsweise niedrige Temperaturen) immer noch konkurrenzlose ULPBench-Werte erzielt werden dürften.
SiliconLabs – Datenblatt und Wahrheit
Auf Grund der für uns überraschend schlechten Ergebnisse für die Gecko-MCUs aus dem Hause SiliconLabs [1] haben wir mal genauer hingeschaut. Erste Hinweise ergaben sich bereits aus den offiziellen Unterlagen. So stieg beim GiantGecko im Low-Power-Modus EM1 bei einer Versorgungsspannung von 3,0 V und 14 MHz Taktfrequenz von Rev 1.10 zu Rev 1.30 die angegebene Stromaufnahme um 48 % von 56 auf 83 µA/MHz. Im Modus EM2 stieg die Stromaufnahme bei 85 °C sogar um 50 % von 4,0 auf 6,0 µA, dazu waren die Werte für alle Temperaturen bei Rev 1.10 noch inklusive vollständiger RAM- und CPU-Retention angegeben. Bei Rev 1.30 galt dagegen, dass nur noch ein RAM-Block aktiviert ist – bei den Rahmenbedingungen von Rev 1.10 (RAM vollständig aktiv) ist insofern mit noch höherer Stromaufnahme zu rechnen.
Besonders hervorzuheben sind jedoch tatsächliche Abweichungen von Datenblatt und realen Messungen (Tabelle). Diese Abweichungen bis zu 935 % sind natürlich erheblich und ein Schlag ins Gesicht jedes Entwicklers, der sich zumindest bei der Vorauswahl einer MCU auf die Datenblattangaben verlässt.
Betriebsmodus | EFM32GG995 Datenblatt | Gemessen auf Starter-Kit | Abweichung in % gegenüber Datenblatt |
---|---|---|---|
EMO (48 MHz aktiv) | 219 µA/MHz | 290,0 µA/MHz | +32,4 % |
EM1 (48 MHz aktiv) | 80 µA/MHz | 100,2 µA/MHz | +25,3 % |
EM2 (32 KB SRAM, mit/ohne Echtzeituhr), 2 µs Aufwachzeit | 1,1/0,8 µA | 1,67/1,46 µA | +51,8/+82,5 % |
EM3 (32 KB SRAM, ohne Echtzeituhr), 2 µs Aufwachzeit | 0,8 µA | 1,12 µA | +40 % |
EM4 mit/ohne Echtzeituhr 163 µs Aufwachzeit | 400/20 nA | 587/207 nA | +46,8/+935 % |
Abweichungen von Datenblatt und realen Messungen bei Silicon Labs‘ EFM32-Giant-Gecko-MCUs
Dass es auch anders geht, zeigt die Konkurrenz. Hier ist z. B. TI mit dem MSP432 zu loben: Angegeben bei 24 MHz und 3,0 V sind im aktiven Modus mit DC/DC-Wandler 2200 µA, gemessen haben wir 2210 µA – eine Abweichung von weniger als 0,5 % gegenüber der Datenblattangabe.
Um auf SiliconLabs zurückzukommen: Auch beim PearlGecko Rev. B gibt es zwischen Soll und Ist z. T. erhebliche Abweichungen, die aber immerhin in einem Erratasheet benannt sind: Im Modus EM2 werden mit 32 KB SRAM bei 3,3 V und DC/DC-Umsetzung statt 1,4 µA gleich 2,48 µA aufgenommen, im Modus EM3 ebenfalls bei 3,3 V statt 1,1 µA nicht weniger als 2,1 µA.
Aber nicht nur bei SiliconLabs gibt es Abweichungen, wenn auch nicht so extrem. Wie schon in [1] dargestellt, erreicht Rev B von Atmels SAM21-MCU nicht dieselben ULPBench-Werte wie Rev A. Auch hier liefert das Datenblatt eine Erklärung: Im Standby-Modus stiegt bei 25/85 °C die Stromaufnahme ohne Echtzeituhr von 0,9/10,5 auf 1,2/20,7 µA, mit Echtzeituhr von 0,94/11 auf 1,4/20,8 µA.
Was sonst noch auffiel
Ein immer gerne diskutiertes Thema sind die Caches. Atmel misst z. B., wenn das READMODE-Register des NVM-Controllers auf »1« gesetzt ist, d. h. der Cache in einem Low-Power-Modus arbeitet. In diesem wird bei jedem Cache-Miss ein Wait-State eingefügt, was dazu führt, dass der ULPBench-Score bei Taktfrequenzen jenseits von ca. 12 MHz abfällt. Der MSP432 hat erst gar keinen Cache, weshalb auch seine Benchmark-Ergebnisse abfallen (allerdings erst ab 24 MHz) und STs STM32L4 hält sich vordergründig dank seines ARTs sogar bis 80 MHz tapfer.
Der schon aus dem F2 bekannte ART (Adaptive-Real-Time) führt dazu, dass theoretisch sogar bis 168 MHz ohne Wait-States bei Code-Verarbeitung aus dem Flash-Speicher gearbeitet werden kann. In der Praxis wirkt der ART freilich nur, wenn der Cache z. B. durch zahlreiche Sprünge im Code nicht ständig aus dem Flash neu geladen werden muss. In diesem Fall sind alle Angaben reine Theorie, bei kleinen Benchmarks wie CoreMark oder ULPBench mit sequentiellem Code kann der ART seine Stärken dagegen natürlich ganz groß ausspielen.
Eine weitere offene Frage war, warum TIs MSP432, der eigentlich alle Voraussetzungen (IP, ULP-Fertigung) für einen Spitzenplatz mitbringt, doch nicht ganz vorne gelandet ist. Ein Grund könnten die vergleichsweise hohen Spitzen-Einschaltströme sein, diese wurden mit 6,8 (DC/DC) bzw. 6,56 mA (LDO) gemessen, was die Konkurrenz deutlich übertrifft (Atmel SAM21 < 2 mA, STM32L47x 3,2 mA, AmbiqMicro Apollo 4,7 mA). Dazu ist die Übergangszeit vom LDO- in den DC/DC-Betrieb mit 10 µs vergleichsweise lang.
Im Zweifel: Selber messen
Für einen Ingenieur, der einen energieeffizienten Mikrocontroller sucht, sind Datenblätter nur eine bedingte Hilfe, da sie Stromaufnahmen nur zu wenigen Betriebspunkten nennen, die herstellerabhängig auch noch mehr oder weniger realitätsnah oder -fern sind. Wer z. B. ein Smart-Meter bauen will und eine niedrige Versorgungsspannung in Umgebungen von 50 bis 60 °C der betriebenen MCU anstrebt, kommt ums Selbstmessen nicht herum. Einer Art von »Dokumentation« ist freilich wohl auch jedem Datenblatt überlegen: Den bunten Marketingfolien der Hersteller, welche die »energiefreundlichsten Mikrocontroller der Welt«, die »branchenweit energieeffizientesten Mikrocontroller« oder die Controller »mit dem geringsten Stromverbrauch« (wobei Strom nicht verbraucht werden kann, das aber nur am Rande) versprechen – und sich dann bei unseren Vergleichsmessungen bestenfalls im Mittelfeld wiederfinden.