Forum: Mikrocontroller und Digitale Elektronik USB-Bootloader für ATmega16U4?


von Simon (Gast)


Lesenswert?

Hey Leute!

Ich suche einen USB-Bootloader der in den 2k-Bootblock vom Mega16U4 
passt.

Ich hab hier ein OpenKubus-Stick von embedded projects mit eben diesem 
Controller in dem ich dummerweise den Bootloader überschrieben hab. Kein 
Problem dachte ich erst weil ich ja sowieso was mit LUFA drauf machen 
wollte, nehm ich halt Dean's DFU-Bootloader, nur passt der leider nicht 
in die 2k die der 16U4 für den Bootloader zur Verfügung stellt. Und 
scheinbar hat Atmel den originalen Bootloader von der Webseite genommen 
(wenn er da mal war, was ein anderer Post mit Verweis auf ein Hexfile 
"bl_usb_16U4.a90" aber bestätigt).

Jedenfalls gibts bei Atmel nicht mehr das Original und ich hab nirgendwo 
einen Ersatz finden können, weiss hier vielleicht jemand Rat? 
Irgendjemand hat doch hoffentlich noch das Original wo rumliegen? Oder 
das gleiche Problem gehabt und einen anderen USB-Bootloader für den 16U4 
gefunden?

Bin für jeden Hinweis dankbar!

Gruss
Simon

von Simon (Gast)


Lesenswert?

Mein Fehler, war wohl schon zu spät am abend.

Natürlich passt der Bootloader aus dem LUFA-Framework in den Mega16U4, 
der hat ja genau wie der Mega32U4 2048 WORDS (also 4kB) Platz für den 
Bootloader. Das hab ich übersehen.

Leider bekomme ich ihn trotzdem nicht zum laufen. Unter Windows bekomme 
ich nur ein "USB-Gerät nicht erkannt". Hat dazu vielleicht jemand eine 
Idee?

Die Fuses hab ich soweit überprüft, ich hoffe ich hab mich da nicht 
durch die mehrfache Invertierung selber verwirrt. Die Fuses sind:

EXTENDED 0xFB (Default bis auf BOD=2,6V)
HIGH 0x98 (Default bis auf BOOTRST, zum testen immer den Bootloader 
starten)
LOW 0xC2 (int. RC, keine Ausgabe, nicht durch 8 teilen)

Hab ich da ein Fehler drin? FLIP 3.3.4 hab ich installiert, also sollte 
der DFU-Treiber ja wohl vorhanden sein wenn sich der Mega als DFU-Gerät 
meldet. Ich weiss inzwischen einfach nicht mehr weiter, wahrscheinlich 
seh ich den Wald vor lauter Bäumen nicht...

Achso, ich programmiere auf WinXP aus AVR-Studio 4.16b638 heraus mit 
Ulli's AVR-Lab das ein STK500-Programmer an COM2 simuliert. Das Target 
ist von Embedded Projects das OpenKubus (gibts nicht mehr) mit Mega16U4.

von Simon (Gast)


Lesenswert?

Aaaalso, noch ein Fehler gefunden. Es war wirklich schon zu spät.

An dem Code für den DFU-Bootloader sollte man ja nichts ändern müssen, 
aber natürlich das Makefile anpassen. Dort muss man die Startadresse des 
Bootloaders angeben. Soweit, sogut. Allerdings muss man die in BYTES 
nicht in WORDS angeben.

Aber immer noch "USB-Gerät nicht erkannt", nur dauert es jetzt viel 
länger bis das kommt.

Das wird hier sowas wie eine Fehlersammlung zum Troubleshooting hab ich 
das Gefühl.

von Simon (Gast)


Lesenswert?

So, Problem gelöst. Selbes Problem wie hier:

Beitrag "AVR USB - atmega32u2 - bootloader?"

Ähnlicher Lösungsweg, nur hier ganz als Monolog...

Am Ende war der Fehler irgendwo in der LUFA-Bibliothek, der 16U4 meldete 
sich immer mit VID=0000 und PID=0000, da kann das System ja nicht schlau 
draus werden. Der Fehler ist außerdem in der aktuellen Version 
LUFA101122 die als Paket zum download steht drin! Per SVN die aktuellste 
Version (1651) geholt und schon geht es auch.

Hoffentlich hilft es irgendjemand weiter!

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.