Hallo, ich versuche verzweifelt mit einem Atmel Atmega 16(in Assembler, AVR Studio 4.07) eine Tastatur zu simulieren. Leider habe ich hierzu bisher keine hilfreichen Tips im Inet gefunden. WICHTIG: Ich will keine Tastatur an den ATmega hängen und diesen bedienen, ich will einen ATmega an den Tastaturport hängen und ihn Eingaben auf dem PC tätigen lassen. Das PS 2 Protokol habe ich zwar, damit funktioniert es aber nicht. Wobei ich langsam eher an ein Hardware problem denke. Wenn ich die signale mit einem Oszi vergleiche, so sind diese fast gleich(habe hierzu ein Oszi in die Leitung von PC und Tastatur gehängt). Habe dann lt. den ganzen Infos zu der PS 2 Schnittstelle das Signal nachgebildet, es stimmt bis auf leichte Zeitunterschied sehr gut. Habe als Clocksignal ein Signal mit 40us on / 40us off generiert. Aber sobald den Controller an den PC hänge passiert ganrichts. Die ganzen Links hier im Forum helfen wir nicht wirklich weiter, habe schon alle durchgeschaut. Hat jemand schon erfolgreich eine Tastatur simuliert? Langt es wenn ich die Scancodes an die Tastatur schicke, oder muss ich da noch was beachten(kommen z.B. Signale vom PC zurück, die ich beachten muss)? Kann ich den Controller problemlos gleichzeitig parallel an der Tastatur betreiben? Wäre praktisch, da ich keinen Tastatur Umschalter besitze. Welchen Schaltungsaufbau benutzt ihr? Geht ihr direkt aus den Controllerausgängen raus oder nutzt ihr eine Treiberschaltung? Danke schonmal für eure Hilfe. mfg Chris
Hi, parallel dazu hängen müsste gehen. Ist Tri-State. Vor ca. 1 Jahr gab's darüber mal einen größeren Thread: http://www.mikrocontroller.net/forum/read-1-9869.html#9911 Sebastian
Hi nochmal, gerade durch Zufall entdeckt: http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 AVRNOTE313 Ist zwar zum das Keyboard ansprechen, aber vielleicht bringt's auch was... Sebastian
Hi Sebastian, die anderen Threads hab ich alle schon studiert, is leider nix passendes dabei. Auch in der Atmel Appnote steht nicht interessantes für mich drin. Habs aber grad nochmal probiert und jetzt geht es. Hab wohl was mit den Pins für Ein und Ausgang verwechselt. Den Quellcode hab ich mal rangehängt, kannst dir ja mal ankucken. Sollte problemlos auf alle Atmels übertragbar sein. Noch ne Frage zum Tri-State: Ich bin mir nicht sicher wie ich den setzen kann. Kannst du mir da grad noch kurz ne Assembler Routine aufzeigen? ich habe den Port als Eingang gesetzt, mit: clr temp out DDRA,temp Ist das ausreichend? Vielen Dank schonmal. mfg Chris
Hi, soweit ich weiß, bedeutet Tri-State, daß kein definierter Zustand herrschen muß. Bei I2C z.B. sind die Pins immer HIGH (über einen PullUp-Widerstand) bis ein Gerät den Pin auf LOW zieht. Bei Tri-State gibt es keine PullUp-Widerstände. Die Konfiguration als Eingang sollte also ausreichend sein. Sebastian
Hi Sebastian, danke für die Hilfe, es funktioniert ganz gut mit dem Tastatur emulieren. Nun wollte ich eine Maus simulieren. Das Grundgerüst ist ja mit dem Programm schon gemacht. Dachte ich mir zumindest, aber leider klappt das garnicht. Bin am verzweifeln. Habe mal im INet gesucht und n Projekt gefunden: http://panda.cs.ndsu.nodak.edu/%7Eachapwes/PICmicro/code/Projects/mouse/ps2mouse.html Die haben dort mit nem Pic ne Maus nachgebaut, wo man grad mit 6 Eingangen(hoch, runter, links, rechts, Taste 1 und 2) ne Maus emulieren kann. Werde das dann einfach ansteuern. Hoffe zwar das ich das noch hinkriege, sieht aber leider nicht danach aus :-( mfg Chris
Hi Chris, muß man eine PS/2-Maus nicht erst initializieren? Eine Tastatur an den Rechner - auch am Betrieb - ranzuklemmen geht meistens, aber selten bei 'ner Maus! Die wird wohl irgendwann initializiert und muß dann auch wahrscheinlich eine passende Antwort an den Rechner geben. Sebastian
Hi Sebastian, die Initialisierung macht die Maus die parallel zu meiner Schaltung dranhängt. Zum Glück, denn sonst würde sich das ganze ziemlich verkomplizieren. Meine ganzen Probleme waren aber alle nur immer Timingprobleme, das ganze funktioniert mittlerweile ganz gut mit dem PS2keyboard File das ich oben schonmal angehängt habe. Das einzige was man dort ändern muss is die Parity Berechnung die beim senden von 0x00 falsch ist. Dann klappts auch mit der Simulierung einer Maus. Vielen Dank nochmal an dich, hast mir sehr geholfen :-) mfg Chris PS: N gutes neues Jahr
Hi Chris, kein Problem! Schön, daß es funktioniert! :-) Wenn ich mal viel Zeit hab', werd' ich das ganzr auch mal probieren. Momentan kann ich nur von einer PS/2-Tastatur einlesen. Sebastian
Allso were cool wen du mir auch mal die das Pogramm schiken würdest womit man die Tastertur simuliert. Wen ich das richtik verstehe kan man da also sagen f1 ka z.B. 20sekunden drücken dan f2 3 sekunden drücken und dan 2 drücken und dan wieder 3 drücken. Were ganz praktisch. Wens alerdings nit so ist könntest mir ja füleicht mal helfen sowas zu pogramieren.
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.