Forum: Mikrocontroller und Digitale Elektronik Pegelwandler PCA9306 sterben


von DCDC (Gast)


Lesenswert?

Hallo, ich habe Platinen mit Pegelwandler PCA9306 von 3.3V auf 1.8V mit 
I2C-Bus. Zuerst hatte ich da I2C-Sensoren direkt an die Platine 
angeschlossen - alles ok.

Dann habe ich die Sensoren mit einer etwa 1.5m langen Zuleitung 
angeschlossen. Resultat: 6 von 9 Pegelwandlern sind defekt, und zwar 
gehen die Signale SDA2 und/oder SCL2 auf der 3.3V-Seite entweder nicht 
mehr auf 0 oder nicht mehr auf 3.3V, werden also irgendwie vom PCA9306 
"festgehalten".

Ist 1.5m zu lang?

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

befinden sich an den Leitungsenden Freilaufdioden?

MfG

von karadur (Gast)


Lesenswert?

Was machen die Pegelwandler wenn man das Kabel wieder heraus nimmt?

von Günter N. (turtle64)


Lesenswert?

Hallo roehrenvorheizer,

nein, die Schaltung ist genau wie in figure 11 im Datenblatt. Alle 
Pullups sind 10kOhm und damit größer als in den folgenden Tabellen 
angegeben. Ein Mikrocontrollerausgang soll SDA2 und SCL2 auf 0V ziehen. 
Hat ja auch geklappt, bis das mit den langen Leitungen kam.

Wie der Sensor intern beschaltet ist, weiß ich nicht.

Bustakt ist 50kHz.

Beitrag #5428852 wurde vom Autor gelöscht.
von DCDC (Gast)


Lesenswert?

karadur schrieb:
> Was machen die Pegelwandler wenn man das Kabel wieder heraus nimmt?

Hab das mal bei einem probiert, der scheint sich dann wieder normal zu
verhalten. Ich binde jetzt (d.h. später am Abend) mal einen Sensor
wieder kurz an und berichte dann nochmal...

von U. M. (oeletronika)


Lesenswert?

Hallo,
> DCDC schrieb:
> Hallo, ich habe Platinen mit Pegelwandler PCA9306 von 3.3V auf 1.8V mit
> I2C-Bus.
Warum verlinkst du nicht auf das Datenblatt, wenn du zu einem konkreten 
Chip eine Frage hast?
Welche Baudraten verwendest du?

> Zuerst hatte ich da I2C-Sensoren direkt an die Platine
> angeschlossen - alles ok.
> Dann habe ich die Sensoren mit einer etwa 1.5m langen Zuleitung
> angeschlossen. Resultat: 6 von 9 Pegelwandlern sind defekt, und zwar
> gehen die Signale SDA2 und/oder SCL2 auf der 3.3V-Seite entweder nicht
> mehr auf 0 oder nicht mehr auf 3.3V, werden also irgendwie vom PCA9306
> "festgehalten".
Wie hast du das festgestellt (mit Oszi gesehen)? Ist das tatsächlich ein 
statischer Effekt, oder zeigt dir das nur deine Software an?
> Ist 1.5m zu lang?
Nach dem Datenblatt:
http://www.ti.com/lit/ds/symlink/pca9306.pdf
sind diese Treiber extrem "giftig". Da werden Flankengeschwindigkeiten 
im Sub-ns-Bereich angegeben. Das entspricht Bandbreiten im Bereich von 
GHz (Wellenlänge von paar 10cm)!
Damit ist 1,5m Leitung schon eine "sehr lange Leitung" (länger als die 
Wellenlänge). Da bekommst du ganz heftige HF-Effekte, wenn die Leitungen 
nicht HF-mäßig sauber terminiert sind. Die Leitung ist außerdem eine 
gute Antenne und wird heftig Störspannungen abstrahlen.
I²C braucht normal nicht so hohe Frequenzen, deshalb empfehle ich eine 
massive Bandbreitenbegrenzung auf die nax. notwendige Bandbreite mit 
RC-Gliedern und EMI-Ferriten.
Gruß Öletronika

von DCDC (Gast)


Lesenswert?

Das Datenblatt ist doch in meinem ersten Beitrag automatisch verlinkt.

Baudrate ist ca. 50kbps, das ist für I2C ziemlich wenig.

Gemessen wurde mit einem Oszi.

Der Effekt tritt auch schon auf, wenn ich mit dem Mikrocontroller mit 
nur 1Hz SDA und SCL toggle. Beide haben ja je einen 10kOhm-Pullup nach 
3.3V, der Mikrocontroller schafft es bei angeschlossener Leitung nicht, 
den Pegel unter etwa 1V zu drücken, damit passiert auf der 1.8V-Seite 
des PCA9306 gar nichts mehr, SDA und SCL bleiben da auf 1.8V.

von DCDC (Gast)


Lesenswert?

Jetzt habe ich wieder einen Sensor mit einem kurzen Kabel angelötet, 
alles funktioniert wieder.
Die Ursache würde ich aber trotzdem gerne noch verstehen.

von karadur (Gast)


Lesenswert?

Das hört sich nach HF an, wie U.M. vermutete.

Kabel verdrillt? Blockkondensatoren?

von Klaus (Gast)


Lesenswert?

DCDC schrieb:
> Jetzt habe ich wieder einen Sensor mit einem kurzen Kabel angelötet,
> alles funktioniert wieder.

Das hat häufig mit der Länge des Kabels nichts zu tun. Einige Meter 
sind, auch wenn hier immer wieder fälschlicherweise das Gegenteil 
behauptet wird, kein wirkliches Problem, auch nicht bei 100kHz und mehr. 
Das Problem ist Übersprechen, Cross Talk.

U. M. schrieb:
> sind diese Treiber extrem "giftig". Da werden Flankengeschwindigkeiten
> im Sub-ns-Bereich angegeben.

Je "schärfer" die Flanken sind, desto stärker koppelt SCL, das immer 
schaltet, auf SDA über. Man sollte das Kabel immer so belegen, das SCL 
und SDA mit einer der Versorgungen zusammen läuft. Wobei es keine Rolle 
spielt, welche Versorgung es ist, Vcc oder GND. Bei einem UTP-Kabel also 
SCL und GND (Vcc) in einem Pärchen, SDA und Vcc (GND) in einem anderen. 
Bei einem Flachkabel wären das SCL, GND, SDA und dann Vcc. Viele 
Breakout-Boards sind anders belegt.

MfG Klaus

von Peter D. (peda)


Lesenswert?

DCDC schrieb:
> 6 von 9 Pegelwandlern sind defekt

Wozu 9 Wandler?

Typisch hat man eine 3,3V- und eine 1,8V-Seite und dazwischen genau 
einen Pegelwandler.

I2C ist nicht Hot-Plug fähig. Du brauchst mindestens voreilende 
Steckerkontakte für VCC und GND, wenn Du unter Spannung stecken willst. 
Und in der Regel muß der Master dann erstmal sich und alle Slaves 
resetten.

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.