-
        

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

Thema: I2C EEPROM 24LC256 Probleme

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.06.2007
    Ort
    Fürth
    Alter
    34
    Beiträge
    52

    I2C EEPROM 24LC256 Probleme

    Anzeige

    Hallo

    Ich versuche nun schon länger verzweifelt Word Werte in einem 24LC256 zu speichern. Das ganze läuft zwar unter Testbedingungen ( Zahl von 1 bis 100 schreiben und danach einlesen) aber in meinem Anwendungsfall komme ich einfach auf keine Lösung.

    Das ganze soll folgendermaßen aussehen(grob):

    Code:
    Goto Lesen
    
    'Hauptschleife:
    Do
         If Schreibbedingung Goto Schreiben
    Loop
    
    
    Schreiben:
    Wert soll im EEPROM gespeichert werden.
    Wert soll im EEPROM an nächster speicherstelle gespeichert werden.
    Wenn EEPROM voll beginne an erster Speicherstelle.
    usw.
    
    Lesen: 
    Wert lesen der als letztes geschrieben wurde
    Meine Fragen:
    1. Wie kann ich das ganze realisieren? Welche Adressen muss ich wie hochzählen etc.?
    2. Wieviele solcher werte kann ich im 24LC256 speichern bis er einmal voll ist? (16000???).

    Danke für eure Hilfe

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    Du Schreibts was von Word-Werten aber gleichzeitig von 0-100 (Byte)??

    Wie man mit dem EEPROM arbeitet kannst Du hier nachlesen : http://www.roboternetz.de/wissen/ind...und_I2C_EEprom

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.06.2007
    Ort
    Fürth
    Alter
    34
    Beiträge
    52

    Re: I2C EEPROM 24LC256 Probleme

    Zitat Zitat von masabuana
    Das ganze läuft zwar unter Testbedingungen ( Zahl von 1 bis 100 schreiben und danach einlesen) aber in meinem Anwendungsfall komme ich einfach auf keine Lösung.

    Ich sag ja dass in diesem Fall wo ich die ganze sache in einer Schleife laufen lass funktioniert es! Soweit kann ich alleine schon denken und Suchfunktion benutzen... Um mein Problem nochmal ganz klar zu machen:

    Woher weiss ich wenn ich z.B. nach Stromweg wieder einschalte wo ich 1. meinen Wert lesen muss und 2. wo ich weiterschreibe. Das ganze soll sozusagen wie ein Endlosbandrecorder funktionieren.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    Da wirst Du wohl eine Datenzuordnungstabelle basteln müssen in der steht wo Du zuletzt gespeichert und gelesen hast. Das könnte man z.B. in den ersten 2 Bytes des EEproms machen und da immer die Adresse ablegen wo zuletzt gespeichert wurde. Hat den Nachteil das die ersten Bytes sehr oft beschrieben werden also müßte man den Speicherbereich größer machen über die ersten 100 Bytes z.B.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.10.2005
    Ort
    Berlin
    Beiträge
    116
    Hi,
    also hab bisher noch nicht mit EPROMS gearbeitet aber kannst du nicht einfach eine Addresse reservieren, wo du dann deinen letzten Schreibvorgang speicherst (also die Addresse davon)? Dann könntst du vor dem nächsten Schreib/Lese-Vorgang einfach die Addresse auslesen und an der nächsten Stelle weiter schreiben bzw. an der Stelle lesen.

    mfg milkbubi



    edit: Da war wohl jemand schneller ^^

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.10.2005
    Ort
    Berlin
    Beiträge
    116
    Zitat Zitat von Rofo88
    ... also müßte man den Speicherbereich größer machen über die ersten 100 Bytes z.B.
    Dann muss er doch wieder wissen, wo er gespeichert hat, wo er was gespeichert hat

    Oder versteh ich das grad falsch?

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    @milkbubi

    Das Problem is das man ja im EEprom ned unendlich oft Schreiben kann. Wenn man immer nur in die selbe Adresse schreibt wird die ja zuerst ausfallen. Also nimmt man einen größeren Bereich wo die letzten Adressdaten abgespeichert werden und wenn man neue Daten Speichert schreibt man die Aktuellen Daten in einen anderen Bereich (z.B. Byte 2-3) und löscht den alten Bereich (z.B.0-1). Hat man durch den Spannungsausfall die Schreibstelle im SRAM verloren sucht man halt die ersten 100Byte im EEPROM durch wo in denen ne Adresse steht. So kann man den Schreibzugriff etwas verteilen.

    Eleganter wäre es den µC vor Spannungsausfall etwas zu schützen, dass er die Daten noch schnell Speichern kann wenn die Versorgungsspannung ausfällt. Dieses Thema wurde ja schon mehrmals im Roboternetz behandelt. Da könnte man dan immer einen festen Bereich nehmen der halt nur bei nem Spannungsausfall beschrieben wird.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    19.06.2007
    Ort
    Fürth
    Alter
    34
    Beiträge
    52
    Ich hatte das ungefähr so gedacht:

    Ich weiss dass mein zu speichernder Wert immer grösser wird. Beim auslesen
    lese ich einfach jeden Wert aus und vergleiche ihn mit dem Vorgänger. Den größten Wert nehm ich und schreib ab da weiter.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    19.06.2007
    Ort
    Fürth
    Alter
    34
    Beiträge
    52
    Kann mir dabei keiner behilflich sein?

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.10.2005
    Ort
    Berlin
    Beiträge
    116
    Durch willst den ganzen Speicher durchforsten nach dem größten Wert? Ich weiß zwar nicht ob das so üblich ist aber wenn dus so machen willst dann mach es doch so wie du geschrieben hast. Oder hast du Probleme den größten Wert zu finden?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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