Gast
#833192
Tach, Ich habe keine wirkliche Frage. Ich möchte mich nur mal öffentlich über dieses elende PS2-Protokoll aufregen! Mein Problem schien erst mal ganz simpel. Ich habe ein LED-Laufschrift, die ich per µC ansteuere und wollte nur mal eine PS2-Tastatur anschließen. Wenn kein PC angeschlossen ist sollte der µC der Host sein. Wenn ein PC angeschlossen ist sollte mein µC in den "Stealth"-Mode übergehen und nur den Traffik abhören (Und natürlich alle anzeigbaren Tastenanschläge auf der LED-Laufschrift ausgeben). Ich habe mir gedacht: schön ein interupt-getriggertes Schieberegister und nach 11 Takten hab ich meine Daten. NEIN! Wenn der PC sendet hat man plötzlich 2 Takte mehr. Und ein START-Bit sieht bei PS2 genauso aus wie jedes andere Bit. Deshalb lässt sich darauf nicht syncronisieren. (Da lob ich mir doch I2C z.B.) Worauf man syncen kann, dass ist die Anforderung vom PC zu schreiben. Da kommt nämlich ein laaaanger Takt auf der Clockleitung. Also muss eine Zeitmessung implementiert werden, die diese Anforderung erkennt und das Schieberegister neu vorbereitet. So reagiert man auch gleich auf den Busy-Zustand. Denn wenn man die Maus bewegt, ist der PC außer Stande die Tastatur zu verarbeiten und zieht deshalb die Clock-Leitung auf LOW um die Komunikation zu unterbinden. Das sind dann natürlich keine Daten für mich. Mein PC nimmt jedes Frame sang und klanglos hin. Mein Laptop hingegen Blockiert nach jedem Frame die Leitung durch einen Clockimpuls, den man auch nicht ins Schieberegister schieben darf. Und wenn man dann endlich die richtigen Daten rausgefriemelt hat, geht das Chaos erst richtig los. Völlig zusammenhangslose Tastencodes. Oder 8 Byte die übertragen werden wenn man mal kurz die "Pause"-Taste drückt. Sinnlos!! Momentan verzweifle ich an nichtdokumentierten Byte die ich empfange: Wenn ich die Rollentaste drücke wird das Byte gesendet und Windows setzt die Statusleds der Tastatur. Alles schön nach Protokol. Wenn ich aber auf der MS-Bildschirmtastatur die Rollentaste drücke, liegen Bytes auf der Leitung die es garnicht geben sollte. Aber die LED geht trozdem an. Ich bin einfach nur gerade massiv angepisst, weil ich nicht weiß wo mein Fehler liegt und ob überhauptr ein Fehler vorliegt. Also wenn ihr mich fragt, wird sich dieses Protokoll nicht durchsetzten lach Ich geh jetzt mal auf Arbeit, da weiß ich wenigstens was passiert wenn ich einen Knopf drücke :) CU Harry