Offene Kollektoren & 74LVC245

Ich versuche, eine PS/2-Tastatur für ein Spielzeug an ein MSP430 anzuschließen. Die PS/2-Tastatur wird mit 5 V betrieben, der MSP430-Mikrocontroller jedoch mit 3,3 V. Also habe ich einen 74LVC245 Level Shifter, um zwischen den beiden umzuwandeln.

Jetzt habe ich das, aber ich habe entdeckt, dass die PS/2-Tastaturschnittstelle Open-Collector-Signale verwendet, so dass sie von beiden Enden angesteuert werden können, und anscheinend ist die Verwendung eines 74LVC245 mit diesen kompliziert. Das ist das erste Mal, dass ich so etwas begegne; Ich bin hauptsächlich ein Software-Typ.

Ich bin nicht daran interessiert, Befehle AN die Tastatur zu senden, sondern nur Befehle VON der Tastatur zu empfangen, sodass ich die Daten- und Taktleitungen nie vom Mikrocontroller-Ende aus ansteuern muss. Reicht es aus, die Tastatursignale einfach über einen (großen) Pullup-Widerstand an Vcc zu binden, damit sie hoch bleiben, wenn die Tastatur sie nicht ansteuert (dies wird vom Protokoll verlangt; wenn sie nicht hoch sind, wird die Tastatur dies nicht tun senden). Dies bedeutet jedoch, dass die Tastatur, wenn sie versucht, die Leitungen niedrig zu halten, gegen den Widerstand fährt, und ich weiß nicht, welche Auswirkungen dies hat. Und ich weiß nicht, ob der 74LVC245 selbst eigene Pullup- / Pulldown-Widerstände in den Eingängen hat.

Ist das eine gute Idee? Wenn nicht, warum, und gibt es eine Möglichkeit, dies zum Laufen zu bringen, ohne eine geeignete Treiberschaltung mit Widerständen bauen zu müssen?

Das Datenblatt zum 74LVC245 finden Sie hier als Referenz: http://www.adafruit.com/datasheets/sn74lvc245a.pdf

Wenn Sie nur an den Ausgängen der Tastatur interessiert sind und diese Open-Collector sind, können Sie einen Pull-up-Widerstand verwenden, der an die 3,3-V-Schiene gebunden ist, und die Ausgänge der Tastatur direkt mit den Eingängen des Mikrocontrollers verbinden. Sie benötigen den 74LVC245 nicht.
Off-Topic, aber haben Sie einen Link zu guten Informationen zum Arbeiten mit dem PS/2-Protokoll mit einem Mikro? Habe schon viele Wochenenden damit verschwendet...
@ Camil: Tonnen. Im Moment schaue ich auf kbdbabel.org , das sogar einige Protokollkonverterquellen für den 8051 enthält. Es gibt auch die PC-Tastatur-FAQ unter ilkerf.tripod.com/c64tower/F_Keyboard_FAQ.html .
@m.Alin Bah, ich wünschte, ich hätte das früher gewusst. Nur zur Überprüfung: Ist das absolut sicher, da ich einen Mikrocontroller-Eingang nicht über 3,6 V ansteuern darf und die Tastatur mit 5 V läuft?
Ich möchte Sie nicht entmutigen, aber alle meine Erfahrungen mit PS/2-Tastaturen und -Mäusen erforderten bidirektionalen Datenverkehr, um die Geräte ordnungsgemäß zu initialisieren. Ich hoffe, Sie werden mir das Gegenteil beweisen.
@DavidGiven Vorausgesetzt, die Ausgänge der Tastatur sind wirklich Open-Collectors und Sie ziehen den Ausgang über einen 10-kOhm-Widerstand auf die 3,3-V-Schiene hoch, dann sollte es sicher sein. Wenn der Ausgang des kb inaktiv ist, würde der Ausgang durch den Widerstand auf 3,3 V gezogen werden; Wenn der Ausgang des kb aktiv ist, wird der Ausgang auf 0 V gezogen
Das Breadboarding (ohne angeschlossenen Mikrocontroller!) Zeigt, dass bei einem 12k-Pullup-Widerstand (der nächste, den ich finden konnte) die Spannung an den Takt- und Datenpins etwas über 4 V liegt. Ich vermute also, dass die Tastatur nicht so offen ist, wie sie sein könnte. Wie auch immer, danke, das ist nützlich; Wenn Sie es als Antwort aufschreiben, werde ich Sie positiv bewerten ...

Antworten (1)

Dies ist nur ein $0,02-Gedanke und nicht unbedingt eine Antwort.

Die Pegelverschiebung eines bidirektionalen Open-Collector-Signals wird manchmal im I 2 C-Bus durchgeführt. Es gibt spezialisierte Level-Shifter-ICs für I 2 C, wie z. B. PCA9306, die Sie für PS/2 übernehmen könnten. Es gibt eine andere Methode, bei der die Pegelverschiebung mit einem so angeschlossenen MOSFET erfolgt

Geben Sie hier die Bildbeschreibung ein

Dieses Bild zeigt die Pegelverschiebung von 2 separaten Zeilen (offensichtlich). Weitere Details in diesem App-Hinweis von Philips (jetzt NXP).

Ja, und ich wünschte, ich hätte einen gekauft! Angesichts der Tatsache, dass ich mich anscheinend entschieden habe, mit 3,3-V-Mikrocontrollern in einer Welt zu arbeiten, in der Homebrews um 5 V herum ausgelegt sind ( hust Arduino , hust ), wäre dies eine kluge Investition.
@DavidGiven Es gibt viele gute, aber 5-V-intolerante Peripheriegeräte. Sie hätten sich auch mit der Pegelverschiebung auseinandersetzen müssen, wenn Sie sich für einen 5-V-Controller entschieden hätten.
@DavidGiven Übrigens, welche Entwicklungsumgebung verwendest du für MSP430?
mspgcc und mspdebug, obwohl sich das aktuelle Projekt in Assembly befindet. Die MSP430-Montage macht Spaß (obwohl sie ihre übliche Auswahl an Verrücktheiten aufweist).