Forum: Mikrocontroller und Digitale Elektronik Pegelwandlung 5V Open Collector Bus <-> 3,3V


von André H. (andrekr)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte einen MSP430 an PS/2 hängen (PC-Tastatur simulieren). PS/2 
ist ein Open-Collector-Bus mit ca. 5V. Es gibt eine Takt- und eine 
Datenleitung, am µC wollte ich je einen Pin als Eingang und einen als 
Ausgang verwenden.

Der MSP430 läuft mit 3,3V und ist nicht 5V-tolerant. Einfach einen 
Spannungsteiler kann ich nicht nehmen, weil der den Bus runterziehen 
würde, richtig?

Ich habe mir also einen Pegelwandler ausgedacht. (Erstes Bild)

Dann habe ich noch diese AN gefunden, die sich mit dem Mischen von 
I²C-Bussen mit 3,3 und 5V beschäftigt, was ja im Prinzip dasselbe ist:
http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf

Dementsprechend habe ich mir noch eine andere Lösung ausgedacht. 
(Zweites Bild)

Welchen von beiden soll ich nun nehmen oder lieber was ganz anderes?

Irgendwo stand noch, das ginge auch mit Transistoren. Rein 
interesshalber, wie sähe das aus? Einfach austauschen? Wenn die 5V-Seite 
(PS/2) low ist, wird ja die 3,3V-Seite durch die Bodydiode vom FET 
runtergezogen - geht das auch beim Transistor?

Grüße,
André

EDIT: Ja, PS2_CLOCK_READ und PS2_DATA_READ sind vertauscht.

von wt (Gast)


Lesenswert?

warum setzt Du nicht einen kleinen Controller ein, der PS2 gleich kann 
und dir zusätzlich PS2 Protokoll händelt. Die Daten kannst du dann in 
ruhe zum großen Käffer übertragen

von ... (Gast)


Lesenswert?

André H. schrieb:
> PS/2
>
> ist ein Open-Collector-Bus mit ca. 5V.

Genau deshalb brauchst du auch noch eine 5V Spannungsquelle.

von ... (Gast)


Angehängte Dateien:

Lesenswert?

Ich würde dir diese Schaltung empfehlen.

von André H. (andrekr)


Angehängte Dateien:

Lesenswert?

wt schrieb:
> warum setzt Du nicht einen kleinen Controller ein, der PS2 gleich kann
> und dir zusätzlich PS2 Protokoll händelt.

Oh, so etwas gibts? Ist allerdings die Frage, was mehr Aufwand ist. Das 
Protokoll im MSP430 zu implementieren (zumal ich mir evtl. die 
Initialisierung sparen werde, weil ne Tastatur normalerweise auch noch 
mit dran hängt (Keyboard Wedge)) oder solch einen Controller zu finden 
und sich damit zu beschäftigen.


... schrieb:
> Genau deshalb brauchst du auch noch eine 5V Spannungsquelle.

Die ist im PC. Ich bin außerdem mal davon ausgegangen 
(http://www.computer-engineering.org/ps2protocol/ war da nicht so ganz 
eindeutig), daß die Pullups ebenfalls im PC sind. Im Anhang mal etwas 
mehr Schaltplan, soweit fertiggestellt.


... schrieb:
> Ich würde dir diese Schaltung empfehlen.

Danke, aber die wollte ich vermeiden, denn ich müßte sie bestellen. 
MOSFETs, 74HC4050 und Transistoren hab ich alles da.

von Andreas F. (aferber)


Lesenswert?

André H. schrieb:
> Danke, aber die wollte ich vermeiden, denn ich müßte sie bestellen.
> MOSFETs, 74HC4050 und Transistoren hab ich alles da.

Schau mal hier rein: 
http://www.standardics.philips.com/support/documents/i2c/pdf/an97055.pdf

Ist zwar eigentlich für I2C, aber das ist ja auch ein Open 
Collector-Bus. Benötigt einen N-MOSFET pro Leitung, und funktioniert 
bidirektional ohne Richtungsumschaltung.

Andreas

von André H. (andrekr)


Lesenswert?

Ähm, das ist doch genau die Appnote, die ich auch schon verlinkt hatte 
und auf die sich meine Fragen bezogen. ;)

von Andreas F. (aferber)


Lesenswert?

André H. schrieb:
> Ähm, das ist doch genau die Appnote, die ich auch schon verlinkt hatte
> und auf die sich meine Fragen bezogen. ;)

Hmm, ja, übersehen ;-) Aber dann ist ja auch alles klar, nimm Variante 2 
aus deinem ursprünglichen Post, und gut ist. Open Collector ist Open 
Collector. Der Pullup auf der 5V-Seite befindet sich ja schon im 
PS/2-Host, den brauchst (bzw. darfst) du also auf deiner Seite nicht 
(und ist in deiner Schaltung ja auch nicht drin, passt also).

Zur Frage ob man das auch mit Bipolartransistoren machen kann: ja, kann 
man, aber nicht mit allen. Siehe
http://www.patentstorm.us/patents/6847230/claims.html

Andreas

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.