Infineons neue Low-Cost-Mikrocontroller XMC1000: Peripheriewunder mit Cortex-M0

Ein Jahr nach der Einführung des XMC4000 bekommt der Industrie-Controller von Infineon einen kleinen Bruder: Der XMC1000 nutzt mit ARMs Cortex-M0 einen kleineren Core, spart jedoch nicht an für diese Controller-Klasse innovativer Peripherie. Dank 65-nm-Fertigung auf 300-mm-Wafern wird der XMC1000 zudem der preisgünstigste 32-bit-Controller auf dem Markt, der sogar zahlreiche 8-bit-Controller unterbietet.

Der XMC4000, Infineons erster Mikrocontroller mit ARM-Core, ist, wenn man die großen Distributoren fragt, seit seiner Einführung Anfang 2012 sehr erfolgreich. Seine auf Industrieanwendungen zugeschnittene Peripherie differenziert ihn offensichtlich hinreichend von anderen Controllern mit Cortex-M4.

Die gleiche Strategie verfolgt der deutsche Chip-Hersteller nunmehr mit dem XMC1000 am unteren Ende der Leistungs- und vor allen Dingen Preisskala. Als Sweet-Spot hat man bei 8-bit-Controllern diejenigen Derivate mit 12, 14 bis hin zu 48 Pins ausgemacht, die für Anwendungen wie Waschmaschinen, Heizungspumpen oder LED-Steuerung zum Einsatz kommen.

In dieses Marktsegment glaubt Infineon mit dem XMC1000 vordringen zu können, der dank 65-nm-Fertigung auf 300-mm-Wafern bei der Foundry TSMC mit einem für 32-bit-Controller bisher nicht für möglich gehaltenen Preis von 25 Euro-Cent beginnt. Damit werden sowohl Freescales Kinetis-L (49 Dollar-Cent) und sogar NXPs LPC800, immerhin in einem DIP‑8-Gehäuse der bislang einfachste 32-bit-Controller auf dem Markt, mit 39 Dollar-Cent unterboten.

Auch wenn die architektonischen Vorteile einer 32-bit-MCU gegenüber 8-und 16-bit-MCUs wie der lineare Adressraum von 4 GB, die hohe Codedichte und der „C“-freundliche Befehlssatz unbestritten sind und mittlerweile 40 % der Embedded-Designer von heutigen 8- und 16-bit-Anwendungen eine 32-bit-Architektur bevorzugen würden, ist der Preis häufig das entscheidende Kriterium bei der Vorauswahl.

Um diese Preise machen zu können, hat Infineon noch an einer anderen Stelle gespart: Statt von ARM eine neue Lizenz für den Cortex-M0+ zu erwerben, baute man den XMC1000 um den Cortex-M0 auf, den man ja ohnehin schon für diverse Anwendungen u.a. im Chipkarten-Geschäft lizensiert hat. Die architektonisch zweifelsfrei existierenden Nachteile des Cortex-M0 gegenüber dem Nachfolger Cortex-M0+ fallen bei den Zielanwendungen (Motorsteuerung u.a. mit Hilfe feld­orientierter Regelung, LED-Lighting, digitale Leistungswandlung, Smart-Sensorik und Mensch-Maschine-Schnittstellen) wenn überhaupt natürlich viel weniger ins Gewicht als z.B. bei batteriebetriebenen oder Energy-Harvesting-Applikationen.

Gleiches trifft für die zu erwartenden erhöhten Leckströme gegenüber einem 90-nm- oder gar einem 180ULL-Prozess zu. Im aktiven Modus wird der Cortex-M0 beim XMC1000 durch zahlreiche Peripherie-Elemente entlastet, so dass sich die höhere Leistungsaufnahme und geringere Rechenleistung/MHz des Cores gegenüber dem Cortex-M0+ auf Chip­ebene nur sehr bedingt bemerkbar macht.

Der einzige echte Vorteil des Cortex-M0+ für die mit dem XMC1000 adressierten Echtzeitanwendungen ist die Möglichkeit, die Interrupt-Vektor-Tabelle vom Flash-Speicher ins RAM zu verschieben. Da z.B. die Löschung eines Flash-Blocks mehrere ms dauern kann, ist der Controller in dieser Zeit „blind“ für Interrupts, weil die Interrupt-Vektoren im für diesen Zeitraum blockierten Flash-Speicher liegen.

Beim M0+ kann man die Vektor-Tabelle ins RAM verschieben, so dass auch während eines Flash-Schreib- oder Lösch-Vorgangs Interrupts verarbeitet werden können. Infineon hat diesen Nachteil des Cortex-M0 kompensiert, indem die Vektor-Tabelle ins ROM gelegt wurde und die Zeiger ins RAM verzweigen. Somit können wie beim M0+ die Interrupt-Vektoren flexibel und schnell umkonfiguriert werden.

Insgesamt wird es drei Unterfamilien mit den Bezeichnungen XMC1100, XMC1200 und XMC1300 geben (Bild 1).