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?
Was machen die Pegelwandler wenn man das Kabel wieder heraus nimmt?
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.
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...
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
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.
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.
Das hört sich nach HF an, wie U.M. vermutete. Kabel verdrillt? Blockkondensatoren?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.