mikrocontroller.net

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


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Betriebsspannung gut absieben und Brown-Out Detektor aktivieren.
Verstrahlte Umgebung?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Pin darf Spannung kriegen, bevor nicht VCC anliegt !


Peter

Autor: Mitlesender (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.