XMC4000 ist eine 32-bit-Mikrokontroller-Familie der Firma Infineon, welche erstmals im Frühjahr 2012[1][2] vorgestellt wurde. Sie basiert auf einem Cortex-M4-Prozessor von ARM. „XMC“ steht für „Cross-Market Microcontroller“ und bedeutet, dass auf Grund der Kompatibilität und Konfigurationsmöglichkeiten diese Familie verschiedene Bereiche in Industrieapplikationen abdecken kann. Als Rechenkern (Core) verwendet diese Mikrokontrollerfamilie den Cortex-M4-Prozessor[3] mit DSP-Funktion. Die Familie soll drei wesentliche Trends in der Industrie unterstützen: eine verbesserte Energieeffizienz, die Unterstützung einer Vielzahl von Kommunikationsstandards und eine Minimierung der Software-Komplexität bei der Entwicklung. Parallel zum XMC4000 veröffentlichte der Hersteller eine Weiterentwicklung des Software Tools Dave3[4] mit so genannten Dave Apps, welche die Programmierung vereinfachen soll, indem ähnlich wie bei FPGA-Tools je nach Anforderung applikationsorientierte Software-Komponenten in ein Projekt eingefügt, konfiguriert und verbunden werden können. Beispiele für Zielanwendungen im Industrie und Multimarktbereich sind Antriebe, Wechselrichter und die Fertigungs- und Gebäude-Automatisierung. Die XMC4000 Familie wird in Unterfamilien mit verschiedenen Leistungsbereichen untergliedert.
Die XMC4000-Familie wurde von Infineon speziell für den Industriebereich entwickelt und zwischen den 16-Bit- und 32-Bit-MCUs eingeordnet. Vorgesehen sind Einsatzgebiete wie Logistik, Transport, Erneuerbare Energien, Gebäudesteuerung und Automatisierung. Besonderes Augenmerk richtete sich auf die Energieeffizienz um z. B. bei der Steuerung von Motoren, Wechselrichtern (Solar Inverters), Schaltnetzteilen, I/O-Geräten usw. den Energieverbrauch erheblich zu senken, ohne damit die Leistungsfähigkeit zu belasten. Als weiteres Ziel sollten Einsparungen durch Vereinfachung ermöglicht werden. Wurden zuvor Zwei-Chip-Lösungen z. B. mit einem DSP und einem FPGA eingesetzt, können die Timer-Einheiten und hochauflösende PWM des XMC4000 diese zusätzlichen Bauelemente in den meisten Fällen ersetzen.[5]
Die XMC4000-Familie nutzt einen Arm Cortex-M4-Prozessorkern inklusive von DSP-Erweiterungen und einer Floating Point Unit (FPU) in einem Frequenzbereich von 80 bis 180 MHz.
Als Speicher verwendet diese Familie embedded Flash (je nach Derivat zwischen 128 KB und 2,5 MB[2]) mit integrierter ECC-Hardware. Außerdem besitzt sie einen RAM, der je nach Unterfamilie zwischen 20 KB und 512 KB groß ist.[2]
Das XMC4000 Application Kit[6] ist ein modular erweiterbares Application Board, bestehend aus einem CPU Board in der Form eines Hexagons im Mittelpunkt und drei einzelnen Satelliten, den so genannten Extension Boards. Auf Grund dieser Bauweise kann das Kit funktional auf bestimmte Zielapplikationen erweitert und angepasst werden. Zu den drei Satelliten zählen das Automation I/O Kit, ein Ethernet/CAN/RS485 Interface Kit und ein Standard Human Interface Kit. Das Human Interface Board auch (HMI) hat neben dem OLED Display plus Audio auch eine Tast- und SD/MMC-Funktion. Das COM Board ermöglicht es Entwicklern, eine Art Fernbedienung über Ethernet zu realisieren. Dieses Board unterstützt auch MultiCAN- und RS485-Schnittstellen. Zusätzlich zu diesen drei Satelliten können Entwickler auch eigene Boards verbinden.
DAVE 3 (Digital Application Virtual Engineer)[7] ist eine auf Eclipse basierende Softwareplattform, die zur Verringerung des Softwareentwicklungsaufwands und der dafür benötigten Entwicklungszeit entwickelt wurde. DAVE3 beinhaltet einen GNU-Compiler, einen Debugger und ein Visualisierungs-Dienstprogramm zu anschaulichen Darstellung von Daten. Andere übliche Compiler und Debugger können der Entwicklungsumgebung hinzugefügt werden. DAVE unterstützt zudem die automatische Codegenerierung. Alternativ sind die Entwickler in der Lage, ihre eigenen Anwendungen zu integrieren. Apps können leicht konfiguriert und mit Hilfe der grafischen Benutzeroberfläche an die unterschiedlichsten Anwendungen angepasst werden.
Folgende Entwicklungstool-Anbieter unterstützen die XMC4000 Familie: