-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Mega128 EEPROM Fehler

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    43
    Beiträge
    80

    Mega128 EEPROM Fehler

    Anzeige

    Hallo User,

    bei einer Hardware macht ein EEPROM Probleme. Nach ungefähr 3000 Betriebsstunden mit schätzungsweise 3000-5000 Schreibzyklen und ungefähr doppelt so vielen Lesezyklen verliert das EEPROM seine Inhalte bzw. hat einfach Quatsch drin. Es werden regelmäßig die selben Speicherstellen beschrieben. Hat da jemand eine Idee, woran es liegen könnte ?

    Danke für Hilfe !
    Alles wird gut... Gruß Alex

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    spannungsversorgung stabil, keine unterspannung die zu lese oder schreibfehlern führen kann, dauerbetrieb oder ein und ausschalten ?!

    ich kenn mich nur soweit aus , dass manchmal probleme auftauchen wenn die spannung zu niedrig ist, wenn ich mal nen wackligen draht hab aufm steckbrett z.B. gehen auch schonmal die ersten 2-3 bytes flöten weil er mehrmals versucht zu lesen oder zu schreiben

    eventuell ein paar details mehr zur schaltung und der verwendung (also gut abgeblockte versorgung, bzw. dauerbetrieb oder "ständiges" an/aus)

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    43
    Beiträge
    80
    Betrieb am Bordnetz (24V), Spannungsversorgung über Schaltwandler gut abgeblockt und gepuffert: ~2500µF an 24V mit Überspannungsschutz, Schaltwandler auf 5V, 220µF und vor dem Prozessor nochmal Tiefpass 5R/200nF Kerko. Da kann (eigentlich) nichts mehr passieren. Betrieb dauerhaft (also mehrere Stunden für gewöhnlich), Spannungseinbrüche nur im Bereich, daß die Spannungsversorgung für den Controller gewährleistet ist.

    Einzige Möglichkeit: Was passiert während eines nicht abgeschlossenen Schreibzyklus, wenn der BrownOut kommt ?

    Alle Betriebsdaten werden bei Programmstart ins RAM geladen und nur auf Tastendruck verändert. Jede Stunde werden lediglich 2 words ins EEPROM geschrieben, eine Abspeicherung aller Betriebsdaten erfolgt nur auf Tastendruck, während dessen ein Verlust der Betriebsspannung nicht erfolgt. Der Fehler verändert aber nicht nur die beiden words, sondern auch andere Speicherstellen sind betroffen.
    Alles wird gut... Gruß Alex

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Ein passend konfigurierter Brownout-detektor sollte die meisten EEPROM Probleme lösen.
    Ein Problem könte sein, das der brownout detektor wohl AVcc kontrolliert, das EEPROM vermutlich aber von Vcc gespeist wird. Wenn da keine gute Verbindung ist, könnte es sein, das Vcc zu schlecht wird, bevor AVcc zu niedrig ist.

    Bei einem nicht abgeschlossenen Schreibzyklus könnten ein paar zusätzliche Bits gesetzt sein. So weit ich weiss, wird erst das byte gelöscht (alle bits gesetzt), und dann der eigentliche Wert reingeschrieben.

    Wenn man ganz sicher gehen will, müßte man die Versorgung gut puffern, und vor dem EEPROM schreiben die Spannung von Hand testen.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    43
    Beiträge
    80
    Wäre es möglich, daß bei einem Schreibprozess via Bascom (also z.B. RAM in ERAM Variable) ein Interrupt dazwischenkommt ? Oder schaltet Bascom automatisch den Interrupt aus ?
    Alles wird gut... Gruß Alex

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Während des Schreibvorgangs per ISP ist der Resetpin auf LOW, so dass kein Programm ausgeführt werden kann. Das dient dazu, den IC in den Programmiermodus zu bringen.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    43
    Beiträge
    80
    Ja, das ist klar. Ich meinte einen EEPROM Schreibvorgang, wenn das Programm selbst eine Variable in das EEPROM schreibt
    Alles wird gut... Gruß Alex

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    theoretisch unmöglich, er setzt zum schreiben sogar 4 zyklen lang die main clock ausser betrieb um derartiges zu vermeiden!

    aber du kannst doch einfach mit cli() und sei() deine eeprom write methode umgeben um es herauszufinden ... sonst wie gesagt einfach mal versuchshalber nen ganz dicken elko mit ner vorgeschalteten diode damit der strom vom elko auch NUR in den controller geht

    alternativ, kannst du ja die daten doppelt speichern(2 relativ weit voneinander entfernte addressen), mit ner CRC und nach dem auslesen die daten auf gültigkeit überprüfen und falls notwendig neu schreiben oder nen fehler ausgeben!

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    43
    Beiträge
    80
    Es sieht im Moment so aus wie in Bild 1, Du schlägst also Bild 2 vor ?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken bild2_113.jpg   bild1_104.jpg  
    Alles wird gut... Gruß Alex

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    ja , genauso stell cih mir das vor, wenn von aussen die versorgung einbricht, kann die peripherie den strom nicht aus dem elko beziehen, ALLERDRINGS würd ich AVCC ebenfalls hinter die diode packen, denn einige der atmels sind intern verbunden, also VCC und AVCC verbunden

    PS: ob ne schottky da so nen unterschied macht ? der spannungsabfall von 0.7V bleibt doch gleich oder ?

    ausserdem wirds je nach anliegender schaltung nochmal etwas komplliziert, wenn du z.B. ausgangpins hast müsste man noch überprüfen ob die peripherie da nicht auch strom ziehen könnte und dann wirds umständlich, denn dann geht nur pullup per µC und pulldown per wiederstand wenn du eine diode einsetzten solltest

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •