PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ports bidirektional benutzen



crowdy
17.11.2005, 17:40
Guten Tag meine Damen und Herren!!

Mein Problem: Ich habe zwei Ports einer ist ein Ausgang der andere ein Eingang, nun möchte ich aus diesen zwei Ports "einen" machen an dem ich "high" und "low" anlegen und auch den Zusatand der Leitung einlesen kann.
Wenn ich "low" ausgebe liegt an dem Ausgang eine Spannung von ungefähr 0,2V bei "high" sind es etwas weniger als 5V.
An dem Eingang liegt wenn ich nichts anlege die Spannung bei 3,3V. Ziel ist es eine bidirektionale Leitung zu haben die ich nicht zwischen in- und output hin- und herschalten muss.
Letzendlich möchte ich an diesen Port dann die SDL Leitung eines I²C Buses legen.
Also ich bräuchte ne Schaltung, die ich versteh, um mich daran dann zu orientieren.

Wisst ihr was ich meine, bin noch etwas grün hinter den Ohren und hab noch nie ne eigene Schaltung entworfen.

Bin für jede Antwort dankbar!

PICture
17.11.2005, 18:02
Hallo crowdy!
Das scheint ohne Umschaltung unmöglich zu sein.
MfG

crowdy
17.11.2005, 21:36
Echt?? hmm wie könnte denn eine möglichst einfache Umschaltung aussehen?
Wäre es am besten das im Programm zu machen oder gibt es auch eine elektrotechnische Möglichkeit?

Vielen Dank für deine Antwort

SprinterSB
17.11.2005, 22:19
Ports? Was für Ports? An einem Controller? Welcher Controller?

An den Port nen Pullup, wie's gehört für I²C.

0 ausgeben --> Port auf LOW (push-pull)
1 ausgeben --> Port auf high-Z (zB als IN konfigurieren)

Sandro
17.11.2005, 23:19
Möglicherweise ist diese Schaltung etwas für dich.
R2 ist der, bei I2C onehin vorgeschriebene, Pullup.
Durch den Transistor erhälst du praktisch einen invertierenden Open
Collector Ausgang. Wirklich bidirektional wird die Leitung dadurch aber
nicht. Um Daten vom Slave lesen zu können darf der Transistor nicht
durchgesteuert sein!
Sinn macht die Schaltung aber wirklich nur wenn du nicht die Möglichkeit
hast die Datenrichtung des Ports umzuschalten.