Forum: Mikrocontroller und Digitale Elektronik Pegelwandler PCA9306 sterben


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von DCDC (Gast)


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


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

befinden sich an den Leitungsenden Freilaufdioden?

MfG

von karadur (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Was machen die Pegelwandler wenn man das Kabel wieder heraus nimmt?

von Günter N. (turtle64)


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


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


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


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


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


Bewertung
0 lesenswert
nicht lesenswert
Das hört sich nach HF an, wie U.M. vermutete.

Kabel verdrillt? Blockkondensatoren?

von Klaus (Gast)


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


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

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.