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
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.
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
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.
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?
Simon schrieb: > Also könnte es daran > liegen, dass diese fehlen? Löte doch einfach mal welche dran für einen Test.
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
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.
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 :)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.