mikrocontroller.net

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


Autor: Christian (Gast)
Datum:

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

Autor: Ben ___ (burning_silicon)
Datum:

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

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Christian (Gast)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Christian (Gast)
Datum:

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

Autor: Jürgen W. (juergenw)
Datum:

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

Autor: Ben ___ (burning_silicon)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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

Autor: oszi40 (Gast)
Datum:

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

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.