Forum: Mikrocontroller und Digitale Elektronik USB Tastatur per passiv Adapter an AVR


von Simon (Gast)


Lesenswert?

Hallo,

ich hab letzte Woche die Schaltung nach 
http://www2.htw-dresden.de/~beck/Atmel/Keyboard/PS_2-keyboard.html 
aufgebaut und einen Atmega8 mit dem Beispiel programmiert. Wenn ich eine 
übliche PS/2 Tastatur anschließe, funktioniert alles so, wie gewünscht. 
Nun wollte ich eine USB Tastatur anschließen, welche einen passiven 
Adapter von USB zu PS/2 mitbringt. Leider sagt diese Tastatur gar 
nichts.

Meine Webrecherche hat ergeben, dass eine USB/PS2 Tastatur eigenständig 
erkennt, dass sie im PS/2 Modus arbeiten soll. Ich finde nur nirgendwo 
eine Beschreibung, wie diese Erkennung funktioniert. Am PC funktioniert 
sie am PS/2 Anschluss, also muss es etwas mit der Schaltung oder deren 
Software zu tun haben.

Hat jemand eine Idee, woran das liegt bzw liegen könnte?

Danke und sonnige Grüße
Simon

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, zunächst mal muss es eine bilinguale Tastatur sein (also eine, die 
tatsächlich sowohl USB als auch PS/2 "spricht"), dann muss der Adapter 
zur Tastatur passen (es ist nicht gesagt, daß die Dinger 
herstellerübergreifend identisch sind) und zuletzt muss der PS/2-"Host", 
also Dein µC, sich bei der Ansteuerung exakt so verhalten wie ein PC.

von Simon (Gast)


Lesenswert?

Rufus,

danke für deine Antwort!

Die Tastatur kommt mit einem eigenen, passiven Adapter und funktioniert 
am PS/2 Port des PC tadellos. Dass es einen Unterschied zum PC geben 
muss, ist daher logisch. Ich frage mich, wo ich ansetzen soll, da ich 
keine Ahnung hab, wie eine bilinguale Tastatur feststellt, in welchen 
Modus sie wechseln soll. "Blind" eine Konfiguration an die Tastatur 
schicken? Während des Power-On eine bestimmte Clk/Data Kombination 
anlegen?

Viele Grüße
Simon

von Chris (Gast)


Lesenswert?

Lass mal den Schaltplan sehen, dann kann dir geholfen werden.
PS: PS2 setzt OC Treiber mit pull-up voraus. Dies wird vor allem beim
Clock gerne weggelassen. Weiters wird gleich nach dem Einschalten 
entschieden
welches Protokoll gefahren wird, ein start-up delay des Mikrocontrollers 
kanns sich da sehr stören sein, wenn man interne pull-ups verwendet.
Die Steckerbelung zwischen USB und PS2 ist Herstellerübergreifend.

von Simon (Gast)


Lesenswert?

Ich hab 1:1 die Schaltung und Software von 
http://www2.htw-dresden.de/~beck/Atmel/Keyboard/PS_2-keyboard.html 
verwendet. Als Pull-Ups bin ich dem Hinweis gefolgt, dass diese im AVR 
bzw der Tastatur (Appnote 313 von Atmel) liegen. Also könnte es daran 
liegen, dass diese fehlen? Reine PS/2 ok, bilinguale nicht ok?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Simon schrieb:
> Also könnte es daran
> liegen, dass diese fehlen?

Löte doch einfach mal welche dran für einen Test.

von Simon (Gast)


Lesenswert?

Hab ich gemacht. Bei dieser Tastatur hat ein Pullup an Data ausgereicht. 
Scheinbar kontrolliert die Tastatur schneller, als die Pullups des AVR 
geschaltet sind.
Danke für den Tipp!!!

Viele Grüße
Simon

von Chris (Gast)


Lesenswert?

Ja, das hatte ich mit dem Satz gemeint, für reine PS2 Tastaturen braucht
mand die nicht, das geht dann auch ohne.

Chris schrieb:
> Weiters wird gleich nach dem Einschalten
> entschieden
> welches Protokoll gefahren wird, ein start-up delay des Mikrocontrollers
> kanns sich da sehr stören sein, wenn man interne pull-ups verwendet.

von Pascal (Gast)


Lesenswert?

Ich bin über eine Suchmaschine auf diesen Beitrag gestoßen da ich das 
selbe Problem habe. Ich hatte bisher eine alte PS2 Tastatur an meinen 
Arduino Uno angeschlossen und das funktionierte. Nun habe ich eine 
USB-Tastatur mit beiliegendem PS2 Adapter angeschlossen und nichts geht 
mehr.

Ich bin noch µC Neuling und verstehe daher die Erklärung zur Lösung 
nicht. Könnte mir das mal bitte jemand erklären so das es ein Laie 
versteht? Vielen Dank!! Vielleicht auch gleich für Arduino passend :)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Das hat mit Arduino nichts zu tun. Die PS/2 Tastaturen erwarten an Clock 
und Datenleitung einen starken Pullup - 2k2 bis 3k3 von beiden Leitungen 
auf +5 Volt ziehen, du brauchst also 2 Widerstände.

von Pascal (Gast)


Lesenswert?

Cool, vielen Dank das hat funktioniert :)

Wäre als Erklärung folgende richtig:
ein pullup ist sozusagen ein Stromstoß wo der Tastatur mitteilt "Ich bin 
ps2" ? Oder wie kann man das einfach erklären?

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.