XMC4500: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
KKeine Bearbeitungszusammenfassung
 
(17 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Wettbewerb Header}}
{{Wettbewerb Header}}
Die Controller XMC4500 von Infineon basieren auf einem [http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php ARM Cortex M4] Kern und verfügt über eine große Auswahl an On-Chip Perepherie.  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.  
Die Controller XMC4500 von Infineon basieren auf einem [http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php 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 =
= Technische Daten im Überblick =
[[Bild:Relaxed (Lite) Kit.JPG|thumb|rechts|500px|"Relax Kit" (oben) und "Relax Lite Kit" (unten)]]
[[Bild:Relaxed (Lite) Kit.JPG|thumb|rechts|500px|"Relax Kit" (oben) und "Relax Lite Kit" (unten)]]
Ein kurzer Überblick über die On-Chip Pherepherie mit den wichtigsten Merkmalen
Ein kurzer Überblick über die On-Chip-Peripherie mit den wichtigsten Merkmalen
*3.3V Operating Voltage  
*3.3 V Operating Voltage  
*32-Bit Architektur ARM Cortex M4 CPU
*32-Bit-Architektur ARM Cortex M4 CPU
*FPU
*FPU
*120MHz Systemtakt
*120 MHz Systemtakt
*512kB-1024kB Flashmemory, je nach Typ
*512 kB - 1024 kB Flashmemory, je nach Typ
**Auf den "XMC4500 Relax (Lite) Kits" ist die Variante mit 1MB Flash verbaut.
**Auf den "XMC4500 Relax (Lite) Kits" ist die Variante mit 1 MB Flash verbaut.
*128kB oder 160kB RAM
*128 kB oder 160 kB RAM
**Auf den "XMC4500 Relax (Lite) Kits" ist die Variante mit 160KB RAM verbaut.
**Auf den "XMC4500 Relax (Lite) Kits" ist die Variante mit 160 kB RAM verbaut.
*Maximal 1GB RAM über natives externes RAM-Interface adressierbar  
*Maximal 1 GB RAM über natives externes RAM-Interface adressierbar  
*Zwei Programmstacks  
*Zwei Programmstacks  
**Verwendung umschaltbar, Verwendung eines OS einfacher.
**Verwendung umschaltbar, Verwendung eines OS einfacher.
Zeile 21: Zeile 21:
**PHY nicht integriert, Anbindung über RMII-Interface
**PHY nicht integriert, Anbindung über RMII-Interface
**Der komplette Frame wird von der Hardware generiert
**Der komplette Frame wird von der Hardware generiert
*USB2.0, sowohl als Host, als auch als Slave
*USB 2.0, sowohl als Host, als auch als Slave
*5 USIC: Universeller Serieller Interface Kanal für SPI, I²C,UART, etc.
*5 USIC: Universeller, serieller Interface-Kanal für SPI, I²C, UART, etc.
**Einstellbare Framelänge von bis zu 64-Bit
**Einstellbare Framelänge von bis zu 64 Bit
**Flexibles CRC-Modul, Prüfsummen können von der Hardware generiert werden
**Flexibles CRC-Modul, Prüfsummen können von der Hardware generiert werden
*multiCAN On-Chip
*multiCAN On-Chip
**11-Bit oder 29-Bit Objekt Indentifier  
**11-Bit oder 29-Bit Objekt Indentifier  
**maximal 64 Objekt Indentifier definierbar
**maximal 64 Objekt Indentifier definierbar
**3 eigenständige CAN Module  
**3 eigenständige CAN-Module  
*SD/MMC-Card Interface mit internem 512Byte FIFO
*SD/MMC-Card Interface mit internem 512-Byte-FIFO
**4-Bit Interface
**4-Bit-Interface
*Bis zu 12 DMA Kanäle
*Bis zu 12 DMA-Kanäle
*4 12-Bit 8 Kanal ADCs   
*4 12-Bit-8-Kanal-ADCs   
**OVP durch Komperatoren an den Eingängen
**OVP durch Komperatoren an den Eingängen
**Programmierbarer Gain
**Programmierbarer Gain
**Verbindung mit dem DMA möglich  
**Verbindung mit dem DMA möglich  
*12-Bit DAC mit FIFO
*12-Bit DAC mit FIFO
*Delta-Sigma Demodulator
*Delta-Sigma-Demodulator
*2 Timer-Module mit jeweils 4 Modulen mit jeweils 4 Timern  
*2 Timer-Module mit jeweils 4 Modulen mit jeweils 4 Timern  
**Intsgesamt 32 Timer
**Intsgesamt 32 Timer
**Diverse verschiedene Modi, unter anderem Compare-und Capture Mode, kopplung an externe Signale möglich
**Diverse verschiedene Modi, unter anderem Compare-und-Capture-Mode, Kopplung an externe Signale möglich
**Bis zu 64-Bit PWM (HRPWM)
**Bis zu 64 Bit PWM (HRPWM)
**Eigener Prescaller für jeden Kanal  
**Eigener Prescaler für jeden Kanal  
**Deadtime Modus für Brückensteuerungen  
**Deadtime-Modus für Brückensteuerungen  
*POSIF: Position Interface Unit für Drehencoder
*POSIF: Position Interface Unit für Drehencoder
**Kopplung an Timer-Module möglich
**Kopplung an Timer-Module möglich
*GPIOs mit anpassbarem Schaltverhalten, bzw Flankencharakteristik
*GPIOs mit anpassbarem Schaltverhalten, bzw. Flankencharakteristik
**Push-Pull oder Open Collector
**Push-pull oder Open Collector
**Pull Up oder Pull Down Widerstand zuschaltbar
**Pull-up- oder Pull-down-Widerstand zuschaltbar
**Tri-State Modus
**Tri-State-Modus
Dies sind die wesentlichen Merkmale des XMC4500 Controllertypes, weiter sollen diese hier nicht aufgelistet werden, da allein das für einen ausführlichen Artikel reicht. Das [http://www.infineon.com/dgdl/xmc4500_Reference_Manual_v1+1_2012_07.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a30433580b3710135a5f8b7bc6d13 Datenblatt] hat nicht ohne Grund über 2000 Seiten. Zudem gibt es eine zusätzliche [http://www.infineon.com/dgdl/xmc4500_ds_v1+0_2013_01.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a304335b504400135bdca7ed86742 Dokumentation] über die allgemeinen Eigenschaften der XMC4500 Controllerserie und die unterschiedlichen Varianten.
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 [http://www.infineon.com/dgdl/xmc4500_Reference_Manual_v1+1_2012_07.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a30433580b3710135a5f8b7bc6d13 Datenblatt] hat nicht ohne Grund über 2000 Seiten. Zudem gibt es eine zusätzliche [http://www.infineon.com/dgdl/xmc4500_ds_v1+0_2013_01.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a304335b504400135bdca7ed86742 Dokumentation] über die allgemeinen Eigenschaften der XMC4500-Controllerserie und die unterschiedlichen Varianten.


= Das XMC4500 Relax Kit/Relax Lite Kit =
= Das XMC4500 Relax Kit/Relax Lite Kit =
Zeile 56: Zeile 56:
[[Bild:Wichtige Elemente XMC4500.JPG|thumb|rechts|250px|Die wesentlichen Elemtente auf dem XMC4500 "Relax (Lite) Kit"]]
[[Bild:Wichtige Elemente XMC4500.JPG|thumb|rechts|250px|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.  
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*5 poligen Header kann die Verbindung zum Programmieren oder Debuggen wiederhergestellt werden.  
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.   
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.   
Zeile 63: Zeile 63:


==Bezugsquellen und Kosten==
==Bezugsquellen und Kosten==
Die beiden Developmentboadrs 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 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:
*Mouser: [http://de.mouser.com/ProductDetail/Infineon-Technologies/KIT_XMC45_RELAX_V1/?qs=sGAEpiMZZMsPA1KxyASVZLKMJHcHfbVb "Relax Kit"] [http://de.mouser.com/ProductDetail/Infineon-Technologies/KIT_XMC45_RELAX_LITE_V1/?qs=sGAEpiMZZMsPA1KxyASVZDJJB6HCuCyi "Relax Lite Kit"] ''Stand 3/2013''
*Mouser: [http://de.mouser.com/ProductDetail/Infineon-Technologies/KIT_XMC45_RELAX_V1/?qs=sGAEpiMZZMsPA1KxyASVZLKMJHcHfbVb "Relax Kit"] [http://de.mouser.com/ProductDetail/Infineon-Technologies/KIT_XMC45_RELAX_LITE_V1/?qs=sGAEpiMZZMsPA1KxyASVZDJJB6HCuCyi "Relax Lite Kit"] ''Stand 3/2013''
*myAVR: [http://shop.myavr.de/ARM-Produktlinie/XMC4500%20Relax%20Lite%20Kit.htm?sp=article.sp.php&artID=200120 "Relax Lite Kit"]  
*myAVR: [http://shop.myavr.de/ARM-Produktlinie/XMC4500%20Relax%20Lite%20Kit.htm?sp=article.sp.php&artID=200120 "Relax Lite Kit"]
 
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: <br>
Hat man die Möglichkeit, als Firma und/oder mit Gewerbeschein zu bestellen, so kann man bei dem von Infieon vorgeschlagenen Distributor hitex bestellen: <br>
Zeile 107: Zeile 110:
*Bauteile:[[Bild:Gehäusevergleich QFN24 und 0402.JPG|thumb|400px|rechts| Gehäusevergleich ziwschen dem QFN24 Gehäuse des Ethernetkontrollers und einem normalen 0402 Gehäuse]]  
*Bauteile:[[Bild:Gehäusevergleich QFN24 und 0402.JPG|thumb|400px|rechts| Gehäusevergleich ziwschen dem QFN24 Gehäuse des Ethernetkontrollers und einem normalen 0402 Gehäuse]]  
**Ethernetcontroller: [http://www.micrel.com/_PDF/Ethernet/datasheets/ksz8021rnl_8031rnl.pdf KSZ8031RNL] von Mircel, erhältlich bei allen großen Distributoren, aber sehr schwer zu verlöten, da 0.5mm Pin-Pitch (QFN24).
**Ethernetcontroller: [http://www.micrel.com/_PDF/Ethernet/datasheets/ksz8021rnl_8031rnl.pdf KSZ8031RNL] von Mircel, erhältlich bei allen großen Distributoren, aber sehr schwer zu verlöten, da 0.5mm Pin-Pitch (QFN24).
**Ethernetbuchse: [http://katalog.we-online.de/pbs/datasheet/7499010211A.pdf Würth 7499010211A], nicht käuflich oder nur sehr schwer erwerbbar. Jedoch scheint Würth auf Sampleanfragen sehr kullant zu sein, sofern man ehrlich schreibt, wofür man die Bauteile benötigt.
**Ethernetbuchse: [http://katalog.we-online.de/pbs/datasheet/7499010211A.pdf 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 [http://www.digikey.de/product-search/de?vendor=0&keywords=7499010211A knapp acht Euro]. Alternativ kann man auch eine kompatible Nonamebuchse ohne LEDs verwenden, beispielsweise [http://www.digikey.de/product-detail/de/54602-908LF/609-1046-ND/1001360 eine fuer 46 cent].
**Quarz: 25MHz Quarz, es passt zum Beispiel der [http://www.reichelt.de/index.html?ACTION=3;ARTICLE=101043;SEARCH=25,000000-MT Quarz von Reichelt]
**Quarz: 25MHz Quarz, es passt zum Beispiel der [http://www.reichelt.de/index.html?ACTION=3;ARTICLE=101043;SEARCH=25,000000-MT Quarz von Reichelt]
**Widerstände:  
**Widerstände:  
Zeile 126: Zeile 129:
== Allgemeines ==
== Allgemeines ==
[http://www.infineon.com/cms/en/product/microcontrollers/32-bit-xmc4000-industrial-microcontrollers-arm%EF%BF%BDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD-cortex!22-m4/xmc4000-development-tools,-software-and-kits/dave!22-3-%2013-auto-code-generation-and-free-tools/channel.html?channel=db3a30433580b3710135afc117a9563f 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.<br>
[http://www.infineon.com/cms/en/product/microcontrollers/32-bit-xmc4000-industrial-microcontrollers-arm%EF%BF%BDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD-cortex!22-m4/xmc4000-development-tools,-software-and-kits/dave!22-3-%2013-auto-code-generation-and-free-tools/channel.html?channel=db3a30433580b3710135afc117a9563f 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.<br>
Die IDE kann auf der Seite von Infineon [http://www.infineon.com/cms/en/product/promopages/aim-mc/DAVE_3_Download.html herruntergeladen] werden, zudem gibt es ein [http://www.movingimage24.com/video_369288?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 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.
Die IDE kann auf der Seite von Infineon [http://www.infineon.com/cms/en/product/promopages/aim-mc/DAVE_3_Download.html heruntergeladen] werden, zudem gibt es ein [http://www.movingimage24.com/video_369288?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 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==
== DAVE Apps==
[[Bild:DAVE-APP Screenshot.JPG|thumb|rechts|200px|Die UART02-App, alle Einstellungen können in diesem Fenster gemacht werden.]]
[[Bild:DAVE-APP Screenshot.JPG|thumb|rechts|200px|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öglchen es dem Bediener, Teile der Hardware oder komplette Funktionen graphisch und nach Parametern zu konfgurieren. Der dazu gehörige Code wird dann automatich 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. <br>
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. <br>
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.
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.
Auf Beispiele wird in diesem Artikel verzichtet, da das Quickstart-Tutorial von Infineon bereits alle Fragen klärt und Ansätze bietet.
Zeile 167: Zeile 170:
*[http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php Dokumentation über den Cortex M4 Kern]
*[http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php Dokumentation über den Cortex M4 Kern]
*[http://www.infineon.com/xmc-dev Seite von Infineon über das XMC4500 "Relax (Lite) Kit"]
*[http://www.infineon.com/xmc-dev Seite von Infineon über das XMC4500 "Relax (Lite) Kit"]
*[https://github.com/furtnerthomas/Linux-XMC-Development Eclipse IDE als Entwicklungsumgebung für XMC Controller unter Linux]
*Videos von Infineon über das XMC4500 "Relax (Lite) Kit"  
*Videos von Infineon über das XMC4500 "Relax (Lite) Kit"  
**[http://www.movingimage24.com/video_369286?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 Beschreibung des Webservers]
**[http://www.movingimage24.com/video_369286?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 Beschreibung des Webservers]
**[http://www.movingimage24.com/video_369288?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 Getting startet mit dem XMC4500 "Relax (Lite) Kit"]  
**[http://www.movingimage24.com/video_369288?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 Getting startet mit dem XMC4500 "Relax (Lite) Kit"]  
**[http://www.movingimage24.com/video_369290?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 Noch mehr zum Webserver].
**[http://www.movingimage24.com/video_369290?width=640&height=395&player=35&scwm=2&chapter=0&overlays=1&cbarPlayPauseFlag=1&cbarTrackFlag=1&cbarTimeTotalFlag=1&cbarTimeDurationFlag=1&cbarvolumeBarFlag=1&cbarFullScreenFlag=1&qs=1&adbtn=1&adbtn1=1&adbtn5=1&bg=c1d2e2&fg=336699&ctcb1=336699&ctcb2=e10030&ctcb3=7c7c7c&ctcb4=c1d2e2&ctcb7=dae5e3&ctab1=000000&ctab2=ffffff&ctab3=abbbd0&wvm=3&start=0&volume=100&loadtime=0&wmode=transparent&fupdate=1&cwm=0&ctp=0&stillimg=0&plang=default&qd=3 Noch mehr zum Webserver].
*[http://www.myXMC.de XMC Tutorial]
*[https://code.google.com/p/arduino-to-xmc/ Arduino Wiring Language porting to XMC microcontrollers]
Es gibt ein Forum von Infineon, wo sowohl die IDEs von Infineon diskutiert werden, als auch die Controller:  
Es gibt ein Forum von Infineon, wo sowohl die IDEs von Infineon diskutiert werden, als auch die Controller:  
*[http://www.infineonforums.com/ Forum]
*[http://www.infineonforums.com/ Forum]
<b> Alle Bilder in diese, Artikel sind selbst gemacht und können beliebig für andere Dokumentationen oder Projektbeschreibungen genutzt werden.</b>
<b> Alle Bilder in diese, Artikel sind selbst gemacht und können beliebig für andere Dokumentationen oder Projektbeschreibungen genutzt werden.</b>
==Zugehörige Artikel oder Treads ==
 
==Zugehörige Artikel oder Threads ==
*[[XMCxxxx]]
*[[XMCxxxx]]
*[[Einstieg in die ARM Entwicklung]]
*[[Einstieg in die ARM Entwicklung]]
Zeile 180: Zeile 188:


[[Kategorie:ARM]]
[[Kategorie:ARM]]
[[Kategorie:Infineon XMC]]

Aktuelle Version vom 27. März 2018, 08:22 Uhr

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