I²C EEPROM 24Cxx sequential read: Ende erkennen

Gast #3614405
Lesenswert?

Abend
Ich will per I2C ein EEPROM 24Cxx auslesen. Das klappt auch alles. Aber 
ich finde keine Lösung, wie ich erkennen kann, wie groß das EEPROM ist. 
Wenn ich per sequential read alles auslese, dann erzeugen die Speicher 
am Ende ja einen Überlauf und liefern einfach wieder die ersten Bytes. 
Ebenso, wenn ich die die Bytes einzeln adressiere: dann wird bei einer 
Adresse, die größer als der Speicher ist, einfach vom Speicheranfang an 
wieder gezählt. Ich will aber mit wechselnden Speicherchips arbeiten 
können. Gibt's da nen Trick?
Gast #3614447
Lesenswert?

>Aber ich finde keine Lösung, wie ich erkennen kann, wie groß das EEPROM ist.

Chip mit Mustern beschreiben um die Grösse zu ermitteln.
Es wäre aber einfacher die Chipgrösse gleich dem Programm
bekannt zu geben.
Gast #3614643
Lesenswert?

Ralph schrieb:
> Bernd schrieb:
>> Dann wird es nix mit dem Auslesen
>
> Stimmt ja nicht. Auslesen klappt ja. Nur muß man die Größe der
> relevanten Daten angeben.

Die falsche Anzahl von richtig gelesenen Bytes ist ist genauso falsch 
wie die richtige Anzahl von falsch gelesenen Bytes

MfG Klaus
Gast #3614920
Lesenswert?

Dann lies die maximale Größe aus und wirf, solange die erste Hälfte der 
Daten gleich der zweiten Hälfte der Daten ist, die zweite Hälfte weg.

Wenn das EEPROM sinnvolle Daten enthält, kriegst du so die Größe raus. 
Wenn alle Zellen gleich sind, hast du halt Pech gehabt: Dann muss der 
User auf die Beschriftung schauen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren