Neuer Hybrid-Chip mit Cortex-A und -M ST Microelectronics verbindet MCU mit MPU

Bei den 32-bit-Cortex-M-Mikrocontrollern ist ST Microelectronics mit Abstand schon seit einer Dekade Marktführer. Bei den MPUs wurde bislang NXP mit seinen i.MX-SoCs mehr oder weniger das Feld überlassen. Mit dem neuen STM32MP1 will ST nunmehr auch ein Stück dieses lukrativen Marktes gewinnen.

Die Erfolgsgeschichte von ST Microelectronics im Bereich der Arm-Cortex-M-Mikrocontroller hat zu einem Marktanteil von über 50 % in diesem stark wachsenden Markt geführt. Schon 2007 stellte man die weltweit erste Cortex-M3-MCU vor, es folgten M4, M0+ und 2014 der erste Cortex-M7-basierte Chip. Eine ähnliche Erfolgsstory schreibt STs US-Wettbewerber NXP mit seiner i.MX-MPU-Familie. In diesem Segment der Cortex-A-Applikationsprozessoren, in vielen Fällen noch um eine MCU des Typs Cortex-M4 für latenzzeitkritische Tasks ergänzt, konnte ST bisher nur zusehen, wie die Dollars in das texanische Austin rollten.

Mit dem in 40 nm gefertigten STM32MP1, der neben einem oder zwei mit 650 MHz getaktete CPUs des Typs Arm Cortex-A7 einen mit 209 MHz getakteten Cortex-M4 und eine mit 533 MHz getaktete GPU (wir vermuten eine Vivante-GPU der GC-Nano-Familie, ein Datenblatt lag uns leider zum Erstellungszeitpunkt dieses Textes noch nicht vor) beinhaltet, zielt auf ähnliche Anwendungen wie NXPs i.MX8 DualX (er besitzt allerdings statt den 32-bit-Cortex-A7 die neueren 64-bit-CPUs des Typs Cortex-A35), den man seitens der Konfiguration noch am ehesten mit dem STM32MP1, jedenfalls im Vollausbau, vergleichen kann. Anwendungsbeispiele sind unter anderem Industrieautomation & Steuerung, HMI, Robotik und Gesundheit/Wellness.
Neben der beschriebenen Variante, die unter der Bezeichnung STM32MP157 vermarktet wird, wird es noch ein Derivat STM32MP153 ohne GPU geben, beim STM32MP151 entfällt neben der GPU auch noch die CAN-FD-Schnittstelle. Auch Derivate mit Single-Core-Cortex-A7 soll es geben. Den STM32MP153 kann man auf NXP-Seite mit dem i.MX7 vergleichen, der ebenfalls keine GPU, dafür aber Cortex-A7-CPUs implementiert.
Bild 1 zeigt das Blockdiagramm des STM32MP157. Was auf den ersten Blick auffällt, ist der mit 256 KB vergleichsweise kleine zwischen den A7-Cores geteilte L2-Cache (NXP implementiert 512 KB), dafür hat der Cortex-M4 mit 448 KB SRAM (davon 384 KB System-Ram und 64 KB Retention-RAM) einen umso größeren Speicher on Chip. Als externe Speicher können über einen DDR-Controller und die mit 533 MHz getaktete 16/32-bit-Schnittstelle DDR3/3L/LPDDR2/LPDDR3 angebunden werden, dazu steht für Flash eine Dual-Quad-SPI-Schnittstelle zur Verfügung.
Die Vivante-GPU wird mit 533 MHz getaktet und liefert 26 Mio. Dreiecke/s bzw. 133 Megapixel/s. Sie unterstützt OpenGL ES2.0., nicht jedoch OpenGL ES 3.1 bzw. 3.0. Für die Ausgabe stehen zwei MIPI-DSI-Leitungen mit Übertragungsraten von 1 Gb/s ebenso zur Verfügung wie ein LCD-TFT-Controller für WXGA-Auflösungen bei 60 Frames/s und 24-bit-RGB-Farbdarstellung.
Von der reichhaltigen Peripherie sind 1 Gbit-Ethernet, zwei CAN-FD-Schnittstellen und zwei 16-bit-A/D-Wandler sowie zwei 12-bit-D/A-Wandler erwähnenswert, natürlich sind auch alle üblichen Verdächtigen wie USB, SPI, I2C, UART und eine Kameraschnittstelle verfügbar.
Optional kann man auch STs schon bekannte Verschlüsselungs-Engine bestellen. Neben einem Zufallsgenerator ist ein AES-Hardwarebeschleuniger zu nennen, der sowohl zum Verschlüsseln als auch zum Entschlüsseln von Daten mit einem AES-Algorithmus genutzt werden kann und 128/256 bit lange Schlüssel verwenden kann. Unterstützt wird die Verschlüsselung/Entschlüsselung mittels AES-Rijndael-Blockverschlüsselungsalgorithmus und einer NIST-FIPS-197-konformen Implementierung des AES-Verschlüsselungs-/Entschlüsselungsalgorithmus.
Der Hash-Prozessor ist eine vollständig konforme Implementierung des sicheren Hash-Algorithmus (SHA-1, SHA-224, SHA-256), des MD5 (message-digest algorithm 5) Hash-Algorithmus und des HMAC (Keyed-Hash Message Authentisierungscode) Algorithmus, der für eine Vielzahl von Anwendungen geeignet ist.
Der Public-Key-Beschleuniger (PKA) ist für die Berechnung von kryptographischen öffentlichen Schlüsseln vorgesehen, insbesondere solche, die mit RSA, Diffie-Hellmann oder ECC zusammenhängen (elliptische Kurve Kryptographie) über GF(p) (Galoisfelder). Um einen hohen Durchsatz zu einem vernünftigen Preis zu erreichen, werden diese Operationen in der Montgomery-Domäne ausgeführt.
Das eingebettete OTFDEC entschlüsselt in Echtzeit die verschlüsselten Inhalte, die in externen OctoSPI-Speichern, die im Memory-mapped-Modus verwendet werden, liegen. Das OTFDEC verwendet den AES-128-Algorithmus im Counter-Modus (CTR). Codeausführung auf externen OctoSPI-Speichern kann dank STMicroelectronics proprietärer Minicipher gegen Fehlerinjektion geschützt werden.
An Timern gibt es neben fünfzehn 16-bit-Timern auch zwei 32-bit-Timer sowie zwei speziell für Motorsteuerungen designte 16-bit-Timer mit PWM-Digitalausgängen.
Werden beide Cortex-A7-Cores mit 650 MHz getaktet und der Cortex-M4 zusätzlich mit 209 MHz, nimmt der Chip (ohne Peripherie und GPU) 353 mW auf, bei nur einem Cortex-A7 sinkt der Wert auf 275 mW. Der Cortex-M4 alleine (z.B. wenn man Sensor-Daten akquiriert oder einen Motor steuert und dabei die Cortex-A7 abschaltet) nimmt 92 mW auf. Alle Werte gelten für eine Versorgungsspannung von 3.3 V bei 25 °C und einer Core-Versorgungsspannung von 1.2 V.
Im Standby-Modus, aus dem der Chip in einer Sekunde in die Linux-Konsole und in 3 s in eine 3D-Grafik-Anwendung (d.h. GPU-Operation) „aufwachen“ kann, werden 36 µW aufgenommen, im VBAT-Modus mit aktiver Echtzeituhr und Tamper-Schutz 4,5 µW.
Last but not least soll der Stromversorgungs-Chip STPMIC1 erwähnt werden, über den sich nicht nur Linearregler und DC/DC-Wandler für den STM32MP1 selbst befinden, sondern der gleich auch noch ein etwaiges Display, externen Speicher und andere externe Komponenten mitversorgen kann und damit einen kleinen PCB-Footprint und für die typischen Zielanwendungen eine reduzierte BOM erlaubt.

NXPs i.MX 8 DualX vs. STM32MP1

Mit dem STM32MP1 sticht ST Microelectronics in ein Wespennest, in dem sich seitens des Wettbewerbers NXP dutzende Derivate der i.MX-Familie tummeln.
Angesichts der Konfiguration des STM32MP157 mit GPU ist der in einem bei Samsung in einem 28-nm-FDSOI-Prozess gefertigte i.MX8 DualX wohl noch am ehesten vergleichbar, obwohl er statt des Cortex-A7 den modernen 64-bit-Prozessor Cortex-A35 eindesignt hat. Anders als der Cortex-A7 bietet der Cortex-A35 alle neuen Features von Armv8-A, wie zum Beispiel 64-bit Support und einunddreißig 64-bit General Purpose Register anstelle von lediglich fünfzehn 32-bit Register. Zudem gibt es einige Verbesserungen in der NEON Unit für Anwendungen wie Machine Learning und Computer Vision.
Der Cortex-A35 liefert zudem eine bis zu 40% höhere Rechenleistung als der Cortex-A7 — bei gleicher Taktfrequenz und das auch noch bei 10 % geringerem Energieverbrauch.
Dass der Cortex-A35 im NXP-Chip auch noch mit 1,2 GHz getaktet wird, zeigt, dass die absolute Rechenleistung auf MPU-Seite nicht vergleichbar ist – der i.MX outperformt den ST-Chip in einer Dual-Core-Konfiguration auf dem Papier um mindestens Faktor 4. Der Cortex-M4 wird bei NXP mit 264 MHz getaktet, also nur moderat höher als bei ST. Die Vivante-GPU des Typs GC7000UltraLite wird bei NXP mit 372 MHz getaktet, Angaben für die Pixelrate finden sich in dem aktuell verfügbaren vorläufigen Datenblatt nicht.
Dazu integriert der i.MX 8 noch einen Tensilica-Hifi-4-DSP für Audio Pre-/und Postprozessing, der mit 640 MHz getaktet wird. Eine Analogie bei ST fehlt. Das CAAM (Cryptographic Accelerator and Assurance Module) von NXP implementiert verschiedene Verschlüsselungs- und Hashing-Funktionen, einen Laufzeit-Integritätsprüfer und einen Pseudo Zufallszahlengenerator (PRNG).
CAAM implementiert auch einen Secure Memory-Mechanismus. Der hierfür zur Verfügung gestellte Speicher beträgt 64 KB.
Angesichts dieses Vergleichs kann man sicherlich sagen, dass der STM32MP157 sicherlich seinen Markt finden wird, wenn der i.MX8 DualX ein Overkill an Rechenleistung und Funktionalität (z.B. der DSP) bedeutet.
Der STM32MP1 wird sicherlich preislich deutlich unterhalb des i.MX positioniert sein.

Entwicklungsboards

Für 399 Dollar bietet ST Microelectronics ein Evaluierungs-Board in Vollausstattung an, wer es günstiger haben will, kann für 69 Dollar ein Demo-Board und für 99 Dollar ein Demo-Board mit integriertem WVGA-Display und WiFi/Blutooth-Kombimodul kaufen.
An Entwicklungstools steht dem Kunden das gesamte Arm- und ST-Microelectronics-Ecosystem zur Verfügung, was es gerade den zahlreichen STM32-MCU-Kunden sehr leicht machen dürfte, auf den neuen Chip zu migrieren.
Dazu wird das SoC bereits von Linux in der Version 4.19 mit Langzeitpflege (LTS, Long Term Support) unterstützt, was es natürlich deutlich vereinfacht, auf den beiden Applikationsprozessoren zu entwickeln.
Auch OP-TEE für eine sichere Ausführungsumgebung basierend auf Arms TrustZone-Technologie kann auf den Cortex-A7 bzw. Linux ausgeführt werden. Auf dem Cortex-M4 kann man z.B. wie auf den STM32-MCUs ein RTOS laufen lassen.Zur Optimierung der Entwicklung in jeder Projektphase ermöglichen drei Entwickler-Softwarepakete den Anwendern die Auswahl der Support-Option, die ihren Anforderungen am besten entspricht:

  • Starter Package (STM32MP1Starter) für den schnellen und einfachen Start mit einem beliebigen STM32MP1-Mikroprozessor
  • Developer Package (STM32MP1Dev) zum Hinzufügen eigener Entwicklungen zusätzlich zur STM32MP1 Embedded Software Distribution
  • Distribution Package (STM32MP1Distrib) zum Erstellen einer eigenen Linux-Distribution, einem eigenen Starter sowie eigener Developer-Pakete

Das Engagement von ST für reichhaltigen Software-Support, zu dem auch das Firmwarepaket STM32CubeMP1 gehört, stellt eine Besonderheit der Serie STM32MP1 dar. STM32CubeMX erleichtert die Software- und Hardware-Konfiguration der Cortex-A7- und Cortex-M4-Cores. Es handhabt die Generierung von C-Code für den M4-Core, das Konfigurieren der DDR-SDRAM-Schnittstelle und das Tuning-Tool und kann auch Linux Device Trees generieren. ST unterstützt die Kunden zusätzlich mit einer Auswahl an Community Boards sowie System on Module Boards (SOM) von Drittanbietern.

Zusammenfassend kann man festhalten, dass das SoC vom Design und seiner reichhaltigen SW-Unterstützung einen erfolgsversprechenden Einstieg in die MPU/MCU-Welt verspricht.
Ausreichende Rechenleistung in Verbindung mit hoher Energieeffizienz für die Zielanwendungen ist vorhanden, wenn auch das Preisschild stimmt, spricht nichts dagegen, dass sich der STM32MP1 nahtlos in das erfolgreiche STM32-Universum einfügt.