Forum: Mikrocontroller und Digitale Elektronik I²C-Pegelwandler zieht niedrige Seite hoch


von André H. (andrekr)


Angehängte Dateien:

Lesenswert?

Hi,

ich verwende den bekannten I²C-Pegelwandler aus der Appnote von Philips 
(z.B. http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf).

Meine 3V-Seite wird von einem normalen LP2950-3.0 Spannungsregler 
versorgt und ist relativ schwach belastet (ein paar 74er, die nicht viel 
zu tun haben).

Mein Problem ist nun, daß die 5V-Seite die 3V-Seite auf 5V zieht.

Ich habe mal die 3V-Seite belastet und so ermittelt, daß der 
Pegelwandler zwischen den Seiten einen Widerstand von nur 2,7 kOhm 
bietet. Ich finde das relativ wenig und frage mich:

1. Muß das so oder hab ich was falschgemacht?

2. Geht mir irgendwas auf der 3V-Seite kaputt? Ich habe da diverse ICs 
die laut Datenblatt ausdrücklich nicht 5V-tolerant sind und nicht zu 
vergessen den Spannungsregler.

Grüße,
André

von Klaus D. (kolisson)


Lesenswert?

Hast vielleicht bei den FET S und D vertauscht ?

von André H. (andrekr)


Lesenswert?

Klaus De lisson schrieb:
> Hast vielleicht bei den FET S und D vertauscht ?

Nee, dann müßte die Library vom Target schon falsch sein, was sie aber 
nicht ist, hab ich eben nochmal überprüft.
Außerdem wäre dann die Isolation zwischen den beiden Seiten vermutlich 
nochmal deutlich schlechter... wenn ich den 3V-Kreis mit etwa 5mA 
belaste, stimmt ja die Spannung und der 5V-Kreis bleibt dabei unberührt.

von Klaus D. (kolisson)


Lesenswert?

nun..  es war ja nur spontane Idee.
Andererseits frage ich mich, ob man die Schaltung überhaupt benötigt.
Da I2C ja mit Pullups arbeitet und nicht aktiv Spannung auf die Leitung 
setzt,
würde ich einfach die Pullups gegen 3,3 laufen lassen.
Auch das 5 V  System wird das dann noch erkennen.

Gruss Klaus

p.s.
und bei deiner Schaltung dürfte die UGS Threshold essentiell sein.
.. hier also die Frage : "richtige Mosfet ?)

von André H. (andrekr)


Lesenswert?

Den Pegelwandler hab ich eingesetzt, weil ich mir erhoffte, daß die doch 
recht flache steigende Flanke dann steiler ist und daß der Bus robuster 
gegen Störungen wird.
Und der BSN20 wird in der genannten Appnote ausdrücklich für diesen 
Zweck empfohlen.

von Klaus D. (kolisson)


Lesenswert?

Hmmmm , meine Antwort soll aussehen, wie ein Honigmaul.
Ich hoffe, dass ein Hmmmm dazu reicht.

.. aber
ist es nicht so, dass der I2C doch ein recht einfaches und gemütliches
System ist, welches sich sogar darüber freuen könnte,
wenn die Flanken nicht zu steil sind.

Ich weiss ja jetzt auch nicht , ob du dein Project für dich,
oder für eine kommerzielle Geschichte verwenden willst.

Im privaten Bereich würde ich halt von den Pegelwandlern absehen,
da hier nur zusätzliche fehlerquellen entstehen können.

Dein Text war ja :
"Mein Problem ist nun, daß die 5V-Seite die 3V-Seite auf 5V zieht"

Wie hast du das denn gemessen ?
Wenn das Transmission Gate aktiv wird, muss ja zwangsläufig mal
temporör ne Verbindung entstehen

gruss Klaus

von Paul S. (paul_s)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe auch Probleme mit genau dieser Schaltung. Als FET haben wir 
einen 2N7002.
Mein Problem: gelegentlich kommt das ACK von der 3V-Seite (Slave, grün) 
nicht auf die 5V-Seite (Master, blau) durch. Meistens klappt es aber.

Ich vermute, dass der Prozessor da seltsame Dinge tut, wenn die 
Spannungen auf SCK und SDA nicht ganz eindeutig sind.
Zunächst hatte ich auch das Problem, dass der SCK-Takt immer niedriger 
war als laut Teilerfaktor. Das lag daran, dass der Prozessor den 
Entstör-C an SCK (330pF) als clock-stretching interpretiert hat.
Das wurde durch Entfernung der Cs besser, richtig rund läuft die 
Schnittstelle aber erst, seitdem ich den Pegelwandler entfernt habe.

Mit nur einem Pullup gegen 3,3V kommt aber kein einziger Takt aus dem 
Prozessor (Fujitsu MB96340-Serie), wahrscheinlich ist das für den 
Prozessor wieder dauer-clock-streching.
Wenn zusätzlich der interne Pullup (ca. 50k) vom Prozessor an ist, 
ergibt sich High = 3,5 V, was offenbar für beide Seiten o.k. ist.

Gruß

Paul

von Paul S. (paul_s)


Lesenswert?

Nachtrag:

die 3,3V werden bei mir nicht hochgezogen!

Paul

von WilliWillsWissen (Gast)


Lesenswert?

Hallo,

die Firma Sparkfun

www.sparkfun.com

bietet einen Logic Level Converter sku: BOB-08745 an. Hiew wird ein 
BSS138 eingesetzt. Schreib doch mal die Leute an, welche Erfahrungen die 
haben ! Die sind hilfsbereit und antworten gerne. Das Board verwenden 
wir in Zusammenhang mit einer I2C Real-Time-Clock und es geht 
fehlerfrei.

Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was spricht dagegen, einen fertigen I²C-Pegelwandlerbaustein wie den 
PCA9517
(http://www.nxp.com/#/pip/pip=[pip=PCA9517AD]|pp=[t=pip,i=PCA9517AD%5D) 
zu verwenden?

von André H. (andrekr)


Lesenswert?

OMG, epic fail! Habe gerade festgestellt, daß ich ins falsche Fach 
gelangt hab und überall BC857 bestückt habe, wo eigentlich BSN20 sein 
sollten.

Es könnte allerdings sein, daß ich ganz am Anfang die richtigen bestückt 
hatte (die dann aber nicht funktionierten). Ich weiß es nicht, denn ich 
hab keine BSN20 mehr und hab nun BSH108 genommen (die eh bessere Werte 
haben). Jetzt funktionierts super.

Warum es mit den bipolaren PNP tatsächlich einigermaßen funktioniert 
hat, da kann jemand anderes drüber nachdenken. ;) Gute Nacht.

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.