Frontalangriff auf 8-Bitter Neuer ARM-Industrie-Mikrocontroller von NXP

Mit dem LPC1200, dessen Herz ARMs 32-bit-Einstiegscore Cortex-M0 ist, will NXP Erfolge in industriellen Märkten wie Smart-Metering, weiße Ware und Fabrikautomatisierung feiern, in denen heute vor allen Dingen 8-bit-Controller dominieren. Warum aber sollen die Anwender wechseln?

In der Industrie zählt vor allen Dingen eines: Billig und robust muss die Lösung sein, was für die allermeisten 8-bit-MCUs zweifellos zutrifft. Auf der anderen Seite könnte eine effizientere Motorsteuerung, für die man ausgeklügelte Algorithmen und eine höhere Rechenleistung braucht, dazu führen, dass man billigere Motoren einsetzen und dort Geld sparen kann. Umfragen bei Herstellern von weißer Ware haben zudem gezeigt, dass viele moderne Applikationen mehr als 64 Kbyte Code benötigen, weshalb der LPC1200 mit bis zu 128 Kbyte Flash daherkommt.

Eine zweite Kernanforderung an Chips in rauen Umgebungen und mit instabilen Netzen, in denen ggf. hohe Transienten auftreten, ist deren Immunität gegen Netzrauschen und Transienten. NXP hat den LPC1200 daher bei der Firma Langer EMV-Technik GmbH einem EFT-Test gemäß IEC61697-1 unterzogen, in dem ihm eine „hohe Immunität“ bescheinigt wurde. Zudem ist ein ESD-Schutz bis 8 kV gegeben, der Temperaturbereich von -40°C bis +85°C versteht sich bei den Zielmärkten fast schon von selbst.

Der Vorteil des mit 30 MHz getakteten 32-bit-Cores Cortex-M0 gegenüber 8-bit-MCUs besteht vor allen Dingen in einer bis zu 50 % geringeren Codegröße, zudem spart er in den meisten Fällen auch Energie, da er mit höheren Rechenleistung bestimmte Aufgaben schneller abarbeiten und schneller wieder in den Sleep-Modus überführt werden kann – im Extremfall bis zu Faktor 3. Für Klimaanlagen, die mit MCUs ausgestattet werden, die z.T. nur 0,25 Dollar kosten, wird der LPC1200 sicherlich dennoch nicht in Frage kommen – diesen Preis wird man nicht erzielen können.

Ein entscheidender Nachteil des Cortex-M0 in Bezug auf die Zielanwendungen ist das Fehlen eines 32-bit-Hardware-Dividierers, so dass Divisionen in Software durchgeführt werden müssen. Je nach Compiler (Keil, IAR u.a.) und den Operanden kann eine solche Division vom Flash-Speicher ausgeführt mehrere hundert Taktzyklen in Anspruch nehmen, zudem hängt die Ausführungszeit von der Division selbst ab, was besonders für Motorsteuerungen unerfreulich ist. NXP liefert eine im ROM gespeicherte Bibliothek mit, die die wichtigsten vier Funktionen (vorzeichenlose Division, vorzeichenbehaftete Division, vorzeichenlose Division mit Rest sowie vorzeichenbehaftete Division mit Rest) enthält und zudem alle Divisoren und Dividenden bis zu 32 bit unterstützt. Die Ausführungszeiten betragen reproduzierbare 82 Zyklen (vorzeichenlos), 85 Zyklen (vorzeichenbehaftet, beide Vorzeichen Plus) oder 97 Zyklen (ein Vorzeichen Plus, das andere Minus).

Der Cortex-M0 kommuniziert über einen AHB-Lite-Bus mit Flash-Speicher, 4 oder 8 Kbyte SRAM, einem DMA-Controller, 39 oder 55 GPIOs, zwei 32-bit-Timern und der CRC-Engine. Über die 55 GPIOs mit programmierbaren Digitalfiltern können z.B. TRIACs für den Betrieb von Pumpen und Motoren direkt ohne externe Transistoren angesteuert werden. Die CRC-Engine soll speziell in verrauschten Umgebungen für eine höhere Signalintegrität sorgen und unterstützt drei Polynome: CRC-CCITT, CRC-16 sowie CRC-32. Dabei können 8-bit-, 16-bit- oder 32-bit-Werte geschrieben werden, da blockweise immer 8 bit verarbeitet werden, dauern ein 8-bit-Schreibzugriff 1 Taktzyklus, 16-bit 2 Zyklen und 32 bit 4 Zyklen.

An einem weiteren Bus, dem APB-Bus, der über eine Brücke mit dem AHB-Lite-Bus verbunden ist, hängen die „langsameren“ Komponenten. Dies sind u.a. ein Watchdog-Timer, der dank eines unabhängigen internen Oszillators IEC-60730 Klasse B erfüllt, die Power-Management-Einheit, die Takterzeugung (es gibt u.a. einen internen 12-MHz-Oszillator mit einer maximalen Abweichung von 1 %), Echtzeituhr, 2 UARTs, SPI, I2C (mit Fast-Mode-Plus, der zweimal so viele Geräte am Bus erlaubt als die typischerweise bei MCUs verbauten I2C-Schnittstellen und auch längere Übertragungsdistanzen möglich macht), ein A7D-Wandler mit 8 Kanälen und 10 bit Auflösung und zwei Komparatoren. Diese sind für 32 Referenzspannungen ausgelegt, so dass ein feinerer Vergleich vorgenommen werden kann. Zudem kann der Komparator-Ausgang auf den Eingang rückgekoppelt werden, so dass zusammen mit einer externen RC-Beschaltung eine State-Maschine erzeugt werden kann. Da die Ausgänge zudem an zwei Timern hängen, können auch Timestamps generiert werden.

Ein Highlight der LPC1200-Familie ist sicherlich die sogenannte „Event Control ASSP Solution“. Dahinter verbirgt sich die Möglichkeit, Verbindungen zwischen Interrupt-Controller, DMA-Subsystem, Peripherie und GPIO nach Kundenwünschen zu konfigurieren, um damit applikationsspezifische Lösungen für Großkunden anbieten zu können. Ein Beispiel wäre z.B. die Vorverarbeitung von Daten, die vom A/D-Wandler geliefert werden (Nullstellendetektierung, Erhöhung/Erniedrigung der Werte um einen konstanten Offset, Durchschnittsbildung) oder die Bereitstellung von zusätzlichen UARTs über GPIO. Ziel ist die Entlastung der CPU und damit Verringerung der Leistungsaufnahme, da sich die CPU länger im Energiesparmodus befinden kann. NXP hat dazu in München ein Expertenteam aufgebaut, dass diese Konfiguration für Großkunden durchführt – die ausgelieferten Chips sind daher kundenspezifisch und daher auch die Bezeichnung ASSP.

Neben der LPC1200-Familie wird es noch Derivate unter der Bezeichnung LPC12Dxx geben, die zusätzlich einen 40x4-Segment-LCD-Treiber beinhalten – konkret den PCF8576 von NXP.

Die beste Hardware nützt allerdings wenig, wenn es NXP nicht schafft, einen einfachen Migrationsweg für bisherige Kunden von 8-bit-MCUs primär vermutlich von Freescale und Microchip aufzuzeigen. Dadurch, dass Kunden heute immer mehr auf C statt auf Assembler setzen, wird vieles vereinfacht – nichtsdestotrotz sieht NXP seine Aufgabe auch darin, neben dem Chipverkauf auch seine Kunden auf der Software-Seite zu unterstützen. Erste Erfahrungen sollen laut NXP zeigen, dass eine Migration von Freescale-MCUs „painless“ sein und in wenigen Wochen realisiert werden können soll – was immer „painless“ aus Kundensicht bedeuten kann.