Forum: Mikrocontroller und Digitale Elektronik I2C EEPROM nicht kaskadierbar


von Boxenbauer (Gast)


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

von Thomas Burkhardt (Gast)


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

von Fiffi (Gast)


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

von Boxenbauer (Gast)


Lesenswert?

Natürlich fest auf 5V gelegt.

von Michael (Gast)


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.

von Peter D. (peda)


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

von Joerg Wunsch (Gast)


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?

von Peter D. (peda)


Lesenswert?

"Wie implementierst Du den nötigen OC (bzw. OD)
Ausgangstreiber in Software?"


Der PORTx-Pin bleibt ständig 0 und nur zum Senden eines 0-Bits wird der
DDRx-Pin auf 1 gesetzt.


Peter

von Thomas Burkhardt (Gast)


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

von hoschi (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.