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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.