I2C EEPROM Alternative Adresse

Gast #4943335
Lesenswert?
• ▲
▼
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) #4943349
Lesenswert?
• ▲
▼
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 #4944878
Lesenswert?
• ▲
▼
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 #4944887
Lesenswert?
• ▲
▼
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.
#4944899
Lesenswert?
• ▲
▼
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 #4944904
Lesenswert?
• ▲
▼
>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 #4944936
Lesenswert?
• ▲
▼
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)
(Firma: EleLa - www.elela.de) #4945479
Lesenswert?
• ▲
▼
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 #4946256
Lesenswert?
• ▲
▼
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

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