Forum: Mikrocontroller und Digitale Elektronik PS/2 Keyboard am PSoC 3/4/5


von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

Damit man den µC mit Texten füttern kann, habe ich mir eine kleine 
Tastatur zugelegt:

http://www.ebay.de/itm/161307210116?_trksid=p2059210.m2749.l2648&ssPageName=STRK%3AMEBIDX%3AIT

Zu meinem Glück kann sie nicht nur USB, sondern beherrscht dank zweier 
Pullup- Widerstände (je 4,7k Ohm) auch den PS/2- Modus.

Nach langem Suchen im Internet und vielem Herumprobieren habe ich nun 
eine halbwegs taugliche Lösung gefunden. Aber es hapert noch an der 
deutschen Tastenbelegung, speziell bei Alt- Gr.

Frage: Hat jemand dieses Problem gelöst??

MfG!!

von Ralf D. (rad)


Lesenswert?

DH1AKF K. schrieb:
> Frage: Hat jemand dieses Problem gelöst??

Welches Problem?

von Georg (Gast)


Lesenswert?

DH1AKF K. schrieb:
> Aber es hapert noch an der
> deutschen Tastenbelegung, speziell bei Alt- Gr

Als erstes musst du dir dazu eine deutsche Tastatur kaufen.

Georg

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Georg schrieb:
> Als erstes musst du dir dazu eine deutsche Tastatur kaufen.

Hahaha, der war gut...!

Auch bei eBay trügt oft der Schein. Zugegeben, ich war beim Auspacken 
leicht nervös, weil die Verpackung ebenfalls eine QWERTY- Tastatur 
zeigte. Aber wie man sieht, ist das deutsche Layout vorhanden.

Nun mal im Ernst: hat jemand die dazu passende Codetabelle??

MfG Wolfgang

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

DH1AKF K. schrieb:
> Nun mal im Ernst: hat jemand die dazu passende Codetabelle??

Die Scancodes von "PS/2"-Tastaturen werden hier beschrieben:
http://de.wikipedia.org/wiki/Scancode

Das ist unabhängig vom Aufdruck.

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Vielen Dank für den Tipp!!

Die Routine ist in C geschrieben, benutzt einen 70 kHz- Timer- Interrupt 
und sollte somit auf allen gängigen Controllern funktionieren, wenn man 
die Initialisierung entsprechend anpasst.
Ist noch nicht ganz fertig (3. Tastenebene mit AltGr fehlt noch,) aber 
funktioniert.

von Ralf D. (rad)


Lesenswert?

DH1AKF K. schrieb:
> Nun mal im Ernst: hat jemand die dazu passende Codetabelle??

Welche Codetabelle? Meinst Du den Scan Code Set?

Davon gibts nur drei ... siehe http://www.marjorie.de/ps2/start.htm

Da gibts auch noch viel mehr Infos zm Umgang mit der PS/2 - 
Tastaturschnittstelle.

von Ralf D. (rad)


Lesenswert?

DH1AKF K. schrieb:
> Die Routine ist in C geschrieben, benutzt einen 70 kHz- Timer- Interrupt

Holla die Waldfee ;)

Einen permanent laufenden 70kHz Timer Interrupt zu nutzen um eine 
Tastatur einzulesen erscheint mir reichlich dickes Kaliber für solch 
eine Aufgabe.

Ich weiß nun nicht was "PSoC" für eine Chip ist ... aber ... hat der 
keine einfache synchrone serielle Schnittstelle für einen 9 Bit Empfang?

Oder wenigstens einen interruptfähigen Eingang der nur auf jeder 
fallenden Flanke des Clocksignals einen Interrupt erzeugt?

: Bearbeitet durch User
von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

Ralf D. schrieb:
> der wenigstens einen interruptfähigen Eingang der nur auf jeder
> fallenden Flanke des Clocksignals einen Interrupt erzeugt?

Hallo Ralf, mit Interrupt auf der negativen Taktflanke habe ich lange 
herumprobiert, aber leider ohne Erfolg. Weder mit sofortigem Einlesen 
der Datenbits noch mit Zeitverzögerung lief das wiederholbar stabil. 
Erst das Polling im 70 kHz- Takt hat funktioniert.
Mag sein, dass hier irgendwelche Störimpulse im Spiel waren, die hätte 
man vielleicht abblocken sollen.

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ralf D. schrieb:
> Einen permanent laufenden 70kHz Timer Interrupt zu nutzen um eine
> Tastatur einzulesen erscheint mir reichlich dickes Kaliber für solch
> eine Aufgabe.

Hallo Ralf, es geht auch mit Interrupt auf die HL- Flanke des PS/2- 
Taktes!

Das ist natürlich eine starke Entlastung des Prozessors. Problem waren 
vermutlich kleine Bugs in der ISR.

Die Routine ist noch nicht vollständig fertig: Es fehlt noch die Alt-Gr 
Umschaltung.

von ./. (Gast)


Lesenswert?

> Zu meinem Glück kann sie nicht nur USB, sondern beherrscht dank zweier
> Pullup- Widerstände (je 4,7k Ohm) auch den PS/2- Modus.

Von 5 V plus an die USB-Leitungen?

Oder innendrin?

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

./. schrieb:
> Von 5 V plus an die USB-Leitungen

Ja, so klappt das.

von ./. (Gast)


Lesenswert?

> Ja, so klappt das.

TNX.

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.