Eine der Eigenschaften von CMOS-Technologie ist, dass die meiste Energie benötigt wird, um eine große Anzahl kleiner Kapazitäten umzuladen. Diese Energie lässt sich wie folgt berechnen:
Dabei ist Udig die digitale Versorgungsspannung und C die Summe aller Einzelkapazitäten.
Die im STM32L verwendete 0,13-µm-Technologie erlaubt es, die Einzelkapazitäten klein zu halten. Gleichzeitig wirkt sich der kompakte Cortex-M3-Prozessor positiv auf die Gesamtzahl der Kapazitäten aus. Zusätzlich wird durch Clock Gating die dynamische Stromaufnahme ungenutzter Schaltungsteile unterdrückt.
Ein interner Low-Drop-Out-Spannungsregler (LDO) und das so genannte Voltage Scaling tragen zu einer Reduzierung von Udig bei. Der LDO-Regler stellt sicher, dass der digitale Teil des Controllers mit der niedrigsten möglichen Spannung zur Erreichen einer bestimmten Rechenleistung versorgt wird. Er lässt sich auf drei verschiedene Spannungen einstellen. Bild 2 zeigt, dass das günstigste Verhältnis von Stromaufnahme und Rechenleistung bei Udig = 1,2V erreicht wird.
Das Konzept des Voltage Scaling besteht darin, den STM32L grundsätzlich bei niedrigem Udig zu betreiben, und nur dann eine höhere Spannung einzustellen, wenn dies zur Erledigung einer bestimmten Task in einer vorgegebenen Zeit nötig ist. Taktfrequenz und Udig können zur Laufzeit verändert werden, was eine dynamische Optimierung von Stromaufnahme und Rechenleistung ermöglicht.
Stromaufnahme im Idle-Modus
In der Regel verbringt ein tragbares Gerät die meiste Zeit in einem Idle-Modus. Auch wenn der Verbrauch in diesem Modus um Größenordnungen kleiner ist als im Aktiv-Modus, kann er für den Gesamtverbrauch ausschlaggebend sein. Der STM32L bietet eine ganze Reihe von Idle-Modi, die es dem Designer ermöglichen, die Implementierung seiner Anwendung im Hinblick auf das zur Verfügung stehende Energie-Budget (z.B. Batteriegröße) zu optimieren:
Modus | Aktiv (run) aus Flash | Aktiv (run) aus RAM | Low Power run @ 32 kHz |
Low Power sleep + 1 Timer |
Stop mit/ohne RTC | Standby mit/ohne RTC |
typische Stromaufnahme bei 25°C | 230 µA/MHz | 186 µA/MHz | 10,4 µA | 6,1 µA | 1,3/0,43 µA | 1,0/0,27 µA |
Stromaufnahme in den verschiedenen Modi des STM32L.
Im Stop-Modus werden beispielsweise nur 430 µA aufgenommen, und das bei vollständigem Erhalt des Systemzustands und extrem kurzer Aufweckzeit im Bereich weniger µs. Der integrierte LCD-Controller, eine wichtige Komponente in tragbaren Healthcare-Geräten, wurde ebenfalls im Hinblick auf niedrige Stromaufnahme entwickelt. Ein integrierter Aufwärtswandler mit sehr niedriger Stromaufnahme erlaubt es, die Anzeige über lange Zeiträume und einen weiten Versorgungsspannungsbereich aktiv zu halten.
Die Auflösung des A/D-Wandlers, der nach dem Prinzip der sukzessiven Approximation arbeitet, beträgt 12 bit bei einer Wandlungsrate von 1 MS/s. Seine 24 Kanäle bieten einen Eingangsspannungsbereich von 0 V bis Uref. Zur Erhöhung der Wandlungsrate kann die Auflösung auf 10, 8 oder 6 bit reduziert werden. Neben Eigenschaften wie Injektion von Wandlungen, eine Vielzahl von Trigger-Möglichkeiten, DMA, per Kanal individuell einstellbare Sampling-Dauer und Selbstkalibrierung, wird auch der Low-Power-Betrieb in besonderem Maße unterstützt. Der A/D-Wandler wird vom internen Oszillator getaktet und kann so unabhängig vom Rest des Chips funktionieren, auch wenn dieser im Stromsparbetrieb ist. Andererseits kann der Wandler selbst bei niedriger fCPU eine Anzahl schneller Wandlungen durchführen und sich dann selbst abschalten. Bei 32 kHz CPU-Takt dauert ein Befehl 31 µs. Nach beispielsweise 5 Wandlungen von je 1 µs kann sich der Wandler nach 5 µs abschalten, ohne die Ausführung des Befehls abzuwarten. Damit reduziert sich seine Stromaufnahme auf ein Minimum.
Die hohe Wandlungsrate erlaubt es, durch Oversampling eine höhere Genauigkeit zu erreichen. Bei Oversampling verwendet man entweder inhärentes Rauschen oder fügt ein künstliches Signal (z.B. ein mit dem integrierten D/A-Wandler generiertes Rauschen oder Dreieckssignal) zu und wandelt die resultierende Spannung mit einer Rate, die höher ist als die, die sich aus dem Nyquist-Kriterium ergibt. Das Ergebnis wird dann gemittelt. Dadurch lässt sich die Quantisierung in einem gewissen Bereich verfeinern.
Die Höhe des Oversampling hängt von der Natur des zugefügten Signals ab. Bei einem Dreieckssignal ist eine 2P+1-fache und bei weißem Rauschen eine 4P-fache Wandlungsrate nötig. P ist dabei die Anzahl der zur Genauigkeit hinzugewonnenen Bits. Sinnvoll ist dieses Verfahren beim STM32L bis zu einer Genauigkeit von 14 bit, bei noch relativ hoher effektiver Wandlungsrate und entsprechend kurzer Einschaltzeit des A/D-Wandlers.