XMC4500

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Dieser Artikel nimmt am Artikelwettbewerb 2012/2013 teil.

Die Controller XMC4500 von Infineon basieren auf einem ARM Cortex M4 Kern und verfügt über eine große Auswahl an On-Chip Peripherie. Die Controller laufen entweder auf einem internen Systemtakt oder auf einer von einer PLL generierten Frequenz, normalerweise 120MHz. In diesem Artikel soll dieser Controllertyp mit Hilfe des "XMC4500 Relax Kit/ Lite Kit", welches beide Developmentboards von Infineon sind, vorgestellt werden. Auch die von Infineon dazu angebotene Entwicklungsumgebung DAVE3 wird kurz vorgestellt.

Technische Daten im Überblick

"Relax Kit" (oben) und "Relax Lite Kit" (unten)

Ein kurzer Überblick über die On-Chip-Peripherie mit den wichtigsten Merkmalen

  • 3.3 V Operating Voltage
  • 32-Bit-Architektur ARM Cortex M4 CPU
  • FPU
  • 120 MHz Systemtakt
  • 512 kB - 1024 kB Flashmemory, je nach Typ
    • Auf den "XMC4500 Relax (Lite) Kits" ist die Variante mit 1 MB Flash verbaut.
  • 128 kB oder 160 kB RAM
    • Auf den "XMC4500 Relax (Lite) Kits" ist die Variante mit 160 kB RAM verbaut.
  • Maximal 1 GB RAM über natives externes RAM-Interface adressierbar
  • Zwei Programmstacks
    • Verwendung umschaltbar, Verwendung eines OS einfacher.
  • JTAG
  • Interrupt-Level Controller mit 64 Leveln
  • Interne RTC
  • Ethernet MAC On-Chip
    • PHY nicht integriert, Anbindung über RMII-Interface
    • Der komplette Frame wird von der Hardware generiert
  • USB 2.0, sowohl als Host, als auch als Slave
  • 5 USIC: Universeller, serieller Interface-Kanal für SPI, I²C, UART, etc.
    • Einstellbare Framelänge von bis zu 64 Bit
    • Flexibles CRC-Modul, Prüfsummen können von der Hardware generiert werden
  • multiCAN On-Chip
    • 11-Bit oder 29-Bit Objekt Indentifier
    • maximal 64 Objekt Indentifier definierbar
    • 3 eigenständige CAN-Module
  • SD/MMC-Card Interface mit internem 512-Byte-FIFO
    • 4-Bit-Interface
  • Bis zu 12 DMA-Kanäle
  • 4 12-Bit-8-Kanal-ADCs
    • OVP durch Komperatoren an den Eingängen
    • Programmierbarer Gain
    • Verbindung mit dem DMA möglich
  • 12-Bit DAC mit FIFO
  • Delta-Sigma-Demodulator
  • 2 Timer-Module mit jeweils 4 Modulen mit jeweils 4 Timern
    • Intsgesamt 32 Timer
    • Diverse verschiedene Modi, unter anderem Compare-und-Capture-Mode, Kopplung an externe Signale möglich
    • Bis zu 64 Bit PWM (HRPWM)
    • Eigener Prescaler für jeden Kanal
    • Deadtime-Modus für Brückensteuerungen
  • POSIF: Position Interface Unit für Drehencoder
    • Kopplung an Timer-Module möglich
  • GPIOs mit anpassbarem Schaltverhalten, bzw. Flankencharakteristik
    • Push-pull oder Open Collector
    • Pull-up- oder Pull-down-Widerstand zuschaltbar
    • Tri-State-Modus

Dies sind die wesentlichen Merkmale des XMC4500-Controllertyps, weiter sollen diese hier nicht aufgelistet werden, da allein das für einen ausführlichen Artikel reicht. Das Datenblatt hat nicht ohne Grund über 2000 Seiten. Zudem gibt es eine zusätzliche Dokumentation über die allgemeinen Eigenschaften der XMC4500-Controllerserie und die unterschiedlichen Varianten.

Das XMC4500 Relax Kit/Relax Lite Kit

Allgemeines

Die wesentlichen Elemtente auf dem XMC4500 "Relax (Lite) Kit"

Beide Boards verfügen über zwei rote Low-Current LEDs, zwei Taster und einen RESET-Button. Zudem kann über Micro-USB eine Verbindung zum PC aufgebaut werden, die dafür notwendige Hardware ist auf beiden Boards vorhanden. Praktischerweise kann das jeweilige Board über den USB-Port mit Strom versorgt werden, dafür befindet sich auf dem Abschnitt des Programmers/Debuggers ein LDO, der die 3.3V für die Controller bereitstellt. Der sich auf der linken Seite befindliche Debugger/Programmer kann, wenn wenig Platz zur Verfügung steht, auch von der restlichen Platine getrennt werden, dafür ist eine Sollbruchstelle vorgesehen. Über einen 2*4 poligen Header kann die Verbindung zum Programmieren oder Debuggen wiederhergestellt werden.

Das Abtrennen empfiehlt sich jedoch nicht, da sonst auch der LDO mit abgetrennt wird und das Board dann extern mit 3.3V versorgt werden muss.

Alle GPIOs sind auf zwei zweireihige Stift-oder Buchsenleisten herrausgeführt, die jedoch selbst bestückt werden müssen. An diesen Headern sind auch die analogen Eingänge zu finden, genau so wie AREF für den DAC/ADC.

Bezugsquellen und Kosten

Die beiden Developmentboards sind leider schwer erhältlich, nur wenige der großen Distributoren haben welche auf Lager. Folgende Distributoren haben die Boads zu den normalen Preisen von etwa 10€+MwSt. für das "Relax Lite Kit" und etwa 30€+MwSt. für das "Relax Kit" bei diesen Distributoren:

Die Boards werden beide vom Hersteller Hitex angeboten. Hitex:http://www.ehitex.de/cortex-development/xmc4000?sCoreId=65de769a6c30c181ab899fcf7bcfcd3c

Hat man die Möglichkeit, als Firma und/oder mit Gewerbeschein zu bestellen, so kann man bei dem von Infieon vorgeschlagenen Distributor hitex bestellen:

Aus urheberrechtlichen Gründen können die Schaltpläne und das Layout hier nur verlinkt werden:

Unterschiede zwischen dem "Relax Kit" und dem "Relax Lite Kit"

Die Unterschiede zwischen dem "Relax Kit" und dem "Relax Lite Kit" kurz zusammen gefasst:

Unterschiede zwischen dem "Relax Kit" und dem "Relax Lite Kit"
Hardware "Relax Kit" "Relax Lite Kit" Nachbestückbar?
Ethernet Ja Nein Schwer bis unmöglich, da der Ethernetcontroller im QFN24 Gehäuse verbaut ist.
Micro-SD Ja Nein Gut möglich, jedoch müssen Bauteile in Baugröße 0603 und 0402 verlötet werden.
RTC-Quarz Ja Nein Der Quarz ist leicht zu verlöten, es müssen jedoch zwei 0402 Kondensatoren verlötet werden.
32-Mbit SPI-Flash Ja Nein Der Flash selber ist bei Farnell erhältlich und ist leicht zu verlöten, da SOIC8 Gehäuse, jedoch sind auch 0402 und 0603 Bauteile zu verlöten.

Nachbestückung

Wenn man gerne das native SD-Card Interface oder die RTC nutzen will, aber für das Ethernet überhaupt keine Verwendung hat, so sind mehr als 30€ für ein vollbestücktes "Relax Kit" ziemlich viel, da die Bauteile für das was verwenden will nur etwa 5€ kosten. Selbiges gilt für den 32Mbit SPI-Flash. Mit etwas Lötgeschick ist es ohne weiteres möglich ein "Relax Lite Kit" aufzurüsten. Die dafür notwendigen Bauteile beschränken sich im wesentlichen auf Standardbauteile:

  • micro-SD Card:
    Der alternative SD-Card Halter und der SPI-Flash sind nachbestückt worden.
    • microSD Halter: Der originale Molex-Halter, welcher auf dem Board vorgesehen ist, ist entweder nicht erhältlich oder kostet 6€+MwSt. Ein anderer Halter von Digikey passt fast genau so gut und kostet weniger als die Hälfte: Alternativer Slot, siehe Bild.
    • Hühnerfutter: Des weiteren werden für die SD-Card noch 5 0402 10K Widerstände benötigt. Diese liegen alle sehr nah nebeneinander und sind deshalb etwas frickelig zu löten.
  • RTC-Quarz:
    • Der Quarz ist bei Digikey erhältlich, allerdings nicht immer auf Lager: Quarz
    • Die üblichen Anschwingkondensatoren sind auch hier vorhanden, zwei 0402 15pF Kondensatoren.
  • SPI-Flash:
    • Der Flash ist unter anderem bei Farnell erhältlich:SPI-Flash. Dabei handelt es sich um einen NOR-Flash von Spansion "S25FL032P0XMFI011". Datenblatt
    • Dazu kommt das übliche Hühnerfutter, in diesem Fall ein 0402 100nF Kondensator und 3 0402 10K Widerstände.

Diese drei Funktionsgruppen sind mit wenig Aufwand nachträglich bestückbar, was für die Ethernet-Baugruppe leider nicht gilt. Verfügt man über professionels Equipment und lässt sich von Würth eine Ethernetbuchse schenken, so ist eine Nachbestückung möglich. Der Vollständigkeit halber wird diese Baugruppe trotzdem behandelt.

  • Bauteile:
    Gehäusevergleich ziwschen dem QFN24 Gehäuse des Ethernetkontrollers und einem normalen 0402 Gehäuse
    • Ethernetcontroller: KSZ8031RNL von Mircel, erhältlich bei allen großen Distributoren, aber sehr schwer zu verlöten, da 0.5mm Pin-Pitch (QFN24).
    • Ethernetbuchse: Würth 7499010211A, nicht käuflich oder nur sehr schwer erwerbbar. Jedoch scheint Würth auf Sampleanfragen sehr kulant zu sein, sofern man ehrlich schreibt, wofür man die Bauteile benötigt. Bei Digikey kostet die Buchse knapp acht Euro. Alternativ kann man auch eine kompatible Nonamebuchse ohne LEDs verwenden, beispielsweise eine fuer 46 cent.
    • Quarz: 25MHz Quarz, es passt zum Beispiel der Quarz von Reichelt
    • Widerstände:
      • 2* 0603 120 Ohm (R201,R207)
      • 2* 0402 1K (R200, R203)
      • 1* 0603 6,49K (RBIAS=R204)
    • Kondensatoren:
      • 5 0402 100nF (C201,C203,C205,C208,C209)
      • 2 0402 22pF (C206,C207)
      • 3 0805 22µF/10V (C200,C202,C204)
      • 1 0805 10µF/10V (C210)
    • Sonstiges:
      • 2 BLM18PG600 (L200,L201)
      • 2 BAT54-02V (D200,D201)

An die Standardbauteile werden keine speziellen Anforderungen gestellt, lediglich R204 sollte eine möglichst kleine Toleranz haben (<=1%).

DAVE3

Allgemeines

DAVE3 ist die von Infineon bereitgestellte IDE unter anderem für die XMC4500 Controller und basiert auf Eclipse. Neben den Standardfunktionen bietet DAVE3 auch die Verwendung von so genannten Apps an. Grob gesagt handelt sich dabei um visuell konfigurierbare Codegeneratoren, mit denen schnell und effizient die Hardware des XMC4500 konfiguriert werden kann.
Die IDE kann auf der Seite von Infineon heruntergeladen werden, zudem gibt es ein Video von Infineon über die Installation, die Erklärungen fallen jedoch recht dürftig aus. Die Größe des Installerpaktes beträgt in etwa 246MB.

DAVE Apps

Die UART02-App, alle Einstellungen können in diesem Fenster gemacht werden.

Die sogenannten Apps sind ein wesentliches Merkmal der DAVE 3 IDE. Die Apps ermöglichen es dem Bediener, Teile der Hardware oder komplette Funktionen graphisch und nach Parametern zu konfigurieren. Der dazu gehörige Code wird dann automatisch generiert, zudem erfolgt eine Prüfung, ob mehr Hardwaremodule beansprucht werden, als wirklich vorhanden sind. Der wesentliche Vorteil dieser Programmierung ist, dass sie sehr schnell und effizient ist, da die Apps im wesentlichen gut dokumentiert und das Konfigurationsmenü übersichtlich und intuitiv ist.
Eigene Apps können anscheinend nicht erstellt werden. Dies ist aber auch nicht unbedingt notwendig, da das Angebot von Apps sowohl im Bereich der Hardwarekonfiguration, zum Beispiel für die GPIOs, als auch im Bereich von fertigen Softwarelösungen, zum Beispiel für einen Webserver oder einen BLDC-Motorcontroller, gut ausgebaut ist. Auf Beispiele wird in diesem Artikel verzichtet, da das Quickstart-Tutorial von Infineon bereits alle Fragen klärt und Ansätze bietet.
Ein Quick-Start-Tutorial für die Verwendung gibt es von Infineon hier.

Programmieren und Debuggen des "XMC4500 Relax (Lite) Kit"

Der On-Board Programmer und Debugger bietet für den Schnellstart und für die ersten Anwendungen alle notwendigen Funktionen, wie das Setzen von Breakpoints und das Beobachten der Variablen und Register während das Programm auf dem Controller ausgeführt wird. Auch bietet der Debugger alle normalen JTAG-Funktionen, wie das zeilenweise Ausführen des Codes oder den Code bis zu einer bestimmten Stelle auszuführen und dann zu stoppen, etc..
Programmiert wird der Controller über JTAG.

Nachteile des On-Board Programmers und Debuggers

Die Upload-Rate zum Controller ist gering, was bei kleineren Programmen noch nicht so tragisch ist, aber bei größeren Quellcodes wird dies schon zu einer suboptimalen Situation. Hier empfiehlt sich dann der Kauf eines besseren JTAG-Programmers/Debuggers. Da die DAVE 3 IDE den J-Link Treiber für die Programmierung verwendet, sollte eine große Bandbreite an möglichen Geräten zur Verfügung stehen. Der Debugger muss dann nur im Konfigurationsmenü passend eingestellt werden.
Für den On-Board-Debugger wird das hier ab Minute 5.50 beschrieben. Ähnlich wird dies bei anderen Geräten ablaufen.

Verschiedene Schaltverhalten

In diesem Abschnitt sollen die verschiedenen Flanken und Treiber noch einmal thematisiert werden. Dafür wurden die jeweiligen Flanken mittels eines Oszilloskopes vermessen. Es wurde eine Single-Shot Messung durchgeführt.

Messaufbau
  • PORT1.3 direkt ans Oszilloskop angeschlossen
    • Pad Klasse A2
  • Single Shot

Die Ergebnisse:

Da die Bilder nicht optimal sind, habe ich die dazu gehörigen .WFM-Datein mit hochgeladen: Datei:Schaltverhalten Messungen.zip

Erstellt wurden die Bilder mit WFM Viewer

Weblinks und Quellenverzeichnis

Es gibt ein Forum von Infineon, wo sowohl die IDEs von Infineon diskutiert werden, als auch die Controller:

Alle Bilder in diese, Artikel sind selbst gemacht und können beliebig für andere Dokumentationen oder Projektbeschreibungen genutzt werden.

Zugehörige Artikel oder Threads