Mega32U2 bootloader gekillt?

Gast #3292842
Lesenswert?

Ich hab ein Board mit einem Mega32U2 aufgebaut. Als ersten Test 
folgendes Programm geschrieben:
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
  DDRB = 0xff;
6
  for(;;)
7
    PORTB++;
8
}

Atmel Flip gestartet, Controller wurde anstandslos programmiert. Auf 
"Start Application" geklickt, Programm tut was es soll. Soweit so gut.

Nur: jetzt meldet sich der Controller nicht mehr am USB. Flip sagt 
"Could not open USB device". Hab ich den Bootloader überschrieben? Kann 
sich der Bootloader überhaupt selber überschreiben.
Gast #3292863
Lesenswert?

In Flip kann man keine Fuses einstellen. Nur ein Hexfile laden, 
programmieren und das Flash löschen.

Laut Datenblatt wird der Bootloader gestartet, wenn PD7 auf low ist, 
aber nur wenn die HWBE Fuse gesetzt ist. Weiss jemand ob die HWBE Fuse 
per default gesetzt ist? Ich hab PD7 mit GND verbunden aber es tut sich 
nix.

Das ist das Hexfile das ich programmiert hab:
1
:100000000C944C000C9456000C9456000C94560022
2
:100010000C9456000C9456000C9456000C94560008
3
:100020000C9456000C9456000C9456000C945600F8
4
:100030000C9456000C9456000C9456000C945600E8
5
:100040000C9456000C9456000C9456000C945600D8
6
:100050000C9456000C9456000C9456000C945600C8
7
:100060000C9456000C9456000C9456000C945600B8
8
:100070000C9456000C9456000C9456000C945600A8
9
:100080000C9456000C9456000C9456000C94560098
10
:100090000C9456000C94560011241FBECFEFD4E0F0
11
:1000A000DEBFCDBF0E9458000C945E000C9400008F
12
:1000B0008FEF84B985B18F5F85B9FCCFF894FFCFFE
13
:00000001FF

Das sollte ja dem Bootloader nix tun, da er viel weiter hinten sitzt.
Gast #3292876
Lesenswert?

Logisch, sonst könnte ich ja kaum mein eigenes Program draufladen.

Die Frage ist, ob man IN SEINEM EIGENEN PROGRAMM zwingend zum Bootloader 
springen muss.

Ich denke nicht, da wie schon erwähnt die HWBE Fuse existiert. Wenn die 
gesetzt ist, dann wird automatisch der Bootloader aktiviert wenn beim 
Reset PD7 low ist. Was bei mir der Fall ist.

Die Frage ist, ist die HWBE Fuse per default gesetzt? Falls nicht wäre 
das ziemlich dämlich, da man ja den Controller nicht mehr programmieren 
könnte falls man die Option zum Bootloader aktivieren vergisst oder 
diese durch einen Bug nicht mehr funktioniert.
Gast #3292885
Lesenswert?

OK, Rätsel gelöst: man muss manuell einen Reset auslösen, ein Powercycle 
(ab- und anstecken) löst keinen Reset aus!

Also: PD7 auf low legen und dann Pin 24 (/Reset) kurz auf GND, dann 
machts badonk und der Bootloader startet.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren