Forum: Mikrocontroller und Digitale Elektronik FLASH verliert Inhalt. WARUM?


von Alex (Gast)


Lesenswert?

Hallo,

mich ärgert ein kniffeliges Problem :-( ich habe eine größere Anzahl
von kleinen Steuerplatinen in betrieb die mit einem mega8L bestückt
sind. Etwa 1% verliert unmotiviert während des Betriebes teilweise oder
vollständig FLASH-Inhalte. Woran kann das liegen? Halt jemand schon mal
solche Erfahrungen gemacht?

THX Alex

von TravelRec. (Gast)


Lesenswert?

Betriebsspannung gut absieben und Brown-Out Detektor aktivieren.
Verstrahlte Umgebung?

von Alex (Gast)


Lesenswert?

hm,

spannungsversorgung erfolgt über den usb-bus ...
die umgebung ist eher als STINO zu betrachen...
hatte schon an ESD effekte geacht

was würde der aktivirte brown-out detektor bei dem problem bringen?


THX Alex

von peter dannegger (Gast)


Lesenswert?

Kein Pin darf Spannung kriegen, bevor nicht VCC anliegt !


Peter

von Mitlesender (Gast)


Lesenswert?

> Kein Pin darf Spannung kriegen, bevor nicht VCC anliegt !

Da diese Forderung in der Praxis unrealistisch ist, müsste doch ein
externes Reset-IC für die MCU ausreichen, oder?

von peter dannegger (Gast)


Lesenswert?

"Da diese Forderung in der Praxis unrealistisch ist"

Warum ?

Wenn Peripherie und MC aus einer Quelle versorgt werden, ist das doch
der Fall.


Aber wenn man nen Programmieradapter hat, der schon vom PC Saft kriegt,
kann es die merwürdigsten Effekte geben.
Daher hat der Programmieradapter nen 74LS244 dazwischen geschaltet, der
mit VCC des MC versorgt wird.


Peter

von Alex (Gast)


Lesenswert?

oh mann mal langsam jungs...

ihr denkt also dass meine probleme daher kommen dass portpinns spannung
haben bevor vcc am controller anliegt... hm... das ist denkbar da die
spannungsversorgung aus zwei quellen möglich ist... usb und extern

hm.... ich les mir das kapitel brown-out detector im datenblatt noch
mal durch

THX alex

von TravelRec. (Gast)


Lesenswert?

Peter:

Der Kollege meinte, daß während des Betriebes der Datenverlust
auftritt, am Progger dürfte es also nicht liegen. Daß die Chips vor der
Betriebsspannung auf irgendwelche Pins Saft bekommen, ist eher
wahrscheinlich oder eben ESD.

@Alex: Der Brown-Out Detektor sorgt für definiertes ein- und
ausschalten des Cores und verhindert, daß die CPU undefinierte Codes
ausführt, falls die Spannung ungenügend ist. Zusätzlich solltest Du die
Lock-Bits setzen, die das Ausführen der SPM-Instruktion im
Applikationsbereich verhindern. Das gibt zusätzliche Sicherheit.

von Ssss S. (sssssss)


Lesenswert?

Hast du mal einen uC wieder ausgelesen und mit dem Programm verglichen
?
Wo/wie unterscheiden die sich ?

Hast du evtl irgendwo im Programm flash schreibbefehle drin ?

von Alex (Gast)


Lesenswert?

also es passiert definitiv beim betrieb... es geht auch nicht um ein
einzelstück... die programme laufen ne weile und ohne bisher
erkennbares muster steigen die aus... der bootloader bleibt in den
meisten fällen erhalten... ich dachte schon das der bootloader
"spontan anspringt" und anfängt seiten zu löschen... aber das konnte
bisher nicht festgestellt werden... definitiv gab es auch fälle bei
denen die programme sozusagen halb liefen, also nur bestimmte
programmteile betroffen waren... ich denk ich versuchs mal über
brown-out detection in den griff zu bekommen... im datenblatt des mega8
wird ausdrücklich darauf eingegangen dass der flash während des
betriebes "kaputt" gehen kann (Preventing Flash Corruption ) atmel
empfiehlt im wesentlichen 3 maßnahmen.. eine davon ist brown-out ;-)

THX jungs

von Ssss S. (sssssss)


Lesenswert?

kann es nicht doch sein dass der bootloader angesprungen wird ?
Zb irgendwo nen Stack überlauf und du schreibst irgendwo werte hin die
er dann als Rücksprung adresse nimmt und zufällig im bootloader
landet.

Flash doch mal eine Version ohne bootloader und guck obs da auch
passiert ;)

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.