mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C EEPROM nicht kaskadierbar


Autor: Boxenbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Boxenbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich fest auf 5V gelegt.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: hoschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.