# XMC4000

XMC4000 ist eine 32-bit-Mikrokontroller-Familie der Firma Infineon, welche erstmals im Frühjahr 2012 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 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 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.

## Anwendungen und Märkte

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.

## Technische Eigenschaften
### Prozessorkern

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.

### Speicher

Als Speicher verwendet diese Familie embedded Flash (je nach Derivat zwischen 128 KB und 2,5 MB) mit integrierter ECC-Hardware. Außerdem besitzt sie einen RAM, der je nach Unterfamilie zwischen 20 KB und 512 KB groß ist.

### Weitere Funktionen

* IEEE 1588 konforme Ethernet-Schnittstelle, MAC
* USB 2.0
* 12-Kanal DMA
* Ausstattung mit Timern und PWM, Delta-sigma Demodulator, Position Interface
* 4 × 12-bit Analog-Digital-Umsetzer mit bis zu 26 Kanälen, 2 × 12-bit Digital-Analog-Umsetzer
* 6 × Serielle Schnittstelle, jeweils als SPI, I2C, I2S, UART konfigurierbar
* 3 × CAN-Knoten
* Externes Businterface unterstützt SDRAM, SRAM, NOR-/NAND-Flash und memory-mapped IO devices (e.g. LCD)
* SD/MMC-Schnittstelle
* Touch Interface und LED-Matrix
* Akkugepufferte Echtzeituhr mit Kalender und zeitgestützter oder externer Aufweckfunktion
* Erweiterter Temperaturbereich bis 125 °C verfügbar

## Infineon Entwicklungstools
### XMC4000 Application Kit

Das XMC4000 Application Kit 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: Komponentenbasierte Programmierung und freie Entwicklungsumgebung

DAVE 3 (Digital Application Virtual Engineer) 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.

## Entwicklungstool-Partner

Folgende Entwicklungstool-Anbieter unterstützen die XMC4000 Familie:
* Compiler, Debugger, Flash Loader, Entwicklungsumgebungen
** Altium Tasking
** Atollic
** ARM Keil MDK
** Hitex
** IAR Systems
** iSYSTEM
** Lauterbach
** PLS
** Segger
** MicroConsult
* Betriebssysteme, Middleware, Stacks
** CMX
** Express Logic
** FreeRTOS
** HighTec
** Micrium
** SEVENSTAX
** THESYCON
** Wind River Diab Compiler