damfino
16.07.2015, 10:06
Ich doktore jetzt seit 2 Monaten mit Urlaubsunterbrechung daran herum das Programm lauffähig zu bekommen und komme einfach nicht weiter.
Mittlerweile vermute ich ein Hardwareproblem.
Verschiedene Fehler:
1) Programm beginnt normal, dann eigenartiges Verhalten (Motoren laufen an obwohl in diesem Abschnitt die Motoren nicht angesteuert werden), reagiert aber noch auf Tasteneingabe. Freier SRAM wird laufend am Display angezeigt, es sind hier noch wie erwartet ~3300 Bytes frei.
2) Programm beginnt normal, aber nach 4s schlägt der Watchdog zu, die Watchdog Anzeige wie blinkende LED blinkt nicht mehr mit 10Hz sondern nur mehr alle paar Sekunden
3) Ein altes Hex file das schon mal funktionierte hat auf einmal auch diesen Watchdog Fehler.
4) Nach ein paar Mal andere Files flashen und dann wieder obiges geht dieses auf einmal länger als 4s.
5) neues Hex File flashen wieder bei Fehler 1 oder 2
Hab extra eine Minimalst-Programmversion erstellt, alles rausgeworfen was es an Menüs, Fahrprogrammen, GPS und Bluetooth und sonstigen Extras gab, SRAM benötigt nur mehr 500 Byte anstatt mindestens 4200Byte, und es geht immer direkt in den Watchdog rein
Es ist ein Arduino Mega Board, dh Abblockkondensatoren sollten doch passen, Stromversorgung über Akku-Stepdown Regler, oder auch direkt über den Programmer.
Brownout ist auf höchsten Wert von 4.3V eingestellt.
Watchdog Anzeige, wie kann es passieren dass es nur alle paar Sekunden blinkt???
if ((mcusr_mirror & (1 << WDRF)))
{
Anzeige_Sonder(LCD_WATCHDOGK1);
Motoren_stop();Mower_faststop();
while(1)
{
if (mcusr_mirror & (1 << WDRF)) {LED_gr_ein;LED_rot_aus;}
_delay_ms(100);
LED_gr_aus;LED_rot_aus;
_delay_ms(100);
}
}
else wdt_enable(WDTO_4S);
wdt_reset();
Wie der Roboter das Programm hochfährt ist seit 3 Jahren unverändert gleich und hat schon auf verschiedenen Kontrollern funktioniert, also warum auf einmal in dieser Phase der Watchdog?
Kann der ältere Diamex Programmer den Atmega2560 nicht richtig programmieren?
Kann es sein dass der Stepdown Regler eine unsaubere Spannung liefert und damit das unberechenbare Verhalten auslöst? LCD, GPS und Bluetooth hängen auch direkt dran und laufen fehlerfrei.
Atmega defekt?
??
?
?
LG Werner, der den ganzen Haufen bald zum Elektroschrott wirft...
Mittlerweile vermute ich ein Hardwareproblem.
Verschiedene Fehler:
1) Programm beginnt normal, dann eigenartiges Verhalten (Motoren laufen an obwohl in diesem Abschnitt die Motoren nicht angesteuert werden), reagiert aber noch auf Tasteneingabe. Freier SRAM wird laufend am Display angezeigt, es sind hier noch wie erwartet ~3300 Bytes frei.
2) Programm beginnt normal, aber nach 4s schlägt der Watchdog zu, die Watchdog Anzeige wie blinkende LED blinkt nicht mehr mit 10Hz sondern nur mehr alle paar Sekunden
3) Ein altes Hex file das schon mal funktionierte hat auf einmal auch diesen Watchdog Fehler.
4) Nach ein paar Mal andere Files flashen und dann wieder obiges geht dieses auf einmal länger als 4s.
5) neues Hex File flashen wieder bei Fehler 1 oder 2
Hab extra eine Minimalst-Programmversion erstellt, alles rausgeworfen was es an Menüs, Fahrprogrammen, GPS und Bluetooth und sonstigen Extras gab, SRAM benötigt nur mehr 500 Byte anstatt mindestens 4200Byte, und es geht immer direkt in den Watchdog rein
Es ist ein Arduino Mega Board, dh Abblockkondensatoren sollten doch passen, Stromversorgung über Akku-Stepdown Regler, oder auch direkt über den Programmer.
Brownout ist auf höchsten Wert von 4.3V eingestellt.
Watchdog Anzeige, wie kann es passieren dass es nur alle paar Sekunden blinkt???
if ((mcusr_mirror & (1 << WDRF)))
{
Anzeige_Sonder(LCD_WATCHDOGK1);
Motoren_stop();Mower_faststop();
while(1)
{
if (mcusr_mirror & (1 << WDRF)) {LED_gr_ein;LED_rot_aus;}
_delay_ms(100);
LED_gr_aus;LED_rot_aus;
_delay_ms(100);
}
}
else wdt_enable(WDTO_4S);
wdt_reset();
Wie der Roboter das Programm hochfährt ist seit 3 Jahren unverändert gleich und hat schon auf verschiedenen Kontrollern funktioniert, also warum auf einmal in dieser Phase der Watchdog?
Kann der ältere Diamex Programmer den Atmega2560 nicht richtig programmieren?
Kann es sein dass der Stepdown Regler eine unsaubere Spannung liefert und damit das unberechenbare Verhalten auslöst? LCD, GPS und Bluetooth hängen auch direkt dran und laufen fehlerfrei.
Atmega defekt?
??
?
?
LG Werner, der den ganzen Haufen bald zum Elektroschrott wirft...