Forum: Mikrocontroller und Digitale Elektronik Bidirektionaler Open-Collector-Bus Pegelwandler für I2C


von Moritz G. (mbydq2)


Angehängte Dateien:

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 ]

von Torben K. (tokuhila)


Lesenswert?


von Sascha (Gast)


Lesenswert?

Noch einfacher:
Beitrag "1 Transitor + 2 Widerstände = Verwirrung"

Paar Beiträge runterscrollen.

von Moritz G. (mbydq2)


Lesenswert?


von Moritz G. (mbydq2)


Lesenswert?

Sascha schrieb:
> Noch einfacher:
> Beitrag "1 Transitor + 2 Widerstände = Verwirrung"

Nicht wirklich zum Thema aber ein interessanter Thread.
Da in Basisschaltung die Stromverstärkung eh 1 ist macht es nicht viel 
aus wenn man einen BJT weg lässt.

von Joe F. (easylife)


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.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Verstehe ich auch nicht.

von Moritz G. (mbydq2)


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.

von Michael U. (amiga)


Lesenswert?

Hallo,

naja... zumindest hat I2C bei weitem nicht soviele stabile Zustände wie 
Deine Schaltung Bauteile.

Das mit dem Aufgeräumt haben stimmt schon, sagt mein Enkel auch immer 
wenn er fertig ist...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Moritz G. (mbydq2)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?


von Moritz G. (mbydq2)


Lesenswert?

Rufus Τ. F. schrieb:
> Was spricht dagegen, einen PCA9512 zu verwenden?

Keine Ahnung, wen und warum fragen sie denn?
Ich würde mutmaßen, dass es das Selbe ist, was auch noch gegen andere 
PCA951x oder welche von anderen Firmen spricht.
Das ist aber nicht das Thema hier.

von Joe F. (easylife)


Lesenswert?

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.

von Moritz G. (mbydq2)


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.

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.