32-Bit-Mikrocontroller zum günstigen Preis Einstieg in die ARM-Welt #####

Gerade im kostensensiblen Bereich finden sich immer noch sehr viele 8-Bit-Mikrocontroller, weil 32-Bitter zu teuer erscheinen. Ein neuer 32-Bit-Core möchte von diesem Kuchen ein großes Stück abhaben.

32-Bit-Mikrocontroller zum günstigen Preis

Gerade im kostensensiblen Bereich finden sich immer noch sehr viele 8-Bit-Mikrocontroller, weil 32-Bitter zu teuer erscheinen. Ein neuer 32-Bit-Core möchte von diesem Kuchen ein großes Stück abhaben.

Vielen Entwicklern ist der 8-Bit-Mikrocontroller ein alter Vertrauter aus Hochschule, Hobby und dem Alltag. Geboten wird integriertes Flash und RAM, das Handling gestaltet sich einfach, und bekanntere Derivate werden auch gut mit Software und anderen Dienstleistungen unterstützt. Außerdem sind solche MCUs meist sehr kostengünstig. Demgegenüber scheinen sich die ARM-Prozessoren eher für komplexe Anwendungen mit hoher Rechenleistung und wenig Kostendruck zu eignen. Die neue MCU-Familie »Stellaris« von Luminary Micro basiert auf dem 32-Bit-Prozessorkern »Cortex-M3« von ARM und eignet sich speziell für kostensensible Mikrocontrolleranwendungen. Dies soll den Um- und Einstieg in die ARMWelt erheblich erleichtern.

ARMs »Cortex-M3« ist ein Low-Cost-Prozessor, der sich für Systeme mit wenig Speicher, reduzierter Pinanzahl und niedriger Leistungsaufnahme eignet. Gleichzeitig weist er laut Hersteller eine Rechenleistung von 1,2 Dhrystone-MIPS pro Megahertz und eine niedrige Interrupt- Verzögerung auf. Nur 33 000 Logikzellen ist der Core groß und damit der kleinste von ARM entworfene Prozessorkern. Dieses Design verringert die Chipfläche, sodass sich kleine Bauteilgehäuse oder preiswertere Fertigungsprozesse mit 0,35 µm beziehungsweise 0,25 µm verwenden lassen.

Mithilfe des »Thumb«-Befehlssatzes lässt sich die erforderliche Codegröße reduzieren, indem er 16-Bit-Befehle mit ARMs 32-Bit- RISC-Architektur verbindet. Der »Thumb-2«-Befehlssatz ist binärkompatibel mit bereits bestehenden Thumb-Implementierungen und unterstützt zusätzlich Hardware- Divisions- und 1-Takt Multiplikationsbefehle, DSP-typische Features, die normalerweise nicht bei Mikrocontrollern zu finden sind. Erweitert werden diese 16-Bit-Befehle mit 32-Bit-ARM-Befehlen, sodass man einen kompakten Befehlssatz zusammenstellen kann, der effizient von Hochsprachen unterstützt wird. Dies ist ein wichtiges Argument für die Verwendung von 32-Bit-Architekturen. Mit Thumb-2 lassen sich Codedichten erreichen, die normalerweise nur 8-Bit-Mikrocontroller erreichen – aber bei voller 32-Bit-Leistung. Bild 1 verdeutlicht dies mit den Ergebnissen des EEMBC-Benchmarks.

Als 32-Bit-Prozessor hat der Cortex-M3 ein Speicheradresslimit von 4 GByte. Praktisch kommt eine Mikrocontrollerapplikation jedoch niemals an diese Grenze heran. Diesen ungenutzten Bereich nutzt ARM für die »Bit-Banding«-Technik und adressiert so Speicher, Peripherie oder SRAM-Adressräume mit Speicheraliasing. Mit dieser Technik lassen sich einzelne Bits innerhalb eines Datenwortes extrem einfach manipulieren. Anstatt ein ganzes Wort einzulesen, es mit dem entsprechenden Bit zu »verUNDen« und es danach zurückzuschreiben, absolviert Bit- Banding dies mit einem einzigen Speicherbefehl.

Der weiter zunehmende Konkurrenzdruck und verkürzte Produktlebenszyklen machen Entwicklungswerkzeuge zum Schlüssel für den Erfolg. Für ARM-Mikrocontroller existiert eine breite Basis an solchen Tools. Die Stellaris-Familie wurde vom Start weg gleich von zwei großen Tool-Herstellern unterstützt: Keil und IAR. Aber auch auf der Open-Source- Seite bietet der GNU-Compiler und -Debugger Unterstützung für den Cortex-M3. Integriert in die freie Entwicklungsumgebung »Eclipse « bieten sie Komfort und Leistungsfähigkeit, welche den anderen, weit teureren Entwicklungssystemen in nichts nachstehen (Bild 4).

Programmierung in Assembler ist heute in fast keinem Bereich mehr akzeptabel. Wie oben bereits angesprochen, ist »Thumb-2« auf die Verwendung von Hochsprachen ausgelegt, sodass zusammen mit hoch optimierenden Compilern sehr gute Codedichten möglich sind. Außerdem lässt sich in der Abstraktionsebene noch ein Schritt nach oben gehen. Die bisher im Embedded-Mikrocontrollerbereich übliche Programmierung auf Registerebene kann mit der von Luminary Micro entwickelten Treiberbibliothek ebenfalls entfallen. Diese bietet komfortable und gut dokumentierte C-Funktionen zur Bedienung der gesamten Controllerperipherie wie ADC, GPIOs, FLASH, I2C usw. Beispielsweise lässt sich der aktuell aufgenommene Wert eines ADC-Kanals mit folgendem Funktionsaufruf abfragen: ADCSequenceDataGet(unsigned long ulBase, unsigned long ulSequenceNum,unsigned long *pulBuffer).

Die Treiberbibliothek für den ADC kennt allein 21 Funktionsaufrufe für Konfiguraton, Interrupt-Handling, Triggerung und Datenbehandlung. Ein umständliches Ein- und Auslesen der entsprechenden Register entfällt damit. Auch eine Reihe von Evaluation- Kits ist für die Stellaris- Familie erhältlich. Das »EKKLM3S811 « beispielsweise bietet für den Preis von 49 Euro laut Hersteller den günstigsten Einstieg in die Entwicklung mit ARM überhaupt. Das kleine Board bringt ein kleines monochromes OLED-Display sowie eine Testversion der Entwicklungsumgebung mit. Für erste Gehversuche beim Wechsel von 8 Bit auf Cortex- M3 stellt Atlantik Elektronik ein Development-Kit (voraussichtlich für 40 Euro) zur Verfügung. Die Highlights sind unter anderem ein Vollfarb-OLED-Display, zwei Halbrücken für Motorsteuerung, Single-Wire-Debug- Schnittstelle und ein gebührenfreies Echtzeitbetriebssystem. Darüber hinaus bietet Atlantik Elektronik eine komplette Produktfamilie der auf Cortex-M3 basierenden Mikrocontroller von Luminary Micro an. (rh)