Ultra-Low-Power neu definiert TIs MSP432-Mikrocontroller mit ARM Cortex-M4

Der MSP432 mit ARMs Cortex-M4 erzielt den niedrigsten Energieverbrauch nicht nur aller TI-Mikrocontroller.
Der MSP432 mit ARMs Cortex-M4 erzielt den niedrigsten Energieverbrauch nicht nur aller TI-Mikrocontroller.

Nachdem wir schon im Februar 2013 exklusiv berichtet hatten, dass Texas Instruments an einem neuen Ultra-Low-Power-Mikrocontroller mit 32-bit-ARM-CPU arbeitet, wurde heute offiziell die erste Produktfamilie enthüllt. Der MSP432 dürfte der Konkurrenz noch viele Kopfschmerzen bereiten.

Der MSP430 mit seiner proprietären 16-bit-CPU war in den 90er Jahren und auch noch später seiner Konkurrenz um Längen voraus. Heute allerdings bei schrumpfenden Prozessgeometrien, der zunehmenden Ablösung von Assembler durch C und dem steigenden Wunsch der Kunden nach Betriebssystemen kann er mit ARMs 32-bit-CPU des Typs Cortex-M, die eine deutlich höhere Rechenleistung und einfacherer Programmierbarkeit bieten, außerhalb von Nischenmärkten wie Metering, wo der Sleep-Mode dominiert und der aktive Mode unter 1 % der Gesamtzeit ausmacht, nicht mehr konkurrieren.

Die aufgenommene Energie im aktiven Modus (=Leistungsaufnahme x Rechenzeit) wird von fast allen Cortex-M-Derivaten der Konkurrenz unterboten (abgesehen von den FRAM-Derivaten, die allerdings deutlich teurer als ihre Brüder mit konventionellem Flash sind), da die 16-bit-CPU bei auch noch niedrigeren Taktfrequenzen entsprechend länger braucht, den Workload abzuarbeiten. Zum Vergleich: Der höchste CoreMark-Wert eines MSP430 wurde mit einem MSP430F5529 und dem Compiler IAR EW430 V.5.52.1 erzielt (1,11 CoreMark/MHz), der Cortex-M4 kommt auf 3,41 CoreMark/MHz, das ist ein mehr als deinmal so hoher Wert.

TI arbeitete daher schon seit Jahren an einem ARM-Cortex-basierenden 32-bit-Ultra-Low-Power-Mikrocontroller, und zwar parallel in Freising und im Design-Center in Indien. Die nun vorgestellte Familie MSP432 (die 32 kommt von 32-bit-CPU) dürfte nicht nur bei schon existierenden MSP-Kunden viel Freude hervorrufen.

Die MCU wird es mit Flash-Größen von 64 KB bis 2 MB geben, als SRAM sind 32 oder 64 KB verfügbar. Im aktiven Modus erreicht der mit 48 MHz getaktete Cortex-M4 eine Stromaufnahme von 95 µA/MHz, einen Wert, der sogar unter Cortex-M0+ - Implementierungen der Konkurrenz liegt - so kommt z.B. Freescales Kinetis-KL17 auf 120 μA/MHz. Dafür gibt es zwei Hauptgründe: Zum ersten ein neu entwickelter 90-nm-Fertigungsprozess u.a. mit Transistoren unterschiedlicher Schwellenspannungen und optimierter Zellbibliotheken, der exklusiv in TIs eigenen Fabs läuft. Zum anderen ein LDO und DC/DC-Wandler auf dem Chip, die je nach Einsatzzweck die Stromversorgung vornehmen. Während der LDO bei einer etwas höheren Stromaufnahme (110 µA/MHz) einen schnelleren Wechsel vom aktiven in die Energiesparmodi (und umgedreht) ermöglicht (z.B. 10 µs vom Sleep-Mode mit aktiver Echtzeituhr in aktiven Modus), erreicht das System mit dem DC/DC-Wandler einen Wirkungsgrad von bis zu 95 Prozent und damit die erwähnten 95 µA/MHz.

Typischerweise müssen sich Entwickler dabei entweder für den LDO oder den DC/DC-Wandler entscheiden, nicht so beim MSP432. Hier kann dynamisch gewechselt werden z.B. im Sleep-Mode zum LDO für eine schnellere Aufwachzeit und bei längeren Phasen im aktiven Modus zum DC/DC-Wandler.

ULP-Mikrocontroller befinden sich typischerweise einen großen Anteil der Zeit in einem Energiesparmodus, z.B. um auf die Verarbeitung von durch Sensoren gelieferte Daten zu warten. Umso wichtiger ist eine extrem niedrige Leistungsaufnahme. Die Tabelle zeigt die fünf implementierten Energiesparmodi, deren niedrige Werte durch zahlreiche architektonische Verbesserungen wie z.B. den intensiven Einsatz von Power-Gating erreicht werden. Dazu kommen Innovationen wie ein konfigurierbarer Datenerhalt im RAM: Die acht Speicherbänke können einzeln abgeschaltet werden, wenn die Daten nicht erhalten werden müssen (z.B. beim Einsatz als temporärer Puffer oder Scratchpad-Speicher).

Grundsätzlich klar ist, je geringer die Versorgungsspannung, desto weniger Energie wird verbraucht. Der MSP432 kann im LDO-Betrieb zwischen 1,62 und 3,7 V arbeiten, was für fast alle Batterietypen passen dürfte und eine externe Spannungsregelung überflüssig macht (Ausnahme: Wenn der Supervisor für die Versorgungsspannung, Flash und LDO aktiv sind, werden statt 1,62 dann minimal 1,71 V benötigt). Im Gegensatz zu vielen Konkurrenzprodukten und auch den eigenen MSP430 kann die maximale Taktfrequenz auch bei niedrigster Versorgungsspannung aufrecht erhalten werden, auch auf den Flash kann bei 1,62 V (ohne Supervisor für die Versorgungsspannung) zugegriffen werden. Ohne LDO und mit DC/DC-Wandler beträgt im aktiven Mode die minimale Versorgungsspannung 2,18 V.

Ein 128 bit großer Puffer wird als Prefetch-Cache für den Flash-Speicher eingesetzt. Damit können pro Lesezugriff bis zu 8 ARM-Thumb-Instruktionen gelesen werden, was einerseits den Energieverbrauch durch Flash-Zugriffe reduziert und andererseits die Wait-States reduziert. Bei 48 MHz CPU-Frequenz würden ohne Puffer grundsätzlich 2 Wartezyklen pro Flash-Zugriff auftreten, mit dem Puffer geht diese Zahl in realen Applikationen zwar nicht auf Null zurück (im Idealfall bei linearem Code ohne Verzweigung denkbar, aber nur in der Theorie) aber wird eben deutlich reduziert. Das SRAM weist ohnehin einen Zugriff in einem Taktzyklus (0 Waitstates) auf.

Interessant ist, dass der MSP432 jedem SRAM- und Peripherie-Bit eine individuelle 32-bit-Adresse zuweist. Damit können diese durch eine einfache Schreib-Operation gesetzt bzw. gelöscht werden, statt drei Instruktionen (Speicheradresse lesen, Bit modifizieren, Speicheradresse schreiben) ausführen zu müssen. Der Code wird nicht nur kompakter, sondern natürlich auch energiesparender.

Wie schon beim MSP430 stellt TI eine Treiberbibliothek im 32 KB großen ROM zur Verfügung. Der Vorteil ist, dass auch hier bei 48 MHz ein Zugriff ohne Wait-States möglich ist, was einerseits zu einer bis zu 200 % schnelleren schnelleren Codeausführung, anderseits aber auch erneut zu einem geringeren Energieverbrauch führt - bis zu 35 % weniger als bei Ausführung aus dem Flash.

Last but not least werden jetzt statt drei (beim MSP430) nunmehr acht DMA-Kanäle unterstützt, was dazu führt, dass noch mehr Speicheroperationen ohne CPU-Intervention durchgeführt werden können, was noch mehr Energie spart. Nebenbei hat der Entwickler natürlich auch mehr Flexibilität bei der Konfiguration des Speichersystems.

 

 

Aktiver
Modus

(48 MHz)

Aktiver
Modus niedrige Frequenz, Low-Leakage

(128 KHz)

LPM 0

LPM 3/4
(Sleep-Mode
ohne/mit Echtzeituhr)

LPM 3.5
(Shut-Down mit Echtzeituhr)

LPM 4.5
(Shut-Down ohne Echtzeituhr)
MSP 432P401xx Stromaufnahme mit LDO160 μA/MHz90 μA23,8 μA/MHz850 nA/1,35 µA800 nA100 nA
MSP 432P401xx Stromaufnahme mit DC/DC-Wandler95,8 μA/MHz16,6 µA/MHz
Aufwachzeit, Wechsel vom Energiespar- in aktiven Modus    nicht verfügbar3-4 Taktzyklen
 
10 µs (typ.)/16 µs (max.)0,9 ms (typ.)/0,95 ms (max.)
 
1 ms (typ.)
LPM 0: CPU aus, SRAM aktiv, Flash aktiv, aber kein Zugriff LPM 3/4: CPU aus, SRAM Bank 0 aktiv, Flash und alle anderen SRAM-Bänke Power-gated. LPM 3.5/4.5: CPU, Flash und alle SRAM-Bänke außer Bank 0 power-gated. Alle Zahlen gelten für 25 °C.