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


von Torsten G. (wawibu)


Angehängte Dateien:

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:
1
ISR (USART_RX_vect)
2
{
3
  if(UDR0=='R'){      //Reset-Signal für BT-Bootloader bekommen?
4
    cli();            //Interrupts deaktivieren
5
    wdt_enable(0);    //Watchdog mit kürzestem Teiler einschalten
6
    while(1);         //Endlosschleife bis Reset
7
  }
8
}

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:
1
Trying to open port COM1 with 9600 baud...
2
Trying to connect to bootloader at COM1 with 9600 baud...
3
No bootloader found.

Wie oben gesagt, starte ich die GUI und mache dann einen Hardware-Reset, 
klappt es:
1
Trying to open port COM1 with 9600 baud...
2
Trying to connect to bootloader at COM1 with 9600 baud...
3
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

von Torsten G. (wawibu)


Lesenswert?

hm - keiner eine Idee?

Wie macht ihr das denn mit den Bootloadern?

von TomB (Gast)


Lesenswert?

chip45boot2 unterstützt keinen Watchdog!

von Tweety (Gast)


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

von Torsten G. (wawibu)


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

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.