Forum: Mikrocontroller und Digitale Elektronik Xmega Bootloader Problem!


von Florian R. (rager)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe ein großes Problem. Nachdem ich einige Zeit mit Atmegas und 
Attinys programmiert habe, wollte ich mal Xmegas ausprobieren. Ich 
arbeite mit AS6 und habe sonst immer einfach nur die von AS6 erstellen 
HEX Dateien auf den Flash geladen. Das hat für meine Zwecke gereicht. 
Nun hab ich mir ein kleines Xmega32A4U Board gebaut und wollte einen USB 
Bootloader drauf spielen. Nur ich versage total! Ich habe mir den Atmel 
Bootloader aus der Application Note 1916 runter geladen
http://www.atmel.com/devices/atxmega32a4u.aspx?tab=documents
und versucht die HEX Datei drauf zu spielen, aber es hat nicht geklappt. 
Der PC erkennt nichts obwohl ich PC3 auf GND gelegt habe und die HEX 
Datei auch fehlerfrei geflashed wurde. Die Bootloader Fuse wurde von mir 
gesetzt. Die PDF ist auch keine Hilfe, da die davon ausgehen, dass man 
es schafft selbst den Bootloader aufzuspielen...

Bitte helft mir und gebt mir eine Dummy Anleitung wie ich den Bootloader 
aufspielen soll.

Florian

PS. Im Anhang ist die Application Note 1916 und die passenden Datein.

von Florian R. (rager)


Lesenswert?

Kann mir wirklich niemand helfen?  :(

von Basti M. (counterfeiter)


Lesenswert?

Hab gestern auch mit dem Bootloader gekämpft, aber ich wollte ihn nur 
mal complieren... sagt einem aber auch keiner von Atmel, dass der 
Bootloader für den 32A4U nicht mit GCC Compliert werden kann, weil er 
dann über 4kb groß ist... also muss man zum IAR greifen... so ein 
Käse...
Naja egal, hat nichts mit deinem Problem zu tun... wenn du die fertig 
hex nimmst, sollte das schon funktionieren. Kann dir aus der ferne auch 
keiner helfen...

von ITler (Gast)


Lesenswert?

...ist denn das Problem jetzt den Bootloader selbst zu flashen oder ihn 
zu verwenden?

Ich dachte letzteres, aber Du schriebst auch:

"Die PDF ist auch keine Hilfe, da die davon ausgehen, dass man
es schafft selbst den Bootloader aufzuspielen..."

Also hast Du den Bootloader geflasht & verifiziert?

Grüße
Markus

von Florian R. (rager)


Lesenswert?

Die Bootloader Hex Datei konnte ich Kompilieren. Jedenfalls hat der 
Compiler gesagt, dass es geklappt hat und verifiziert wurde, aber per 
USB tut sich halt nichts. Ein einfaches Blinkprogramm hat funktioniert 
:)

LG,
Florian

von Basti M. (counterfeiter)


Lesenswert?

Florian Roesner schrieb:
> Die Bootloader Hex Datei konnte ich Kompilieren. Jedenfalls hat der
> Compiler gesagt, dass es geklappt hat und verifiziert wurde, aber per
> USB tut sich halt nichts. Ein einfaches Blinkprogramm hat funktioniert
> :)
>
> LG,
> Florian

Mit was kompilieren? Wie groß ist das Programm geworden? Ich dachte du 
hast die "rohe" Hex von Atmel probiert...
So hängt es jetzt noch von deinen Compilereinstellungen ab...

von Gerhard G. (g_g)


Lesenswert?

Hallo,

du mußt vermutlich noch die FUSE ändern.
Bei BOOTRST von APPLIKATION nach BOOTLDR stellen.



Gruß G.G.

von Florian R. (rager)


Lesenswert?

Die FUSE habe ich gesetzt.
Entschuldigt, ich habe mich nicht klar ausgedrückt:
das Blinkprogramm habe ich kompiliert und geflashed. Den Bootloader habe 
ich über die Hex auf den MCU geflashed.


LG,
Florian

von Basti M. (counterfeiter)


Lesenswert?

Achso, sooo hab gerade auch wieder nen längeren Kampf hinter mir...

Also mit IAR lässt sich der Flip klein genug für XMega32A4U Kompalieren 
und flashen. Hab die Fuse eingestellt und dann hat sich schon Flip 
gemeldet... Konnte alles einspielen. Mein Problem war noch: Ich arbeite 
ohne Jumper, also wenn Flip kommt, muss ich nach ner bestimmten Zeit die 
vector tabelle zurückspielen und auf den programmstart springen... ist 
mir aber noch nicht gelungen... ich hatte immer nur Flip in der 
Leitung...

Grüße

Basti

von Markus M. (adrock)


Lesenswert?

Florian Roesner schrieb:
> Die FUSE habe ich gesetzt.
> Entschuldigt, ich habe mich nicht klar ausgedrückt:
> das Blinkprogramm habe ich kompiliert und geflashed. Den Bootloader habe
> ich über die Hex auf den MCU geflashed.

Aber das .hex war das fertige von Atmel? Oder selbst übersetzt?

Wenn selbst übersetzt, könnte es ja das 4k Problem geben wie von Basti 
schon erwähnt...

Grüße
Markus

von Florian R. (rager)


Lesenswert?

> Aber das .hex war das fertige von Atmel? Oder selbst übersetzt?

Ja der .hex ist der von Atmel, da ich das andere nicht auf AS6 nicht hin 
bekomme.

@Basti könntest du mir mal deine .hex geben damit ich es versuchen kann?
Wobei ich das mit dem Pin gerne machen würde, der Einfachheit wegen.

von Basti M. (counterfeiter)


Angehängte Dateien:

Lesenswert?

kannst ja mal probieren...

von Florian R. (rager)


Lesenswert?

Ich hab den Bootloader drauf getan und es tut sich nichts.
Der PC meldet kein neues USB gerät. PC3 auf GND hat auch nichts getan...
Warum klappt das nicht :(  ?

von Basti M. (counterfeiter)


Lesenswert?

Funktioniert denn anderer Programmcode mit USB?

von Florian R. (rager)


Lesenswert?

Ich hab jetzt noch nichts mit USB zum laufen gebracht nur halt led 
blinken lassen per PDI.

Xmega_small.hex
atxmega16a4u_104.hex
atxmega32a4u_104.hex
atxmega64a4u_104.hex
Bei keinem gab es irgendwas wo sich der USB gemeldet hat.

von Basti M. (counterfeiter)


Lesenswert?

Na dann ist doch die Wahrscheinlichkeit recht hoch, dass dein gebautes 
XMega U Board nicht funktioniert. Such doch lieber an anderer Stelle 
weiter...

Grüße

Basti

von Florian R. (rager)


Angehängte Dateien:

Lesenswert?

Ich bin mir ziemlich sicher das ich die Hardware richtig gemacht habe. 
Wenn jemand Lust hat kann er ja mal die Eagle Dateien ansehen.

Grüße,
Florian

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bist Du sicher dass Du einen neuen USB-Chip und nicht vielleicht einen 
älteren XMEGA ohne USB-Engine bestückt hast? Hatten wir hier schon 
einmal...

von Florian R. (rager)


Lesenswert?

Es ist ganz sicher ein Xmega32A4U

von Basti M. (counterfeiter)


Lesenswert?

USB Anschluss sieht richtig aus...

von LD (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab das gleiche Problem: Benutze auch einen Xmega 32A4U und auch das 
gleiche Bootloaderpacket.

Zu Testzwecken habe ich dem Bootloader auf meinen MC geflashed
und anschließend wieder ausgelesen, Programm war drauf.

Im nächsten Schritt habe ich der ausgelesenen Datei ein Blickprogramm 
eingepflanzt (der Bootloader lässt den "Applikation"-teil ja eh leer 
(0xFF)).

Wenn ich den MC jetzt auf BOOTRST -> BOOTLDR programmiere blinkt die Led 
wenn ich PC3 auf Vcc ziehe (Applikation wird ausgeführt) und wenn ich 
ihn auf GND lege hängt sich der MC auf (so als warte er auf irgend etwas 
-ein Signal des PCs ?)

Hat jemand eine Idee worauf der Bootloader wartet ?

von Stefan (Gast)


Lesenswert?

Habt Ihr denn auch den Bootloader aktiviert?

In der Appnote steht:

External I/O condition: Tying a specific pin to ground when the part is 
exiting reset (POR, BOD, External
Reset). The default pin can be changed re-compiling the boot loader for 
a specific hardware target (see
Section 6.4 Customizing the boot loader)
• Internal firmware request: The user application can decide to start a 
DFU session. This can be achieved by
jumping to a specific address in the boot loader firmware. The entry 
point to start a DFU session initiated by a
user application firmware jump is BOOT_SECTION_START + 0x1FC for all 
devices


und etwas vorher ist eine Tabelle dass beim xmega32A4u der default pin 
PC3 ist.

wenn man das nicht braucht/möchte, muß man die routine halt an seine 
bedürfnisse anpassen

von LD (Gast)


Lesenswert?

>> ... wenn ich PC3 auf Vcc ziehe (Applikation wird ausgeführt) und wenn ich
>> ihn auf GND lege hängt sich der MC auf ...

Das hab ich soweit schon beachtet
Und da die normale Applikation nicht mehr bearbeitet wird (kein blinken 
wenn PC3 auf GND) gehe ich mal davon aus dass der MC im Bootloader ist.

Aber von da geht es anscheinend nicht mehr weiter ... warum ?

von Basti M. (counterfeiter)


Lesenswert?

Also bei mir läuft der Bootloader. Dennoch ist er sehr zickig...
Wenn man in seinem Hauptprogramm USB benutzt hat und dann zum Bootloader 
springt, geht gar nichts... Dann muss man nen paar Umwege nehmen... Bin 
gerade dran den Bootloader auf meine Bedürfnisse anzupassen, aber so 
richtig fruchtet es noch nicht, weil sich die Einsprungadresse 
wahrscheinlich ändert und ich diese dann nicht mehr wieder finde.
Hat da jemand ne Idee? Dissambler für XMega habe ich noch nicht 
gefunden, nur für Atmega und der läuft nicht mit xmegas...

Hier noch die Infos zum Bootloader:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=122461


Grüße

Basti

von Michael A. (ammannm)


Lesenswert?

Hallo zusammen!
Bin auch an einem Atxmega Projekt und am versuchen den Bootloader von 
Atmel zum Laufen zu bringen.

Ich weiss, dieser Thread ist schon älter, antworte trotzdem einmal, habe 
ein ähnliches Problem.

@ Basti M.
Habe irgendwo in diesem Forum gelesen, dass die Timer ausgeschalten sein 
müssen um in den Bootloader zu springen!
Vieleicht hilft dir das, wenn du es nicht bereits gelöst hast!?

Bei meinem Atxmega16A4U kann ich den Bootloader über AtmelStudio6 auf 
den MC spielen (via PID). Habe zudem ein "Blinker" drauf als 
Applikation.
Schliesse ich nun die Spannung an funktioniert der "Blinker".
Drücke ich den Reset Button und den Button für eine USB Verbindung mit 
Flip aufzubauen (übrigens bei mir PC3), geht nichts mehr (USB ist 
angeschlossen).
----------------------------------------
Jetzt kommt's!

Schliesse ich nun den "AVRISP mk ii" an und wiederhole die Schritte zum 
verbinden, findet der PC ein neues USB-Device und ich kann den Treiber 
installieren und den MC mit Flip programmieren!

Ist das bei euch auch so und vor allem WARUM könnte das sein?

Gruss Michael

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.