mikrocontroller.net

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


Autor: André H. (andrekr)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...

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.

Autor: wt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ... (Gast)
Datum:

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

Genau deshalb brauchst du auch noch eine 5V Spannungsquelle.

Autor: ... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde dir diese Schaltung empfehlen.

Autor: André H. (andrekr)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht 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/documen...

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

Autor: André H. (andrekr)
Datum:

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

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.