Mal wieder I2C

Oct 14, 2009 33 Replies

An einem I2C-Master hängen drei Slaves mit den I2C-Adressen



1: 0x1d, 2: 0x1e, 3: 0x38

An dem "professionellen" I2C-Master kann ich mit den ersten zwei Slaves kommunizieren, mit dem dritten nicht. Der gesamte Bus ist ca. 30cm lang. Das Signal sieht so aus:

formatting link
kleinere Pull-Ups ändern nichts.



Interessanterweise spricht ein primitiver I2C-Master (LPT, Diode, Widerstand) mit Slave 2 und drei, aber nicht mit Slave 1. Hier ist der Bus ca. 2m lang.



In beiden Fällen ist die Taktfrequenz um 100kHz. Hat jemand eine Erklärung dafür?



Falk


Hallo,

die Signale haben ca. 2V Amplitude... welcher Art sind denn die Eingänge? Sind die Flanken steil genug?

Gruß, Bernhard

Kann es sein das du aufgrund irgendeines Programmierfehlers keinen OpenDrainAusgang an deinem Master hast?

Olaf

Hi,

Könnte es sein, dass da ein Ausgang gegen einen anderen Ausgang arbeitet?

Michael

Bernhard Deny schrieb:

Ja. Das sollte aber VDD, 3,3V sein.

Das sind die I2C-Slaves.

Für 2/3 wohl schon ;-)

Falk

Den Master (NEC 78F0034) kann ich nicht soweit konfigurieren. Im Datenblatt sind die Pins aber mir I2C SDA/SCL bezeichnet.

Falk

Michael Koch schrieb:

Natürlich, ist ja I2C ;-) Im Ernst, alle Ausgänge sind open Collector, bzw. sollten das sein.

Falk

Falk Willberg schrieb:

Dann miss doch mal den Strom auf dem Bus, an verschiedenen Stellen.

Gruß Dieter

welche Slaves hast du? Sind alle 3.0V tauglich? Ich frage ja nur, mein Student hat auch mal so was gebastelt, aber ein Teil hatte 5V I2C. Er hat mindestens 2 Wochen herumgewurstelt, manchmal hat es nämlich noch funktioniert. Nachdem wir dann ein Zwischengesicht aus 2 MOS-Transistoren zwischengebaut haben, läuft alles sehr gut.

Waldemar

Dieter Wiedmann schrieb:

Den drei Slaves traue ich, an dem primitiven Interface geht die Spannung brav auf 3,3V hoch.

Ich werde mal den Hersteller des Masters fragen.

Falk

Dann nimmt doch einfach mal das grosse Messer und klemm solange alles vom Bus bis die Spannung wieder stimmt.

Olaf

Da stimmt was nicht. Miss mal die Versorgungsspannung aller Beteiligten ICs. Was verstehst du unter kleinem Pullup? ich denk an 1K. Kannst du die einzelnen ICs ziehen?

MFG Gernot

Jein... 2 und 3 sind 3V-tauglich, 1 hat 1,8V DVDD. Das Datenblatt gibt allerdings keine Hinweise auf die erlaubten Pegel auf dem Bus. (Die I²C-Spezifikation verweist auf das "component data sheet")...

Falk

Ich würde mal auf ESD-Schottky Schutzdiode gegen plus an den Eingängen vom

1,8V Device tippen und schwuppdiwupp, werden aus den 3,3V die von dir gemessenen 2V. Das macht bestimmt Probleme bei der Erkennung, wenn der 3,3V Master da höhere Pegel erwartet. Bei deinem Scope-Bild sieht auch der Low-Pegel merkwürdig aus, aber da habe ich jetzt keine Idee, woran das liegen könnte, vielleicht schlechte Masse?
Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de

würde ich auch vermuten. Erstmal 1 abklemmen und schauen ob der Master mit

2&3 redet. Wenn ja dann 1 über Pegelwandler 3.3 1.8 anschliessen.

Waldemar

Eher Substratdioden. Die liegen bei den ueblichen 600mV aber es kann etwas uebles passieren: Der Pull-up zieht die Versorgung des 1.8V Devices ueber die Substratdiode langsam hoch und laedt dessen Abblock-C auf. Es sei denn die O/C Ports sind richtig gemacht und zumindest

3.3V-tolerant. Bei I2C Chips habe ich einige Male "sub-optimale" Varianten gehabt, die den Bus festhielten und nur durch Aus- und wieder Einschalten der Versorgung aus dem Koma rauskamen. Seitdem traue ich den Dingern nicht mehr so dolle und mache alles wenn moeglich in SPI.

Irgendwie sieht diese Rampe beim ersten Takt ziemlich verdaechtig aus.

Gruesse, Joerg http://www.analogconsultants.com/ "gmail" domain blocked because of excessive spam. Use another domain or send PM.

Verstehe ich nicht, wie sollte das gehen? Der 1,8V Spannungsregler, der ja auch am Abblock-C hängt, müsste das doch ausregeln, oder?

Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de

...

Weder noch: Hier das Bild ganz ohne Slaves. Ein 2,2k Pullup ändert nichts:

formatting link

Ich fände es auch reichlich frech, wenn der Slave mit der gerinsten Betriebsspannung entscheiden dürfte, was auf dem Bus passiert. Andererseits ist Vh mit >0,7V spezifiziert, da brennt so schnell nix an.

Falk

...

Weder noch: Hier das Bild ganz ohne Slaves. Ein 2,2k Pullup ändert nichts:

formatting link

Ich fände es auch reichlich frech, wenn der Slave mit der gerinsten Betriebsspannung entscheiden dürfte, was auf dem Bus passiert. Andererseits ist Vh mit >0,7V spezifiziert, da brennt so schnell nix an.

Falk

Das Weller-Messer brauchte ich nicht. Hier ganz ohne Slaves:

formatting link

Falk

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required