Bidirektionaler Open-Collector-Bus Pegelwandler für I2C

OP #4513443
Auf der Suche nach Methoden der BIdirektionalen Pull-Down-Bus 
Pegelwandlung für I²C habe ich verschiedene Lösungen im Internet 
gefunden und diese Methode erarbeitet (siehe Bilder)
Die Schaltung beruht auf RTL und nutzt zwei verschiedene BJTs um das 
Timing zu garantieren. Die Open-Collector Ausgänge (ganz Außen) müssen 
Langsamer als die Sperrtransistoren (Innen) sein.
Bei guter Auslegung funktioniert die Schaltung bis 400kb/s. Bei falscher 
Auslegung kommt es zur Oszillation. Die Widerstände an den Basen sind 
nötig um diese schnell zu entladen und vollständig zu sperren. Die 
Dioden sind verzichtbar.
Das Prinzip der Schaltung ist auch anders realisierbar z.B. mit MOSFETs 
und könnte dann für höhere Geschwindigkeiten geeignet sein.
Die ICs sollten nach dem gleichen Prinzip funktionieren, nur eben mit 
anderen Bauteilen.
Gleiches Thema:
Beitrag "I2C 3.3V und 5V Device"
Beitrag "I2C von 5 auf 3,3V drosseln (Pegelwandler,Voltregulator;Dioden.)"
[ prior art ]
Angehängte Dateien:
Das Übereinanderschieben von Bauteilen, ihren Beschriftungen, und 
verlegen von Leitungen durch Bauteilsymbole hindurch macht deinen 
Stromlaufplan zu einem wahren Kunstwerk.
Ich könnte stundenlang drauf starren und die Schönheit bewundern.
Die beabsichtigte Funktion der Schaltung verdeutlicht sich mir dadurch 
allerdings nicht.
OP
Joe F. schrieb:
> Das Übereinanderschieben von Bauteilen, ihren Beschriftungen, und
> verlegen von Leitungen durch Bauteilsymbole hindurch
[...]
> Die beabsichtigte Funktion der Schaltung verdeutlicht sich mir dadurch
> allerdings nicht.

Daher habe ich mir extra die Mühe gemacht eine abstrahierte Version zu 
zeichnen. Ich habe auch den Schaltplan aufgeräumt bevor ich das Bild 
davon machte.
Ohne gute Erklärung versteht man so eine Schaltung nur, wenn man sie 
systematisch im Kopf durch simuliert und alle stabilen Zustände notiert.
OP
Stefan U. schrieb:
> Verstehe ich auch nicht.

Die Schaltung ist symmetrisch. Von außen nach innen: Die äußeren 
Transistoren sind die Open Collector Ausgänge. Die nach innen nächsten 
sind die "lese und invertiere" Transistoren. Die inneren verhindern, 
dass die Schaltung sich selbst ließt.

Die Schaltung ist offensichtlich keine preiswerte Lösung für wenige ICs, 
sondern nur dann interessant, wenn viele ICs unterschiedlicher Spannung 
an einem Bus hängen. In 99% der Fälle dürften die Lösungen mit FET oder 
BJT als Spannungsbegrenzer reichen. BJTs mit eingebauten Widerständen 
gibt es schon für unter zwei Cent. In der Massenfertigung oder 
integriert wäre die Schaltung also nicht teuer.
Was bei I2C auch zu beachten ist: egal welche Seite das Signal auf Low 
zieht, es muss auf beiden Seiten (3.3V und 5V) ein Low auf der Leitung 
zu sehen sein.
Dies ist z.B. beim Clock-Stretching wichtig.
Deine Schaltung behandelt diesen Zustand nicht korrekt.
OP
Joe F. schrieb:
> Dies ist z.B. beim Clock-Stretching wichtig.
> Deine Schaltung behandelt diesen Zustand nicht korrekt.

Stimmt !
Das mit dem Clock-Stretching ist mir gar nicht in den Sinn gekommen.
Prinzipiell sollte es funktionieren, aber die Schaltung braucht zu lange 
um zu merken, dass die andere Seite von Außen und nicht von Innen 
herunter-gezogen wird. In der Simulation dauert es 1,6µs bis die 
Schaltung auf der Senderseite den Pegel korrekt senkt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.