Forum: Mikrocontroller und Digitale Elektronik EEPROM im AVR vor Überspannung schützen


von Christian (Gast)


Lesenswert?

Hallo,

habe ein Problem, dass die Daten meines internen EEPROMs durch evtl. 
Überspannugen (EMV?) verändert werden. Das EEPROM wird nur verändert, 
aber nicht beschädigt.
Wie kann ich das interne EEPROM durch entsprechende Hardwarebeschaltung 
schützen? Schreibschutz wird wohl nichts bringen, da das Phänomen nicht 
durch einen SW Schreibfehler auftritt.

Verwendet wird ein AT90CAN128.

Merci Christian

von Ben _. (burning_silicon)


Lesenswert?

brown-out detection ist aktiviert? ansonsten einen externen reset-IC 
verwenden. habe irgendwo gelesen, daß manche AVRs den inhalt ihres 
eeprom beim abschalten korrupieren können.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Christian schrieb:
> habe ein Problem, dass die Daten meines internen EEPROMs durch evtl.
> Überspannugen (EMV?) verändert werden.

Wie kommst du darauf, dass es Überspannungen sind?
Warum werden diese überhaupt toleriert und in die Schaltung gelassen.


> Schreibschutz wird wohl nichts bringen, da das Phänomen nicht
> durch einen SW Schreibfehler auftritt.

Woher kannst du da sicher sein?
Das wäre mein erster Ansatzpunkt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> habe irgendwo gelesen, daß manche AVRs den inhalt ihres
> eeprom beim abschalten korrupieren können.
Das waren die Mature AVR. Wenn bei denen ein Schreibvorgang angestossen 
wurde, und dann die Versorgungsspannung wegging, blieb die Ladungspumpe 
eingeschaltet, aber der Pointer ging auf Adresse 0. Und dann konnte es 
sein, dass die eigentlich angewählte Zelle ein wenig "angelöscht" und 
die Zelle 0 "fertiggelöscht" wurde. Fatal war, dass der uC so einen 
Schreibvorgang fehlerhafterweise beim Powerfail selber anstossen 
konnte.
Mit aktivierten Brown-Out passiert da heutzutage nichts mehr.

> habe ein Problem, dass die Daten meines internen EEPROMs durch evtl.
> Überspannugen (EMV?) verändert werden.
Werden die fehlerhaften Bits immer auf '1' gesetzt?
Falls ja: Brown-Out aktivieren.

von Christian (Gast)


Lesenswert?

Werde einmal testen, ob die Fehlerhaften Bits alle auf '1' liegen. Wie 
würde das dann mit Brown Out aussehen? Muss ich das Flag vor dem 
Schreibvorgang lesen, und darf erst dann ins EEPROM schreiben? Wobei ich 
selber meine nicht in mein EEPROM zu schreiben. Werde dies aber noch 
einmal prüfen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Wie würde das dann mit Brown Out aussehen?
Nichts einfacher als das:
Du setzt die entsprechende Fuse, den Rest macht der uC.

Aber aufpassen:
Der Brown-Out schützt dich nicht davor, dass die gerade aktuell 
beschriebene Zelle korrupt ist. Wenn die Energie noch zum Löschen 
reicht, aber nicht mehr fürs Schreiben, was soll der uC da noch machen? 
Du selber brauchst eine Powerfail-Überwachuung, und nur wenn das Byte 
(oder der Datensatz) noch geschreiben werden kann, darfst du einen 
Schreibvorgang starten. Dabei hilft dir der Brown-Out aber nicht, denn 
der schützt "nur" die anderen Zellen.

von Christian (Gast)


Lesenswert?

...es steht definitiv nicht nur '1' an den "fehlerhaften" Stellen, 
sondern es wird auch '1' auf '0' gesetzt. Was bedeutet das??

von Jürgen W. (juergenw)


Lesenswert?

Hallo,

ich habe mit dem Atmega8535 das gleiche Problem. Den "Brown out level" 
habe ich bereits auf 4 Volt eingestellt. Einen Softwarefehler kann ich 
auch ausschließen, da überhaupt nicht auf das EEPROM zugegriffen wird. 
Und es werden fast alle Speicherzellen von 0-511 mit unregelmäßigen 
Bitmustern gefüllt. Auch die Zellen die nicht programmiert wurden sind 
nicht mehr auf 255. In der Nähe (ca. 50 cm Abstand) werden 
Transformatoren mit einer Leistung von 37 kVA über Schütze geschalten. 
Bis jetzt vermute ich, dass sich über die Luft (magnetische Einsteuung?) 
der Atmega etwas einfängt. Wenn jemand eine Erklärung bzw. Abhilfe weiß, 
würde ich mich sehr darüber freuen.
Am Programm (Flash) verändert sich aber kein Byte.

Gruß
Jürgen

von Ben _. (burning_silicon)


Lesenswert?

dann probier's doch einfach mal mit einem abschirmkäfig um den µC...

meine der regelfall ist der betrieb eines (ungeschützten) µC in 50cm 
abstand zu richtig dicken trafos nicht gerade. du willst schließlich 
auch nicht, daß irgendjemand eine 380kV leitung 50cm neben dir 
einschaltet.

von Falk B. (falk)


Lesenswert?

@  Ben _ (burning_silicon)

>dann probier's doch einfach mal mit einem abschirmkäfig um den µC...

Kann helfen, wird es aber wahrscheinlich eher weniger. Den meisten Dreck 
fängt man sich über Signal- bzw. Masseschleifen ein.

>meine der regelfall ist der betrieb eines (ungeschützten) µC in 50cm
>abstand zu richtig dicken trafos nicht gerade.

Alles relativ. Bissel 50Hz Streufeld interessiert Digitalelektronik 
keine Sekunde. Aber Schaltfunken von Schützen sind HEISS!

MFG
Falk

von oszi40 (Gast)


Lesenswert?

Blechkiste wäre eine Idee, aber 50cm Abstand zu 37 kVA ?
Da wirkt doch jeder Draht wie Antenne und die Betriebsspannung= ???

Wahrscheinlich wäre eine Ortsveränderung die beste Lösung. Man sollte 
aber wissen, daß z.B. ein Eisenbahnfahrdraht in 10m Entfernung auch noch 
wunderliche Effekte verursachen kann.

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.