www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik chip45boot2 - nach Watchdog Reset keine Verbindung zum Bootloader


Autor: Torsten Giese (wawibu)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

irgendwie will es mir nicht gelingen, per Watchdog Reset in den 
Bootloader zu springen.
Nutze den chip45boot2 loader inkl der Windows GUI am ATmega168.

Mit einem echten Hardware Reset klappt das auch alles wunderbar.

Nun will ich aber ja nicht noch einen Reset-Knopf rausführen und diesen 
drücken müssen. Habe daher folgende Passage in das Prog eingefügt:
ISR (USART_RX_vect)
{
  if(UDR0=='R'){      //Reset-Signal für BT-Bootloader bekommen?
    cli();            //Interrupts deaktivieren
    wdt_enable(0);    //Watchdog mit kürzestem Teiler einschalten
    while(1);         //Endlosschleife bis Reset
  }
}

Schicke ich nun über die UART ein 'R', reseted der Controller und 
startet das normale Programm von vorne.

Will ich nun über die chip45boot2 GUI den uC reseten um dann eine 
Verbindung zum Bootloader zu bekommen, klappt das einfach nicht. Der uC 
resetet und startet dann neu. Doch der Bootloader wird von der GUI nicht 
erkannt.
Im Log steht dann:
Trying to open port COM1 with 9600 baud...
Trying to connect to bootloader at COM1 with 9600 baud...
No bootloader found.

Wie oben gesagt, starte ich die GUI und mache dann einen Hardware-Reset, 
klappt es:
Trying to open port COM1 with 9600 baud...
Trying to connect to bootloader at COM1 with 9600 baud...
Found chip45boot2 bootloader version v2.98

Hat einer Erfahrungen mit dem chip45boot und kann mir ggf helfen? 
Irgendwie muss das doch auch über den WatchDog Reset gehen.

Angefügt ein Screenshot von der GUI und den Fuses.

Danke & Gruß,
Torsten

Autor: Torsten Giese (wawibu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm - keiner eine Idee?

Wie macht ihr das denn mit den Bootloadern?

Autor: TomB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chip45boot2 unterstützt keinen Watchdog!

Autor: Tweety (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi !

Ich mache es so: (allerdings ohne Watchdog)


#define update_software asm volatile ( "jmp 0x3800" )

ISR (USART_RX_vect)
{
  if(UDR0=='R'){      //Reset-Signal für BT-Bootloader bekommen?
    cli();            //Interrupts deaktivieren
    update_software;  // Springe in den Bootloader-Breich
  }
}



Gruß Tweety

Autor: Torsten Giese (wawibu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tweety: Habe es so ähnlich nun auch realisiert.

Hatte mich mit chip45boot in Verbindung gesetzt und die hatte mir das 
auch so geraten.

Danke Dir dennoch.

Gruß,
Torsten

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.