XMC2Go
Beim XMC2Go-Board handelt es sich um einen ARM Cortex M0-basierten Mikrocontroller XMC1100
(64 kB Flash und16 kB RAM) vom Hersteller Infineon.
Die Infineon Technologies
AG entstand als deutscher Halbleiterhersteller im Jahr 1999 durch Ausgliederung
des Halbleitergeschäfts der Firma Siemens AG und gehört heute zu den
weltweit größten Halbleiterherstellern.
XMC2Go
Dieses zündholzschachtelgroße Entwicklungsboard kann vor allem für Schüler und
Studierende als kostengünstiger Einstieg in die Cortex-basierte
Mikrocontrollerwelt geshen werden. Um das USB-Programmieren und Debugging zu ermöglichen ist auf dem Board ein weiterer
(größerer!) Controller XMC4200 integriert. Er stellt die serielle UART-Schnittstelle des XMC1100 als virtuellen COM Port zur Verfügung.
Die Hardware des XMC2Go ist übersichtlich und kann einfach auf einem Breadboard zu Bastelzwecken verdrahtet werden.
XMC2Go Board (Bildquelle: HK2023)
Das Anschalten an den Programmier-PC geschieht über ein USB-C- Anschlusskabel. Beim ersten Einstecken leuchtet die grüne LED und beide rote LEDs blinken abwechseln mit einer Frequenz von ca. 2 Hz. Für die Programmierung bietet sich die Infineon Entwicklungsumgebungen (DAVE, Modus-Toolbox) oder Microsoft VSCode an. Das Programmieren mit VSCode ist für Einsteiger einfacher zu handhaben, da mit Hilfe des Zusatzmoduls PlatformIO viele auf Arduino basierende Tools und Libraries vorliegen.
Weitere Informationen zum Board finden sich im
Infineon-Web und bei diversen Distributoren.
- Infineon
KIT_XMC_2GO_XMC1100_V1
- Infineon
StartGuide
- XMC-for-Arduino auf
GitHub
MS Visual Studio Code - Projekt anlegen
Zunächst wird VS-Code gestartet und Platform IO aktiviert (Quick Access - PIO Home - Open)
Innerhalb dieser Projektumgebung kann ein neues Projekt angelegt werden:
Das Projekt erhält einen aussagekräftigen Namen und das
Board wird gewählt.
Im Beispiel wurde nicht das vorgeschlagene Standardverzeichnis, sondern D:\Software.Etw\ProjekteMC\Infineon
eingestellt.
Die Entwicklungsumgebung wird eingerichtet und das Projekt
wird geladen. Der Screesnshot zeit die geöffneten Unterverzeichnisse unterhalb
des Projektordners. In platform.ini
ist das Board definiert.
Testprogramm coden
Das erste Testprogramm wird in der einzigen Quellcodedatei
main.cpp
notiert.
Aus der Infineon-Kurzbeschreibung
geht hervor, dass die Onboard-LEDs bereits mit digitalen IO-Ports fest
verdrahtet sind.
-
LED1: PortPin 1.1
-
LED2: PortPin 1.0
Mit diesen beiden Leuchtdioden soll ein kleines
Testprogramm geschrieben werden.
Der AUsscnitt zeigt das Einbinden der
Arduino-Bibliothek, das Setup des seriellen Terminals und die Initialisierung
der beiden Onboard-LED-Pins.
Im Hauptprogramm (loop) erfolgt das rhythmische
wechselseitige Ein- und Ausschalten der LEDs.
Programm compilieren und uploaden
Platform IO bietet innerhalb von VSCode kleine Schaltflächen zum Build und Upload. Im Terminal erfolgt eine Rückmeldung über Erfolg oder eventuelle Fehler.
Funktion testen
Die Programmfunktion wird durch Anzeige der LEDs und durch Ausgabe im Terminal
geprüft.
Ausblick
Später werden weitere Ein- und Ausgänge angeschaltet. Die
folgende Abbildung zeigt die auf dem XMC2Go verwendbaren Portpins.
Die
folgende Abbildung zeigt die Pinbelegung mit Funbktionsbezeichnungen,
physikalischen Pins und Arduino-Pinnummern.
Zu beachten ist weiterhin:
-
LED1 (P1.1) und LED2 (P1.0) sind exklusiv mit den physikalischen Pins 17/18 (ArduinoNr. 14/15) verbunden
-
Nur zwei Kommunikationsprotokolle können gleichzeitig benutzt werden, also z.B. SPI und UART oder I2C und UART.
-
Die OnBoard-Pins des UART (TX6/RX7) benutzen nicht den selben Kanal wie UART über USB
-
Wenn das Board mit dem 3,3 V-Pin versorgt wird, sollte das USB-Kabel auf dem XMC2Go-Board abgezogen werden.