Bidirektionaler Open-Collector-Bus Pegelwandler für I2C

OP #4513443
Lesenswert?

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:
#4513537
Lesenswert?

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 #4513706
Lesenswert?

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 #4514236
Lesenswert?

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.
OP #4514801
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren