PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm beschädigt?



CsMTEch
12.09.2013, 21:06
Kann es sein, dass ein Programm auf einem Mikrocontroller fehlerhaft werden, wenn es Langezeit nicht mehr angeschaltet wird?
Der Mikrocontroller schaltet immer noch die Ports, allerdings nur 2 von 4 und diese immer in einem bestimmten Rhythmus.

Vielen Dank schon mal im Voraus :)

Peter(TOO)
12.09.2013, 22:07
Hallo,

Kann sein, wenn der nicht sauber programmiert wurde.
Irgendwann ist es normal, dass Bits umfallen. Normalerweise aber erst nach >10 Jahren.
Wenn aber zu wenig Elektronen auf die Floating-Gates geladen wurden, kann das auch schon früher sein.
µCs könne auch nicht unendliche male programmiert werden, bei jedem Schreibzyklus altern die Bit-Zellen.

Eine andere Möglichkeit ist, dass das RAM nicht initialisiert wird und ein verwendetes Bit dann falsch steht.

Grundsätzlich kann auch der µC einen hau weg haben, besonders wenn er misshandelt wurde.

Aber worum geht es eigentlich?
Eigenes Projekt oder was gekauftes?

MfG Peter(TOO)

CsMTEch
13.09.2013, 13:26
Um ein eigenes. Es ist ein Roboter, der eigenständig durch einen Parcour fährt :)

PICture
13.09.2013, 13:38
Hallo!

@ CsMTEch

Zuerst muss sicher sein, dass die Fehlfunktion z.B. durch defekten Programm oder Reset verursacht wurde. Dafür müsste ein Vergleich von originaler Kopie der *hex Datei mit Programmspeicher ausreichen.

seite5
13.09.2013, 17:33
hi,
was beim AVR schon vorgekommen ist, ist dass EEPROM-Zellen bei nichteingeschaltenem Brown-Out-Reset beim Durchfahren
von unerlaubten Betriebsspannungen (Einschalten / Ausschalten) gelöscht wurden, falls Dein Programm sein Verhalten auf Daten im EEPROM stützt,
wäre das evtl. eine Möglichkeit.
mfg
Achim

Peter(TOO)
13.09.2013, 17:56
Hallo,

@ CsMTEch
Wie geht's dem Akku so?
Wenn der einen Schaden hat und nicht mehr den vollen Strom liefern kann, kann es auch sein, dass wenn der µP eine Last zuschaltet, die Spannung zusammenbricht, was dann automatsch zu einem Rest führt.

Und sonst würde ich als nächstes auch ein Verify machen, also mit dem Programmer, den Speicherinhalt mit dem Programm vergleichen, dann sollte ein defektes Bit erkannt werden.
Bessere Programmen machen den Vergleich bei Vmin und Vmax.

MfG Peter(TOO)

CsMTEch
16.09.2013, 14:01
Danke für die vielen Antworten. Ich hab das Programm nochmal mal neu auf den Chip geladen, aber es kam das Selbe dabei raus. Also ist der mC wohl im *****. Jetzt habe ich den Chip ausgetauscht und es läuft wieder.

PICture
16.09.2013, 14:17
Glückwunsch ! :)

Es war die schlimmste Möglichkeit, die ich nicht erwähnen wollte.