Die standardisierte 32-Bit ARM-Architektur der Firma ARM Ltd. aus Cambridge bildet die Basis für jeden ARM-Prozessor. Im Laufe der Jahre hat sich die ursprüngliche ARM-Architektur rasant entwickelt. Die neueste Version des ARM bildet die ARMv8 Architektur. Diese zeigt schon deutlich in Richtung 64-Bit Architekturen. Vielleicht werden Sie sich jetzt fragen, wozu sie solche Leistung brauchen. Aber selbst Hobbyprojekte wie Quadcopter oder eine Hexapod können recht schnell an die Leistungsgrenze eines 8/16- Biter stoßen.
ARM Controller sind dem Wesen nach RISC (Reduced Instruction Set Computer) und unterstützen die Realisierung einer breiten Palette von Anwendungen. Inzwischen gilt ARM als führende Architektur in vielen Marktsegmenten und kann getrost als Industriestandard bezeichnet werden. Den Erfolg der ARM-Architektur kann man sehr gut an den aktuellen Trends bei Smart-Phone, Tablett und Co. ablesen. Mehr als 40 Lizenznehmer bieten in ihrem Portfolio ARM-basierende Controller an. Vor allem Effizienz, hohe Leistung, niedriger Stromverbrauch und geringe Kosten sind wichtige Attribute der ARM-Architektur.
Die Cortex-M zielen direkt auf das Marktsegment der mittleren eingebetteten Systeme. Dieses wird bisher von 8-Bit und 16-Bit Controllern dominiert. Dabei scheut ARM auch nicht den direkten Vergleich mit der kleineren Konkurrenz bezüglich Effizienz, Verbrauch und Preis. Die Botschaft heißt: 32-Bit Leistung muss nicht hungriger nach Ressourcen sein, als ein 8-Bit Controller und ist auch nicht teurer. Natürlich vergleicht man sich besonders gern mit den guten alten 8051ern und zeigt voller Stolz seine Überlegenheit bei 32-Bit Multiplikationen. Bei aller Vorsicht bezüglich der Werbeargumente kann es jedoch als sicher gelten, dass der Cortex-M einige Marktverschiebungen in Gang gesetzt hat. Die folgende (mit Sicherheit nicht vollständige) Darstellung soll die Skalierung der Cortex-M Familie verdeutlichen.
Der Formfaktor dieser 32-Bit Controller lässt sich durchaus mit den größeren Mega und X-Mega Controllern der AVR-Familie von Atmel oder anderer 8/16 Bit Controller vergleichen. Für den blutigen Anfänger unter den Bastlern könnte jedoch die SMD-Bauweise eine nicht unerhebliche Einstiegshürde darstellen.
Die Standardisierung des ARM betrifft nicht nur die Hardware, sondern auch die gemeinsamen Aspekte aller ARM-Applikationen. Die ARM-Lizenznehmer halten sich strikt an die Architektur des ARM-Kerns und fügen nur ihre spezifische Peripherie hinzu. Alle den Kern betreffenden Softwarefunktionen lassen sich somit herstellerübergreifend standardisieren.
CMSIS - Cortex Microcontroller Software Interface Standard, ist ein herstellerunabhängiges Hardware Abstraction Layer für die Cortex-M Prozessoren und umfasst folgende Standards:
Damit sind grundlegende Funktionen aller ARM Controller kompatibel und lassen sich herstellerunabhängig und portabel verwenden. In der später vorgestellten Entwicklungsumgebung steht Ihnen eine umfangreiche Hilfe zum CMSIS zur Verfügung.
Die Firma Infineon bietet in ihrem breiten Produktspektrum ebenfalls Mikrocontroller auf der Basis der ARM Cortex-M Architektur an. Dabei lassen sich derzeit in der XMC Familie zwei Grundrichtungen erkennen:
Infineon bietet, wie jeder Hersteller, für verschiedene Anwendungsfälle Referenzhardware zum Kennenlernen und Testen an. Beispiele für solche XMC-Evaluierungsbords sind:
Alle weiteren Ausführungen in diesem Tutorial beziehen sich auf das XMC4500 Relax Kit von Infineon.
Das XMC4500 ist zwar nicht eines der Neuesten, aber eines der preiswertesten und leistungsfähigsten Evaluierungsboards von Infineon. Es ermöglicht dem Anwender, besonders die Hochleistungs-Eigenschaften des Cortex-M4 zu erkunden und trotzdem Anwendungen einfach zu entwickeln. Mit dem im nächsten Abschnitt vorgestellten myXMC Zusatz-Board verfügen der Anfänger und der Umsteiger über alles, was für den schnellen Einstieg in die XMC-Programmierung, aber auch für anspruchsvolle Anwendungen, erforderlich ist.
Die Bestückung mit simplen Eingabe- und Ausgabegeräten ist auf dem Board mit zwei Tastern und zwei frei verfügbaren LEDs doch eher spartanisch gehalten. In diesem Punkt bringt das Erweiterungsboard genügend Abhilfe. Hervorzuheben ist der abtrennbare JLINK Programmer von Segger. Mit diesem können über den nachrüstbaren SWD-Pfostenstecker (Serial Wire Debugging) andere XMC programmiert und debuggt werden. Doch zunächst einige wichtige Aspekte zum Inneren des XMC-Cotrollers.
Für das Verständnis des XMC Controllers sind einige grundlegende Strukturmerkmale wichtig. Neben dem Programmier- und Debug-Interface, den getrennten Programm- und Daten-Speichern, sind für den Anfänger, aber auch für Umsteiger, folgende Bausteine von besonderer Bedeutung:
Im Tutorial werden diese Bausteine öfter eine Rolle spielen. Es ist einfach im Sinne des Lernens durch Wiederholung zweckmäßig, schon jetzt davon gehört zu haben.
Das myXMC-Board-4500 fungiert als Add-On und ist eine ideale Ergänzung zum Board „XMC4500 Relax Kit“. Sie erweitern mit diesem Add-On in einfacher Art und Weise die Möglichkeiten Ihres XMC4500 Relax Kit. Zusätzliche digitale und analoge Ein- und Ausgabegeräte sowie die Möglichkeit einer optionalen USB-USART Bridge für die Kommunikation mit dem PC, komplettieren Ihre Experimentier- und Lernplattform. Desweiteren verfügt dieses Add-On über eine Schnittstelle für weitere myAVR Add-Ons.
Besonderheiten: Das myXMC-Board-4500 ist besonders darauf ausgelegt, Kennern der myAVR-Produkte und der 8-Bit AVR-Controller, den Umstieg und Anfängern den Einstieg in die Programmierung von 32-Bit ARM-Mikrocontrollern zu erleichtern.
Das myXMC-Board-4500 verfügt über einige typische, von der myAVR-Serie bekannte Ein- und Ausgabegeräte, wie zum Beispiel Potentiometer, Schalter, Frequenzwandler und LEDs. Ebenfalls ist auf dem Board ein analoger Lichtsensor zur Verwendung unterschiedlicher Helligkeitsgrade installiert. Der Formfaktor orientiert sich an den bewährten didaktischen Prinzipien der myAVR Lernsysteme.
Eigenschaften:
Es handelt sich hier um ein komplettes Firmware-Paket, bestehend aus Gerätetreiber für alle Standard-Peripheriegeräte der XMC 32-Bit-Flash-Mikrocontroller-Familie. Das Paket enthält eine Sammlung von Routinen, Datenstrukturen und Makros sowie deren Beschreibungen und eine Reihe von Beispielen für jedes Peripheriegerät.
Die Firmware-Bibliothek ermöglicht im Anwenderprogramm die Verwendung jedes Gerätes ohne die speziellen Einzelheiten der Register und Bitkombinationen zu kennen. Es spart viel Zeit, die sonst bei der Codierung anhand des Datenblattes aufgewendet werden muss. Die XMC Peripherie Bibliothek umfasst 3 Abstraktionsebenen und beinhaltet:
Durch die im nächsten Abschnitt vorgestellte Entwicklungsumgebung werden die Bibliotheken für das CMSIS und die Peripherie-Treiber gleich mit installiert.
Das Tutorial macht nur dann wirklich Sinn, wenn man die vorgestellten Beispiele und Übungen auch nachvollziehen kann. Die Hardware gibt es preiswert im Netz, gern empfehle ich: