Arduino-Sketch plötzlich gelösch? Bootloader intakt.
Hallo zusammen,
ich habe in einem Kundenprojekt eine eigene, arduino-kompatible Platine entworfen.
Hierbei habe ich den USB-Serial-Konverter in ein externes Gehäuse gebaut.
Soweit funktioniert das auch alles ohne Probleme.
Allerdings habe ich nun einen Fall in dem der Kunde plötzlich nur noch Kästchen am HD44780 gesehen hat.
Klar, das Display ist nicht initialisiert.
Nachdem ich nun den Speicher des Atmels ausgelesen habe, hab ich gesehen, dass lediglich ein kleiner Speicherbereich mit Hex-Werten beschrieben war:
Code:
:1000000071C0000081C000007FC000007DC0000002:100010007BC0000079C0000077C0000075C0000000
:1000200073C0000071C000006FC000006DC0000010
:100030006BC0000069C0000067C0000065C0000020
:1000400063C0000061C000005FC000FFFFFFFFFF52
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
...usw
Ich vermute, das es sich hierbei um den Arduino-Bootloader handelt.
Dieser ist auch intakt.
Wenn der Sketch auf Grund eines technichen Problems gelöscht worden wäre, würde ich vermuten, dass auch der Bootloader (der ja im selben Speicher liegt) in Mitleidenschaft gezogen wird.
Nun habe ich den aktuellen Sketch erneut aufgespielt und die Steuerung läuft wie gehabt.
Ich wüsste nun aber dennoch gerne, ob mein Kunde aus Versehen den Upload-Button gedrückt hat oder ob es eine andere Möglichkeit gibt, diesen Fehler zu verursachen.
Hat jemand von euch vielleicht schonmal das gleiche Problem gehabt?
Liste der Anhänge anzeigen (Anzahl: 1)
Nachdem ich mir das Ganze unterm Oszilloskop angesehen hatte und ein deutliches Aufflackern der RST-leitung gesehen habe, hab ich mir mein Platinenlayout und den Schaltplan nochmals angesehen.
Der Kondensator am RST-pin hat nen recht großen Abstand. Ich denke, ich werde den mal näher an den AtMega ransetzen und schauen, ob das Zucken der RST-Leitung dann geringer wird.
- - - Aktualisiert - - -
Der Kondensator für den RST-Pin ist da oben doch was weit weg gerutscht. Ich hoffe, dass ich das Problem damit gefunden habe ;)
Ich werd den jetzt irgendwie da unten dranzimmern und hoffen, dass sich das Verhalten bessert.
Anhang 32726
Liste der Anhänge anzeigen (Anzahl: 4)
Das Ändern der Kondensatorposition hat folgende Veränderung gebracht:
vorher:
Anhang 32747
nacher:
Anhang 32748
Man sieht schon einen deutlichen Unterschied. Aber ob das so ausreicht?
Da der Fehler wirklich nur sehr, sehr selten (alle paar Wochen mal) auftritt, bin ich mir nicht sicher, wie ich das nun verifizieren kann.
Weiterhin habe ich die Stromkabel im Gehäuse von der Platine zum Stecker nun verdrillt, nachdem ich gelesen habe, dass das auch etwas helfen soll (ich stell mir das ein bisschen wir diese spiralförmig umwickelten Autoantennen vor. Ohne Umwicklung: langer Initiator eines Wirbels, Mit Spirale: viele kleine Wirbel, unterdrückt das Pfeifen - übertragen auf meinen Fall: kleineres induktives Feld?).
Weiterhin überlege ich grade noch die Spule auf dem verwendeten XL6009-Modul und des Relais abzuschirmen. Hierzu plane ich ein kleines Blech auf Masse zu legen, welches in Richtung des Mikrokontrollers abschirmt (siehe Markierung):
Anhang 32749
Die Schaltung basiert auf einem Arduino Mega / AtMega2560, laut Schaltplan soll ab Resetpin der Kondensator 22pF betragen (https://www.arduino.cc/en/uploads/Ma...-schematic.pdf oben in der Mitte). Allein schon durch das Lötzinn komm ich schon auf um die 30pF.
Als Nächstes werde ich noch den von dir vorgeschlatenen 100nF-Kondensator zum 22pF parallel schalten. Ich hoffe, dass der AtMega sich dann noch programmieren lässt ;)
- - - Aktualisiert - - -
Mir ist nach mehrmaligem Betrachten der Videos, die ich während des Triggerns aufgenommen habe, aufgefallen, dass ich sowohl vor als auch nach dem Umbau einen zweiten Impule sehen kann:
Anhang 32750
Zunächst wird durch das Relais der XL6009 mit Strom versorgt und nach einer minimalen Verzögerung wird mit einem Mosfet dann der Motor per PWM in Betrieb genommen.