www.mikrocontroller.net

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


Autor: André H. (andrekr)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich verwende den bekannten I²C-Pegelwandler aus der Appnote von Philips 
(z.B. http://ics.nxp.com/support/documents/interface/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é

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast vielleicht bei den FET S und D vertauscht ?

Autor: André H. (andrekr)
Datum:

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

Autor: Klaus De lisson (kolisson)
Datum:

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

Autor: André H. (andrekr)
Datum:

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

Autor: Klaus De lisson (kolisson)
Datum:

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

Autor: Paul S. (paul_s)
Datum:
Angehängte Dateien:

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

Autor: Paul S. (paul_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

die 3,3V werden bei mir nicht hochgezogen!

Paul

Autor: WilliWillsWissen (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: André H. (andrekr)
Datum:

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

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.