Forum: Mikrocontroller und Digitale Elektronik XMC 2go programmieren.


von Jan R. (Gast)


Lesenswert?

Habe gerade ne mail bekommen, dass ich ein xmc 2go gewonnen habe habe 
mir dann gleich mal ein minitutorial angeschaut,
http://www.myxmc.de/tutorial/doku.php?id=hallo_c
und festgestellt, dass sich selbst die addressierung zu den AVRs 
unterscheidet.

1. Warum muss ich bei den xmc Controllern immmer ein ganzes Byte nehmen
um einen Pin zu adressieren. (ein pin entspricht so wie ich es sehe 
einem Ausgang also einem Bit) Sprich ein 32 Bit Register für eine 4Bit 
adressierung nehmen muss..

2. Welcher programmierumgebung kann ich dazu verweden, welche Sprache 
spricht die (C wie in dem beispiel?) Kann ich den gcc compiler nehmen?

weis da schon jemand was, bzw. hat sich von den gewinneren schon jemand 
befasst, habe noch keine xmcs programmiert..

von Mirco C. (Firma: s@Td) (mcontroller)


Lesenswert?

Wenn du das IOCR meinst stellst du mit einem Byte die Funktionsweise 
eines Pins ein. Gibt dort nicht mehr nur Input oder Output sondern auch 
andere Einstellmöglichkeiten, weswegen das ConfigRegister größer 
ausfällt.

Beim OMR wird die Modifikationsart in 2 Bits angegeben. Für die 16 Pins 
brauchst du deshalb ein 32 Bit Register.

Beim OUT und IN Register sollte alles "normal" funktionieren wie man es 
erwarten würde.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Jan R. schrieb:
> Welcher programmierumgebung kann ich dazu verweden, welche Sprache
> spricht die (C wie in dem beispiel?) Kann ich den gcc compiler nehmen?

Im Artikel Infineon XMC 2Go steht:

> Den einfachsten Einstieg bietet die Entwicklungsumgebung DAVE. DAVE
> basiert auf Eclipse CDT, und enthält neben dem GNU C Compiler (GCC)
> die für das Flashen und Debuggen des Mikrocontrollers nötigen Tools.
> Grundsätzlich lässt sich allerdings auch jede andere Entwicklungs-
> umgebung (bzw. jeder Compiler verwenden), die Code für Cortex M0
> erzeugen kann.

Ich hab auch gewonnen, aber noch nicht angefangen.

von Jan R. (Gast)


Lesenswert?

gibt es für dieses DAVE eine Anleitung um reinzukommen?
und für den xmc ein Datenblatt?

http://files.iccmedia.com/2013/arm-conference/pdf/ARM-Con-KleinerSaal-09-Infineon.pdf

Das ist ja Objektorientiert....

was heißt io0004 oder so ist das dan das pin 4 im ersten register?
was ist handle1
handle2
usw.

von Jan R. (Gast)


Lesenswert?

weis einer ein gutes tutorial für Dave,
was sind denn Dave Apps wie Prgrommiert man dass, irgendwie stellt man 
alles wie dutycycle usw. in menüs ein, und nicht im Programmcode

Hat vielleicht einer ein Hello World?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Jan R. schrieb:
> gibt es … für den xmc ein Datenblatt?

Jan, ich hoffe, dass wir diesen Thread noch eine Zeit lang nutzen 
können, um Erfahrungen auszutauschen und der Thread nicht "zugemüllt" 
wird. Das Datenblatt ist auch im Artikel Infineon XMC 2Go verlinkt.

: Bearbeitet durch User
von Marc P. (marcvonwindscooting)


Lesenswert?

Ich will mich jetzt mal ganz weit aus dem Fenster lehnen und sagen, Du 
kannst jede Entwicklungsumgebung nehmen, die einen M0 unterstuetzt. Du 
musst 'bloss' die Header und die Linkerscripts anpassen.

Ich persoenlich werde natuerlich wieder nur Makefiles, gcc & Co 
verwenden und die XMC-Umgebung von der LPC800-Umgebung ableiten ;-)

Wer geht die Sache hier eigentlich ausser mir noch von ganz unten an, 
d.h. mit nichts vorgefertigtem? Also XMC1100 RefMan, gcc, Texteditor und 
los geht's?
Leider gehts mit dem USIC nicht so einfach, wie bei den LPCs, daher ist 
das erste Thema wohl GPIO. Aber der XMC bekommt bei mir pro Woche nur 
eine Zeitscheibe von einem Abend, aufgrund anderer Parallelprojekte.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Marc P. schrieb:
> Wer geht die Sache hier eigentlich ausser mir noch von ganz unten an,
> d.h. mit nichts vorgefertigtem?

Ich. Das ist wie mit Tabellenkalkulation: Lieber eine selbst machen, als 
zu verstehen, wie die Tabelle funktioniert, die ein anderer gemacht hat. 
;-)

PS @ Marc: Welche Toolchain benutzt Du?

Für den STM32F4 nutze ich CooCox CoIDE.

: Bearbeitet durch User
von Marc P. (marcvonwindscooting)


Lesenswert?

Torsten C. schrieb:
> PS @ Marc: Welche Toolchain benutzt Du?

arm-none-eabi: gcc-4.8.1, binutils-2.32.2, ohne libc

Dazu die Runtime-Lib (libgcc) fuer M0 von Joerg Mische:

https://github.com/bobbl/libaeabi-cortexm0

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

@Marc: Danke, ich werde mir Deine Toolchain am Wochenende mal anschauen.

Marc P. schrieb:
> Aber der XMC bekommt bei mir pro Woche nur
> eine Zeitscheibe von einem Abend, aufgrund anderer Parallelprojekte.

Exakt wie bei mir (Aquarium, LED-Beleuchtung, Touch-LCDs, NRF24L01+ als 
Hausbus, …).

Daher nochmal mal 'ne Frage: Was hast Du als erstes mit dem XMC 2go vor?

Ich schwanke zwischen
► einer Flugstabilisierung mit Acceleromettern und Gyros
  für meinen Helikopter,
► einem fernsteuerbaren Mini-Segway und
► einer universellen Fernbedienung mit SPI-Touch-TFT, NRF24L01+
  und IRMP

Die Bauteile habe ich für alle drei Projekte schon liegen.

… wobei letzteres wohl billiger wird, wenn man Touch-TFTs mit paralleler 
Schnittstelle und einem passenden µC dazu nimmt, weil's solche TFTs 
billiger gibt als Touch-TFTs mit SPI: Handy-Ersatzteile aus China!

@Jan R. (macman2010): Was hast Du als erstes vor?

: Bearbeitet durch User
von Jan R. (Gast)


Lesenswert?

Eine Steuerung eines Modelkrans, mit 4 Motoren, licht greifeer usw.

wie willst du das minisagway regeln, wie stellst du regelparameter etc 
ein?


Aber nochmal zurück zum Programmieren selbst. Welche Umgebung zum 
Programmieren ist am besten für den XMC.

Was hat es mit diesem DAVE aufsich, was sind DAVE Apps?
Ich habe da keine Ahnung und die Anleitungen von Infineon sind auch 
nicht zielführend...
Ist das sowas wie Arduino?

Hat das teil schon einer? Wenn ja wie programmierst du? Umgebung sprache 
etc.

von Marc P. (marcvonwindscooting)


Lesenswert?

Torsten C. schrieb:
> Daher nochmal mal 'ne Frage: Was hast Du als erstes mit dem XMC 2go vor?

Als erstes Programme ins RAM laden k"onnen ohne den XMC4200 und 
irgendwelchen fremden Binaries. Das wird ein C-Programm unter Linux 
'ramloader-xmc'.

Dann Entwicklungsumgebung basteln: crt0 fuer XMC1100 und LD-scripts. 
Dabei entsteht bei mir meist ein assembler-blinky als erstes Programm 
auf dem neuen uC.

Dann gehts auf die Peripherie des XMC los: GPIO, USIC: ASC, dann I2C.
Und dann kommt der MLX90620 dran :)
Allerdings bezweifle ich, dass ich das Modul fuer den MLX90620 auf dem 
XMC mache. Vermutlich verwende ich dazu einen LPC175x, ich hab da grad 
ein Board in der Mache mit I2C Schnittstelle nach draussen und 
Motorsteuerungen on-board. Bei mir muss fast alles portabel sein und 
dann verwende ich den uC, den ich am besten kenne.

Ganz spaet werde ich mich drum k"ummern, ohne fremde Binaries zu 
Flashen, falls das bis dahin niemand anderes getan hat. Und bis dahin 
bekommt man dann bereits einzelne ICs?!??

von Jan R. (Gast)


Lesenswert?

> Was hat es mit diesem DAVE aufsich, was sind DAVE Apps?
> Ich habe da keine Ahnung und die Anleitungen von Infineon sind auch
> nicht zielführend...
> Ist das sowas wie Arduino?
>
> Hat das teil schon einer? Wenn ja wie programmierst du? Umgebung sprache
> etc.

Naja diese IDE wird hier im Forum zum einstieg empfohlen, aber keiner 
kennt sie?? Komisch...

von Marc P. (marcvonwindscooting)


Lesenswert?

Nach ersten Experimenten und Manual lesen komme ich zu dem Schluss, dass 
die XMC 2Go einen BMI anders als im 'delivery state' (nach RefMan) 
haben. Kann das jemand bestaetigen?
D.h.: Auslesen der Addresse 0x1000'0E00 ergibt was anderes als 0xFFC0 ?
Ich vermute mal 0xFFC3 oder 0xFFC5 ??

Das waere schlecht, denn damit ist schon mal Punkt 1 auf meiner Liste 
nicht moeglich! Dann muesste ich der Katja schon wieder was melden was 
andere Hersteller besser machen (RESET pin, BSL pin).

Ein RESET-Pin waere natuerlich auch ein echt fetter Luxus gewesen. So 
(ohne) muss ich das XMC 2Go Power-cyclen mit 'nem BC556 :(

: Bearbeitet durch User
von looser (Gast)


Lesenswert?

1. Warum muss ich bei den xmc Controllern immmer ein ganzes Byte nehmen
um einen Pin zu adressieren. (ein pin entspricht so wie ich es sehe
einem Ausgang also einem Bit) Sprich ein 32 Bit Register für eine 4Bit
adressierung nehmen muss..

Bekanntes ARM Problem
Schau dir mal Freescal's BME an

von Marc P. (marcvonwindscooting)


Lesenswert?

looser schrieb:
> 1. Warum muss ich bei den xmc Controllern immmer ein ganzes Byte nehmen
> um einen Pin zu adressieren. (ein pin entspricht so wie ich es sehe
> einem Ausgang also einem Bit)

Damit Du mehrere Bits gleichzeitig aendern kannst. Dass die 'set' und 
'clear' bits in einem Wort untergebracht sind, gefaellt mir beim XMC.

: Bearbeitet durch User
von Marc P. (marcvonwindscooting)


Lesenswert?

looser schrieb:
> Schau dir mal Freescal's BME an

Cooles Teil. Allerdings muss man dann auch so fair sein und die 
'missbrauchten' Adressbits als weitere Datenbits rechnen. LPC1100 (nicht 
verwechseln mit XMC1100!) hat beim GPIO eine reduzierte Variante davon 
bei den GPIOs.

: Bearbeitet durch User
von Marc P. (marcvonwindscooting)


Lesenswert?

Marc P. schrieb:
> haben. Kann das jemand bestaetigen?
> D.h.: Auslesen der Addresse 0x1000'0E00 ergibt was anderes als 0xFFC0 ?
> Ich vermute mal 0xFFC3 oder 0xFFC5 ??

Bitte, bitte, kann sich jemand erbarmen und das mal auslesen?
Oder geht das gar nicht so einfach??

von Jan R. (Gast)


Lesenswert?

Also das ding ist da..

Wenn ich das beispielprojekt von Infineon.com
öffne, kann ich es verändern und sfort in den Debug modus kommen..
Und auf das Board downloaden..

Jetzt wollte ich die DaveApps mal ausprobieren..
Wähle XMC1100 dann DAVE Projekt und dann habe ich mal ein einfaches 
Programm mit PWM funktiknalitäten geschrieben. Als ich jetzt auf debug 
klicken wollte melden diese scheiß IDE das keine Hardware angeschlossen 
wäre.. Was muss man den da in dieser Minderbemittelten IDE noch 
einstellen

Mfg

von Jan R. (Gast)


Lesenswert?

Also das ding ist da..

Wenn ich das beispielprojekt von Infineon.com
öffne, kann ich es verändern und sfort in den Debug modus kommen..
Und auf das Board downloaden..

Jetzt wollte ich die DaveApps mal ausprobieren..
Wähle XMC1100 dann DAVE Projekt und dann habe ich mal ein einfaches 
Programm mit PWM funktiknalitäten geschrieben. Als ich jetzt auf debug 
klicken wollte melden diese scheiß IDE das keine Hardware angeschlossen 
wäre.. Was muss man den da in dieser Minderbemittelten IDE noch 
einstellen
und keine Anleitungen im Internet.. Was soll den diese schlechte 
Markstrategie...


Mfg

von Cyblord -. (cyblord)


Lesenswert?

Man fragt sich ob jemand, der nicht mal ordentlich in einem Forum posten 
kann, eine IDE wirklich als "minderbemittelt" bezeichnen sollte. 
Meistens gilt ja PEBKAC.

von Jan R. (Gast)


Lesenswert?

ja ich habe überreagiert, da ich gerade wütend war. Tut mir leid, jetzt 
geht ja auch alles...

Nein das Problem war nicht ich sondern ein defektes USB Kabel..

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Jan R. schrieb:
> keine Anleitungen im Internet.. Was soll den diese schlechte
> Markstrategie..

Ist das hier jetzt zum Mecker-Thread über Infineon geworden, nur weil 
Katja mitliest?

Die anderen Wiki-Artikel im mikrocontroller.net sind sicher auch nicht 
von den "Marktstrategen" erstellt worden. Also: Beiß Dich durch, lege 
einen brauchbaren Artikel an oder warte, bis es ein anderer tut.

Deine Meckerei hilft niemanden weiter, wozu also?

PS:

Jan R. schrieb:
> sondern ein defektes USB Kabel

Na dann ... war ich wohl mit meinem Beitrag zu vorschnell.

: Bearbeitet durch User
von Mike Roh (Gast)


Lesenswert?

Also ich programmier den 2Go jetzt mit dem MDK von Keil. Einfach mal bei 
Google nach "XMC1000 Keil" oder so suchen. Da hab ich dann eine 
Installationsanleitung und eine Lizenz gefunden die wohl umsonst ist.

Bei der Installation bekommt man dann die Möglichkeit 
Device-Unterstützung fuer die XMC1000 auszuwaehlen und Beispiele kann 
man von dort auch gleich aufmachen. Mein erstes Projekt mit LED-Gewackel 
lief 3 Minuten nach dem Download mit funktionierendem Flash Download und 
Debugger. Besser gehts wohl nicht.

von Marc P. (marcvonwindscooting)


Lesenswert?

Sorry ich bin draussen. Hab mein XMC2Go weitergereicht!

Mike Roh schrieb:
> Mein erstes Projekt mit LED-Gewackel
> lief 3 Minuten nach dem Download mit funktionierendem Flash Download und
> Debugger. Besser gehts wohl nicht.

Marc P. schrieb:
>> D.h.: Auslesen der Addresse 0x1000'0E00 ergibt was anderes als 0xFFC0 ?
>> Ich vermute mal 0xFFC3 oder 0xFFC5 ??

Marc P. schrieb:
>> ..
>> Ich vermute mal 0xFFC3 oder 0xFFC5 ??
>
> Bitte, bitte, kann sich jemand erbarmen und das mal auslesen?
> Oder geht das gar nicht so einfach??

Wenn das alles so einfach schon nach 3 Minuten ging, warum konntest Du 
dann auf meine Frage nicht mal nach 3 Tagen 'ne Antwort geben? Weil's 
keinen extra Knopf fuer genau die Aufgabe gibt?? Oder mangelt es einfach 
an einem Funken Hilfsbereitschaft?

Du bist Dir mit der Lizenz nicht so sicher, oder was willst Du damit 
sagen:

Mike Roh schrieb:
> die wohl umsonst ist

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Marc P. schrieb:
> Hab mein XMC2Go weitergereicht!

Hätte ihn gern genommen, schade.

von Blub (Gast)


Lesenswert?

Keil MDK-Lite - kostenlos bis 32KB

von Matthias (Gast)


Lesenswert?

Die Lizenz ist in der Tat kostenfrei zugänglich und schaltet ein 
128KByte Code-Size frei. Siehe auch:

ARM® today announced that Infineon has licensed the Keil® 
Microcontroller Development Kit (MDK) Silicon Vendor Edition. Developers 
now get free access to professional software tools for the Infineon 
XMC1000 microcontroller series, further accelerating the transition from 
8 and 16-bit architectures to 32-bit ARM® Cortex®-M0 processors.

http://www.keil.com/pr/article/1264.htm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.