- LiFePO4 Speicher Test         
Ergebnis 1 bis 7 von 7

Thema: Arduino-Sketch plötzlich gelösch? Bootloader intakt.

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176

    Arduino-Sketch plötzlich gelösch? Bootloader intakt.

    Anzeige

    Powerstation Test
    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?

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    32
    Beiträge
    1.192
    Hallo,

    sind die Reset, Rx, Tx-Pins über längere Leitungen geführt? Gibt es Pull-Widerstände o.ä.? Werden Rx,Tx für andere Zwecke noch benötigt?
    Eventuell wurde der Bootloader durch eingefangene Störungen (gerade bei hochohmigen Eingängen anfällig) auf langen Leitungen aktiviert und hat den Speicher so zurückgesetzt?
    Andererseits müsste der Bootloader so etwas durch Prüfsummen der einkommenden Daten etc. verhindern.

    Oder wurde das Gerät einfach nicht vollständig programmiert und getestet vor Auslieferung?

    Es bleibt ein Rätsel.

    Viele Grüße,
    Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Die Programmierung sollte komplett sein (bisher habe ich keinen Bug gefunden) und getestet wurde auch vor Auslieferung - deswegen hat sie sich ja hingezogen

    Die Pins für RX/TX sind unbelegt. da kommt nur extern die Arduino-Uno-Platine dran - aber die Kabel sind lang. Rst hat den 10k-Widerstand wie alle 8bit-Atmels.

    Kann ich RX/TX/RST denn weiter absichern? Die Kabel sind schon recht lang (bestimmt 15-20CM wenn der Programmieradapter nicht angeschlossen ist!).

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    32
    Beiträge
    1.192
    Hallo,
    wie wäre es damit: Den Rx bei Nichtbenutzung niederohmig (z.B. 100 Ohm) auf definiertes Potential legen, und den Reset-Pullup auch niederohmiger machen, gerne auch einen kleinen Kondensator (100nF ?) von Reset nach GND.
    Grüße,
    Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Hmmm....das wird schwer. Die Platine ist in einem Gehäuse verbaut. Am Gehäuse hängt ein Kabel für einen Aktuator.
    Wenn die Platine neu beschrieben wird, wird der Aktuator getrennt und am selben Kabel (der Stecker hat ausreichend Pins) der Arduino Uno (ohne µC) zum Programmieren angesteckt.

    Es könnte also auch sein, dass das PWM-Signal des Aktuators hier reinstrahlt.
    Problematisch ist der Fakt, dass ich selbst en Aktuator und den Aufbau nicht hier habe, um unter Last zu testen. Beim Anlaufen mit der Nutzlast wird ein größerer Strom fließen als wenn der Aktuator ohne Last anläuft - evtl. könnte das auch eine Rolle spielen?

    Ich hatte zum Testen den Aktuator ohne Last hier, aber damals hat alles problemlos funktioniert. Das Problem trat nach einigen Tagen/Wochen Nutzung auf.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    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.

    Klicke auf die Grafik für eine größere Ansicht

Name:	C.jpg
Hits:	10
Größe:	122,7 KB
ID:	32726

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Das Ändern der Kondensatorposition hat folgende Veränderung gebracht:

    vorher:
    Klicke auf die Grafik für eine größere Ansicht

Name:	vorher.jpg
Hits:	9
Größe:	28,7 KB
ID:	32747


    nacher:
    Klicke auf die Grafik für eine größere Ansicht

Name:	nacher.jpg
Hits:	8
Größe:	30,2 KB
ID:	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):

    Klicke auf die Grafik für eine größere Ansicht

Name:	markierung_blech.jpg
Hits:	8
Größe:	84,6 KB
ID:	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:

    Klicke auf die Grafik für eine größere Ansicht

Name:	vorher_nachwehe.jpg
Hits:	8
Größe:	27,6 KB
ID:	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.
    Geändert von Cysign (11.07.2017 um 06:37 Uhr)

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 07.11.2015, 02:21
  2. Antworten: 15
    Letzter Beitrag: 08.03.2015, 18:02
  3. Antworten: 13
    Letzter Beitrag: 02.12.2014, 10:13
  4. Arduino Sketch serielles Terminal: erkennen von CR
    Von Ford Prefect im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 18.06.2014, 15:58
  5. frage zu sketch arduino und webserver
    Von der_tom im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 11.03.2012, 19:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus