Forum: Mikrocontroller und Digitale Elektronik 24LC1025 parallel zu anderen i2c blockiert den Bus??


von Andreas R. (df8oe)


Lesenswert?

Ich würde vor einer Fehlersuche gerne wissen, ob es problematisch ist, 
ein i2c-EEPROM 24LC1025 parallel zu einem i2c-GPIO, einem 
i2c-Temperatursensor und einem i2c-Frequenzsynthesizer (SI570) zu 
betreiben.

Unerwarteterweise bricht die Kommunikation zwischen dem Mikrokontroller 
und den drei anderen Devices zusammen, wenn ich den EEPROM mit an den 
Bus lege. Alle Devices sind 3.3V-Devices und die i2c-Geschwindigkeit 
beträgt 400KHz (das sollten alle können).

Ich hatte erwartet, dass der EEPROM solange ich ihn nicht anspreche, 
sozusagen "nicht da" ist und alles andere so abläuft wie bisher. 
Denkfehler??

Gruß
Andreas

von Falk B. (falk)


Lesenswert?

@Andreas Richter (df8oe)

>Ich würde vor einer Fehlersuche gerne wissen, ob es problematisch ist,
>ein i2c-EEPROM 24LC1025 parallel zu einem i2c-GPIO, einem
>i2c-Temperatursensor und einem i2c-Frequenzsynthesizer (SI570) zu
>betreiben.

Nein, wenn alle ICs verschiedene Adressen haben.

>Ich hatte erwartet, dass der EEPROM solange ich ihn nicht anspreche,
>sozusagen "nicht da" ist und alles andere so abläuft wie bisher.

Das tut er auch.

>Denkfehler??

Nein.

von Mitlesa (Gast)


Lesenswert?

Andreas R. schrieb:
> Ich hatte erwartet, dass der EEPROM solange ich ihn nicht anspreche,
> sozusagen "nicht da"

Wenn die Buslast nicht zu gross ist und das EEPROM nicht mit
anderen Busteilnehmern in der Adresse kollidiert, sollte das
kein Problem sein.

von Sascha (Gast)


Lesenswert?

Hallo Andreas,
ich habe in meiner ganzen Zeit als Entwickler fortlaufend Probleme mit 
I2C-BUS Bausteine erlebt. Z.B. die älteren 24L02 Bausteine haben einen 
Fehler, dass sie mit SDA und SCL den BUS nach Masse klemmen können. 
Somit geht keine Kommunikation mehr. Man kommt aus diesem Zustand nur 
noch mit abschalten der Versorgungsspannung raus. Was natürlich im 
einzelnen bei Dir schiefläuft kann ich auch nicht sagen, dazu müsstes du 
einen Logik Analyzer mit I2C-BUS Funktion haben. Bei 400KHz muss man 
schon sehr gut auf die Terminierung und Leitungsreflektionen achten.

Gruß Sascha

von Andreas R. (df8oe)


Lesenswert?

Danke für die Info.

Es dürfte also ein Hardwareproblem (Buslast) sein. Jetzt weiß ich, wo 
ich "meine Nase reinstecken sollte" :)

Gruß
Andreas

von Falk B. (falk)


Lesenswert?

@ Sascha (Gast)

>ich habe in meiner ganzen Zeit als Entwickler fortlaufend Probleme mit
>I2C-BUS Bausteine erlebt.

Die können viele Ursachen haben, manchmal auch die, welche vor der 
Platine sitzen.

> Z.B. die älteren 24L02 Bausteine haben einen
>Fehler, dass sie mit SDA und SCL den BUS nach Masse klemmen können.
>Somit geht keine Kommunikation mehr. Man kommt aus diesem Zustand nur
>noch mit abschalten der Versorgungsspannung raus.

Hmmm.

>einen Logik Analyzer mit I2C-BUS Funktion haben. Bei 400KHz muss man
>schon sehr gut auf die Terminierung und Leitungsreflektionen achten.

Unfug! I2C ist auch bei 400kHz so langsam, dass man das Thema 
Wellenwiderstand incl. Terminierung NICHT beachten muss. Man KANN es 
sogar NICHT umsetzen, weil die Pull-Up Widerstände viel zu schwach sind!

von i2c (Gast)


Lesenswert?

Wie sieht denn der Aufbau aus?
Wie lang sind die Leitungen?
Wie gut ist die Versorgung?
Gibts ein Bildchen für uns?

von Amateur (Gast)


Lesenswert?

Vorsicht: Bissiger Hund.

Irgendwie ist die I²C-Adresse nicht immer ganz klar. Manche rechnen von 
0 ... 127 und verschlucken sozusagen die letzte Null bzw. Eins. Manche 
gehen von einer definierten Richtung aus und rechnen somit von 0 ... 
256.
Eine Adresse von 1F könnte somit in der Praxis: 3E oder 3F sein.

von Andreas R. (df8oe)


Lesenswert?

Danke allen!

Ich werde jetzt erstmal das HW-Problem fixen und dann sehe ich weiter :)

Gruß
Andreas

von Lattice User (Gast)


Lesenswert?

Der 24LC1025 ist nicht 100% kompatibel zu den kleineren EEProms.

1. Er belegt 2 I2C Addressen
2. Der A2 Pin muss auf VCC, bei den kleinen werden oft alle Ax auf GND 
geklemmt oder offen gelassen.

Siehe z.B.
http://ww1.microchip.com/downloads/en/DeviceDoc/21941B.pdf

von derguteweka (Gast)


Lesenswert?

Moin,

In solchen Faellen ist es nicht die duemmste Idee, wenn man in die I2C 
Leitungen zu jedem Slave kleine Serien-Rs mit 10..100 Ohm reinbaut. Wenn 
dann der Bus klemmt, kann man mittels Scope und scharfem Hinsehen 
rauskriegen, welcher slave (wenns nicht der Master ist) mit welcher 
Leitung den Bus gerade nicht mehr loslassen mag. Die Serien-Rs daempfen 
auch irgendwelche komischen Signalverlaeufe, die durch den 
Nicht-Abschluss mit dem Wellenwiderstand potentiell auftreten 
koennten...

Gruss
WK

von Andreas R. (df8oe)


Lesenswert?

Das mit den zwei Adressen war/ist mir bekannt - die leicht abgewandelte 
Pinbelegung auch. Die Anschlüsse sind dementsprechend bereits 
verdrahtet. Ich denke, ich werde mir die Leitungsführung und die 
Ausführung der beiden Steuerleitungen mal genauer ansehen...

Gruß
Andreas

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.