I2C EEPROM Alternative Adresse

Gast #4943335
Hallo in die Entwicklergemeinde,

ich habe folgendes Problem: An einem I2C Bus habe ich einen EEPROM 
hängen. I2C Adressbereich 0x50 - 0x57. Nun hätte ich an dem gleichen Bus 
einen weiteren EEPROM gehängt. Überraschung: Nun brauche ich ein 
weiteres EEPROM, welches nicht auf diesen Adressbereich hängt. Als ich 
mit der Suche startete, dachte ich, so groß kann das Problem ja nicht 
sein. Vor allem bei den 2kByte Speichern würde es sich ja anbieten, die 
Adresspins (hier nicht genutzt) für das setzen der DeviceID (oberen 3Bit 
der Slave Addresse zu nutzen). Leider fehlanzeige, so ein EEPROM habe 
ich nicht gefunden.

Nun zur Frage kennt jemand ein EEPROM welches nicht auf dem 
Adressbereich 0x50-0x57 hängt?

Ansonsten bestünde noch die Möglichkeit einen Adressübersetzungschip von 
Linear zu nutzen: http://www.linear.com/product/LTC4316


Vielen Dank für eure Hilfe!
(Firma: EleLa - www.elela.de)
Normalerweise haben EEPROM's 3 Adress-Eingänge A0..A2, somit kann man 8 
EEPROM's parallel an einem Bus anschließen, indem man jedem EEPROM seine 
eigene Adresse gibt.

Zeige mal das Datenblatt von Deinem EEPROM.

Sollte Dein EEPROM nicht diese Adress Eingänge haben, dann suche Dir ein 
anderes aus das diese hat.
Gast
Frank K. schrieb:
> Du verwendest wahrscheinlich ein 24*02. Nimm statt dessen ein 24*025,
> und Dein Problem ist gelöst.

Nein, Leider nicht. Sonst wäre ich ja schon längst fertig :D. Es handelt 
sich um 2kByte, also sprich 16kbit. Den 24*16 Type habe ich schon 
verbaut. Daher ist ja der Adressraum 0x50-0x57 (7Bit Adr) voll und ich 
Suche nach Alternativen :-)

Viele Grüße und schon mal besten Dank für die rege Diskussion.
Gast
Gallioleo schrieb:
> Frank K. schrieb:
>> Du verwendest wahrscheinlich ein 24*02. Nimm statt dessen ein 24*025,
>> und Dein Problem ist gelöst.
>
> Nein, Leider nicht. Sonst wäre ich ja schon längst fertig :D. Es handelt
> sich um 2kByte, also sprich 16kbit. Den 24*16 Type habe ich schon
> verbaut. Daher ist ja der Adressraum 0x50-0x57 (7Bit Adr) voll und ich
> Suche nach Alternativen :-)
>
> Viele Grüße und schon mal besten Dank für die rege Diskussion.

Ich verstehe das Problem nicht. Du kannst doch 8 EEproms eines Typs 
parallel an den Bus hängen. Du musst doch nur jedem Chip eine andere 
Adresse geben. Dafür sind die 3 Adressbits doch da.
EEProm schrieb:
> Du musst doch nur jedem Chip eine andere
> Adresse geben. Dafür sind die 3 Adressbits doch da.

Ja, ich glaube auch, dass du das mit den Adressen noch nicht ganz 
verstanden hast.
Adressbereich 0x50 - 0x57 heisst, dass du jedem EEprom dieses Typs 
eine von diesen 8 möglichen Adressen per Beschaltung der externen 
Adresspins zuweisen kannst.
Ein EEprom belegt also nicht alle 8 Adressen, sondern nur eine davon.

Update:
Oha. Mein Fehler.
Gibt wohl Devices, die intern einen "Block select" über die Adresse 
machen, und dann tatsächlich alle 8 Adressen belegen.
Schweinerei... ;-)
Gast
>Ja, ich glaube auch, dass du das mit den Adressen noch nicht ganz
>verstanden hast.

Hat er nicht.

>Adressbereich 0x50 - 0x57 heisst, dass du jedem EEprom dieses Typs
>eine von diesen 8 möglichen Adressen per Beschaltung der externen
>Adresspins zuweisen kannst.
>Ein EEprom belegt also nicht alle 8 Adressen, sondern nur eine davon.

Diese Adresspins sind bei den 2k Dingern unused.
Die Teile sind quasi 8 256Byte EEPROMs in einem.

Ich habe mal I2C EEPROMs mit anderer Adresse als 0x50 gesehen,
aber das waren Exoten. Nimm einen größeren.
Gast
Eigentlich sollten verschiedene Aufgaben verschiedene Adressbereiche 
haben. Z.B. Speicher bei 0x5X, so dass man 8 verschiedene Speicher 
(verschiedener Module) auslesen kann. Die "Sondernutzung", dass 8 
Speicher vereint sind um die Adressierung zu verkürzen ist quasi schon 
ein abuse. Und zahllose Speichervarianten mit anderer (hardwired) 
Adresse würden den Busgedanken ad absurdum führen. Wenn man so eine 
fremde Hardware scannt, kann man meist viele Adressen schon direkt 
auslesen (4 Speicher: Gib doch mal alles ab Adresse 0 aus und schaue was 
drinn steht. 2 Uhrenbausteine: Mehrmals lesen und nach den 
Sekunden/millisekunden suchen)
Gallioleo schrieb:
> Nein, Leider nicht. Sonst wäre ich ja schon längst fertig :D. Es handelt
> sich um 2kByte, also sprich 16kbit. Den 24*16 Type habe ich schon
> verbaut.

Wer zwingt Dich denn, den Sonderfall 24C16 zu benutzen?
Oben habe ich die Typen genannt, die bis zu 8 Stück am selben Bus 
zulassen.
(Firma: EleLa - www.elela.de)
Gallioleo schrieb:
> ich habe folgendes Problem: An einem I2C Bus habe ich einen EEPROM
> hängen. I2C Adressbereich 0x50 - 0x57.


Gallioleo schrieb:
> Nein, Leider nicht. Sonst wäre ich ja schon längst fertig :D. Es handelt
> sich um 2kByte, also sprich 16kbit. Den 24*16 Type habe ich schon
> verbaut. Daher ist ja der Adressraum 0x50-0x57 (7Bit Adr) voll und ich
> Suche nach Alternativen :-)


Bitte schreibe mal GAAANNNZZZZ genau ob es nur 1 EEPROM ist oder ob Du 
schon 8 EEPROM's am Bus hängen hast!!!

Es wird endlich mal Zeit dass wir hier vollständige Informationen 
erhalten, ansonsten können wir nicht helfen.

z.B. Schaltplan von allen Bausteinen am I2C Bus.
Gast
Markus M. schrieb:
> Bitte schreibe mal GAAANNNZZZZ genau ob es nur 1 EEPROM ist oder ob Du
> schon 8 EEPROM's am Bus hängen hast!!!

nun, er hat einen 24*16 am Bus, der die Adressen 0x50 bis 0x57 belegt 
(bzw. 0xA0 bis 0xAF wenn man RW als LSB interpretiert)

Er sucht (warum auch immer) halt nicht sein Heil in 
10Bit-(oder-mehr-)Adressierung, sondern hatte gehofft, ein Pendant mit 
z.B. 0x60..0x67
zu finden. Frommer wunsch, aber durchaus verständlich.

Und, da er nicht der erste ist, vielleicht sogar erfüllbar.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.