I2C EEPROM nicht kaskadierbar

Gast #57962
Lesenswert?

Nabend,

in meinem Datenlogger möchte ich zwei I2C- Bus EEPROMS von Microchip
benutzen (24LC256). Die Schaltung ist fertig und geätzt. Ich habe das
erste EEPROM mit A0=A1=A2= "1" hardcodiert und das andere mit
A0=A1=A2= "0", trotzdem antworten beide EEPROMs auf der gleichen
Adresse (wenn ich sie einzeln betreibe), ganz so als würden die Bits
ignoriert bzw. als 0 verstanden. Ich habe übrigens schon 6 oder 7
EEPROMs (alle <=32K) probiert und bei allen das gleiche Problem
festgestellt. Kann mir da jemand weiterhelfen ?

Schöne Grüße,
Boxenbauer
Gast #57963
Lesenswert?

Hi,

wie liegen die "1" an dem EEPROM? Im Datenblatt steht was von
internal Pull-down. Also falls das high nicht kommt, würden sie wie von
dir beschrieben sich als "0" angesprochen fühlen...

Grüße
Gast #57964
Lesenswert?

Hallo Boxenbauer,

>trotzdem antworten beide EEPROMs auf der gleichen Adresse (wenn ich
>sie einzeln betreibe), ganz so als würden die Bits ignoriert bzw.
>als 0 verstanden.

Ich habe das selbe Problem mit einem 24C04 von "ST".

Ich suche auch an einer Lösung !


Gruß

Fiffi
Gast #57966
Lesenswert?

http://www.mikrocontroller.net/forum/read-1-8541.html#8702

Auszug daraus:
Gewarnt sei an dieser Stelle vor EEPROMs 24C02/04/08, falls noch
andere
IIC-Bus ICs den Adressraum 0xA0 belegen (z.B. Uhr PCF8583). Einige
Hersteller beachten die A0-A2 Pins nicht, sodaß eines dieser Teile den
gesamten Adressraum 0xAX blockiert (Microchip, Infineon). Atmel, ST und
Rohm Teile funktionieren ordentlich. Dies nur nebenbei.
#57967
Lesenswert?

Du must Dir das richtige Datenblatt runterladen !

Es gibt Typen einiger Hersteller, die die Adeßleitungen nicht
auswerten. Es kommt also auf die genaue Typbezeichnung an.

Ich benutze die Atmel AT24C512 und da gehts laut Datenblatt, d.h. es
können 8 ICs angeschlossen werden.


Ansonsten nimm einfach einen separaten SDA-Pin für jeden, Software-I2C
ist auch nicht aufwendiger als Hardware-I2C.


Peter
Gast #57968
Lesenswert?

> Ansonsten nimm einfach einen separaten SDA-Pin für jeden,
> Software-I2C ist auch nicht aufwendiger als Hardware-I2C.

Interessant.  Wie implementierst Du den nötigen OC (bzw. OD)
Ausgangstreiber in Software?
Gast #57970
Lesenswert?

Hi,

@BB

>Natürlich fest auf 5V gelegt.
So natürlich ist das nicht, schliesslich ist es nicht total unüblich
dazu einen Widerstand zwischen VCC und Pin zu hängen. Wenn der
unglücklich dimensioniert ist, bildet er mit dem internen Pull-down
einen Spannungsteiler und das High ist vielleicht keins. Ist aber nicht
so wahrscheinlich, da der interne Pull-down nicht extrem niederohmig
sein wird.

Wird in dem Fall wohl so sein, wie Micheal schreibt.

Grüße
Gast #57971
Lesenswert?

hallo,

hatte dasselbe Problem auch schon (u.a. mit dem 24LC256 von microchip).
Peter hat recht, es ist von Hersteller zu Hersteller verschieden. Ich
hatte eine gute Hompage gesehen (japanisch oder so) mit einer Tabelle,
wo aufgelistet war, welche I2C-EEPROMs adressierbar sind und welche
nicht (URL weis ich nicht mehr).
Ich hatte mal massenweise die kleinen 24C01 (von Siemens, kein
Datenblatt auffindbar) und musste sie einzeln ansprechen können, ging
aber nicht, da nicht unterstützt. Bis ich das herausfand vergingen
Tage, da ich den Fehler in der Software suchte.
Meine Lösung war: mit Betriebsspannung schalten (über Ausgänge von
74HC574, bei mir angeschlossen über dekodierten Datenbus eines 8051).
Ist mit Sicherheit die schlechteste Lösung, aber funktioniert bis heute
einwandfrei, da die EEPROMS kaum Strom ziehen (beim Schreiben glaube
ich ca. 5 mA).
Alternative ist sicher die Lösung mit extra SDA-Leitung.

gruß, hoschi

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