Offene Kollektoren & 74LVC245

7

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

Jetzt habe ich dies jedoch festgestellt, dass die PS / 2-Tastaturschnittstelle Open-Collector-Signale verwendet, so dass sie von beiden Seiten angesteuert werden können, und anscheinend ist die Verwendung eines 74LVC245 mit diesen kompliziert. Dies ist das erste Mal, dass ich so etwas getroffen habe. Ich bin meistens ein Software-Typ.

Ich bin nicht daran interessiert, Befehle an die Tastatur zu senden, sondern nur Befehle von der Tastatur zu empfangen, daher muss ich die Daten- und Taktleitungen nie vom Ende des Mikrocontrollers aus ansteuern. Ist es ausreichend, 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 zu senken, gegen den Widerstand fährt, und ich weiß nicht, welche Auswirkungen dies hat. Und ich weiß nicht, ob der 74LVC245 selbst über eigene Pullup- / Pulldown-Widerstände in den Eingängen verfügt.

Ist das eine gute Idee? Wenn nicht, warum und gibt es eine Möglichkeit, diese Funktion auszuführen, ohne eine geeignete Treiberschaltung mit Widerständen aufbauen zu müssen?

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

David Given
quelle
Wenn Sie nur an den Ausgängen der Tastatur interessiert sind und diese offen 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 brauchen den 74LVC245 nicht.
m.Alin
Off-Topic, aber haben Sie einen Link zu guten Informationen darüber, wie Sie mit dem PS / 2-Protokoll mit einem Mikro arbeiten können?
1
@Camil: Tonnen. Im Moment schaue ich auf kbdbabel.org , das sogar eine Protokollkonverterquelle für den 8051 enthält . Unter ilkerf.tripod.com/c64tower/F_Keyboard_FAQ.html finden Sie auch häufig gestellte Fragen zur PC-Tastatur .
David gegeben
@ m.Alin Bah, wünschte ich hätte das früher gewusst. Nur zur Überprüfung: Ist das völlig sicher, da ich keinen Mikrocontroller-Eingang über 3,6 V betreiben darf und die Tastatur mit 5 V betrieben wird?
David gegeben
Ich möchte Sie nicht entmutigen, aber all meine Erfahrungen mit PS / 2-Tastaturen und -Mäusen erforderten bidirektionalen Datenverkehr, um die Geräte ordnungsgemäß zu initialisieren. Ich hoffe du wirst mir das Gegenteil beweisen.
Jippie

Antworten:

3

Dies ist nur ein Gedanke von 0,02 USD und nicht unbedingt eine Antwort.

Die Pegelverschiebung eines bidirektionalen Open-Collector-Signals erfolgt manchmal im I 2 C-Bus. Es gibt spezielle 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 durchgeführt wird

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).

Nick Alexeev
quelle
Ja, und ich wünschte, ich hätte einen gekauft! Angesichts der Tatsache, dass ich mich anscheinend für 3,3-V-Mikrocontroller in einer Welt entschieden habe, in der Homebrews auf 5 V ausgelegt sind ( Husten Arduino- Husten ), wäre dies eine kluge Investition.
David gegeben
@DavidGiven Es gibt viele gute, aber 5V-intolerante Peripheriegeräte. Sie hätten sich auch mit Hebelverschiebung befassen müssen, wenn Sie sich für einen 5-V-Regler entschieden hätten.
Nick Alexeev
@DavidGiven Welche Entwicklungsumgebung verwenden Sie übrigens für MSP430?
Nick Alexeev
mspgcc und mspdebug, obwohl sich das aktuelle Projekt in der Montage befindet. Die Arbeit mit der MSP430-Baugruppe ist eine Freude (obwohl sie die übliche Auswahl an Verrücktheiten aufweist).
David gegeben