Hallo,
ich habe eine Frage, bei der ihr mir vllt. helfen könnt.
Ich habe bei einem Experimentierboard mit einem AT90USB1286 irgendwie
den Booatloader zerschossen. Eigentlich habe ich die Fusebits
zerschossen, aber um die wieder zu resetten, musste ich vorher den
ganzen Chip löschen.
Nun versuche ich ihn neu aufzuspielen und habe dabei Probleme. Ich
benutze zum Programmieren einen USBasp (selbstbau) und das Programm
extreme Burner. Das Programmieren funktioniert einwandfrei und wenn ich
selbst geschriebene Software draufspiele, tut die wie gewünscht (sie
benutzt auch die USB-Schnittstelle korrekt).
Wenn ich aber den DFU-Bootloader draufspiele so startet der nicht.
Mir ist aufgefallen, dass der Code das Bootloaderes an der Adresse
0xE000 beginnt. Das ist sowohl im Programm (extreme Burner) zu sehen als
auch aus dem Hex-File zu lesen. Jedoch startet die Boot-Section des
At90USB128x (je nach Wahl der BOOTSZ-Fuses) frühestens ab der
Wordadresse 0xF000, was der Byteadresse 0x1E000 entspricht.
Ich habe also die Vermutung, dass der Bootloader an eine falsche Stelle
im Flash geschrieben wird. Allerdings steht meiner Ansicht nach im
hex-File von Atmel genau diese falsche Stelle drin.
Wo ist mein Denkfehler? Oder nutze ich die falschen Tools? Nativ
unterstützt das Programm extreme Burner die At90USB-Chips nicht aber ich
habe eigene Definitionen in die chips.xml und die fuselayout.xml
hinzugefügt. Diese scheinen gut zu funkionieren.
P.S.: Wenn andere extreme-Burner Nutzer Bedarf haben, werde ich hier bei
Gelegenheit die Definition für alle Chips der At90USB-Reihe einstellen.