Wenn ich 5V und 3,3V Logikpegel bidirektional verbinden möchte, was ist dazu am besten geeignet? Scheint da ja einige Chips zu geben, z.B. das hier:
was auch in dem GODIL-Modul von OHO-Elektronik verwendet wird. Hier habe ich eine Beschreibung gefunden:
Ich verstehe noch nicht ganz, was MNSW da drin in Figure 4 genau macht. Aber wenn ich das richtig verstehe, dann läuft das prinzipiell so ab: Auf beiden Seiten ist ein Pullup für die jeweilige Versorgungsspannung. Nun kann man eine Seite aktiv nach Low ziehen, wodurch dann die andere Seite auch nach Low gezogen wird. Läßt man den Eingang wieder loß, dann sorgt der Pullup dafür, daß der andere Anschluss wieder nach High geht, wobei die Speedup-Schaltung das ganze noch ein wenig beschleunigt.
Dabei stellt sich mir die Frage, was passiert, wenn während die Speedup-Schaltung den Switch geschaltet hat, der andere Anschluss nach Low gezogen wird. Das würde dann doch zu einem Kurzschluß führen? Auch wird da eine gewisse Latenzzeit da sein, was die Geschwindigkeit begrenzt, der Stromverbrauch wird durch den Pullup größer sein, als bei "normalen" Ausgängen und man kann keine TTL-Eingänge damit schalten (wegen dem hohen Pullup). Sehe ich das richtig?
Sollte man also besser immer ICs mit manuell schaltbaren Richtungen verwenden, wenn man die Wahl hat? Ich bin ja aktuell noch mein universelles PIC-IO Modul am entwerfen. Meine Idee wäre, da einfach ein CPLD einzusetzen, wo man dann die Richtung von jedem Pin individuell schalten kann (hoffe ich mal, bei FPGAs geht das zumindest) und bei dem der Pin als Eingang 5V tolerant ist und 3,3V liefert (also z.B. XC9572). Angesteuert z.B. über SPI, um Pins zu sparen. Alle Anschlüsse gehen aber auch auf den CPLD, sodaß der direkt als programmierbarer schneller Pegelkonverter arbeiten kann, eine anwendungsspezifische passende Konfiguration vorausgesetzt.