Ps2 Tastatur Emulator

Gast #317779
Lesenswert?
• ▲
▼
Hallo allerseits,

irgendwie bekomme ich es einfach nicht gebacken ein Zeichen vom AVR an
den PC über PS2 zu schicken.
Gegooglelt habe ich schon ausführlich und auch diverste Threads hier zu
diesem Thema durchgelesen. Ich bin der Ansicht, eigentlich das PS2
Protokoll so ziemlich verstanden zu haben und das Signal sieht mit dem
Oszilloskop eigentlich ganz gut aus (soweit ich das beurteilen kann).

Aber irgendwie klappt es leider nicht.
Sendet die Tastatur vielleicht irgendwelche "versteckten" befehle?

Ich habe meinen Source Code mal als Anhang mitgeschickt.

Vielen Dank für Eure Hilfe
Fabian
Angehängte Dateien:
Gast #317782
Lesenswert?
• ▲
▼
@Feadi:
das mit dem direkt verbinden habe ich auch schon versucht, allerdings
habe ich Schwierigkeiten, das Signal darzustellen, da mein einfachs
Oszilloskop nichts speichern kann.


@Ich:
nen Blick hinein wäre er mir schon wert ;)
Oder wo ist mein Haken?
Gast #317783
Lesenswert?
• ▲
▼
ach ja, ich hatte vergessen zu erwähnen, dass ich, solange die Tastatur
direkt angeschlossen war, das Senden mit meiner Funktion geklappt hat.
Deshalb vermute ich, dass die Tastatur oder der PC etwas dazwischen
macht, das ich nicht sehen kann...

außerdem ist es ein Notebook mit einem PS/2 Anschluss, wo auch ne Maus
reinpasst. Macht das ein Unterschied?
Gast #317784
Lesenswert?
• ▲
▼
Das Notebook macht sicher keinen Unterschied. Aber wenn ich mich recht
erinnere so tauscht der MCS48 im PC und die Tastatur beim Anschluss
verschiedene Einstellungssequenzen aus. Z.B damit die Tastatur weiss
ob sie im XT oder AT-Mode arbeiten soll.
Ich koennte mir vorstellen das ein PC einfach den Tastaturport abhaengt
wenn du das nicht 100% richtig emulierst.

Olaf
Gast #317785
Lesenswert?
• ▲
▼
Wichtig ist vor allem, keine ungültigen Codes zu senden, da dies der
Tastaturprozessor mit willkürlichem Aufhängen quittiert oder wilde
Tastaturkombinationen einstellt, aus denen man nicht mehr heraus kommt.
Die Clock-Rate sollte zwischen 10kHz und 16kHz liegen. Die
Fehlerkorrektur muß auch penibelst Protokoll-konform sein. Nützliche
Hinweise auch auf www.marjorie.de . Ansonsten ist die PS2-Schnittstelle
recht harmlos und umgänglich.
Gast #317786
Lesenswert?
• ▲
▼
Danke erst mal für die Hilfe bisher!
Doch noch eine Frage:

was fürt die Tastatur genau für Initialisierungen aus?
Ich habe gehört, dass sie als erstes 0xAA sendet,
doch als ich das versucht hatte, kam keine Antwort vom PC.
Er hat also data nicht auf LOW gezogen.
Oder muss ich den Befehl öfters hintereinander senden?
Das hab ich mal versucht, indem ich ne Schleife gemacht hab.
Dann wollte der PC irgendwann auch mal was antworten, hat also data auf
LOW gezogen. Aber nicht bei jedem senden.
Leider kann mein Oszilloskop nicht darstellen, was der PC da senden
wollte.
Eigentlich müsste doch einmal reichen, solange data und clock HIGH
sind.
Irgendwie sieht das alles so einfach aus, wenn mans sich anschaut, aber
ich kriegs leider einfach ned gebacken :(

Ich hoffe ihr habt noch ein bisschen Geduld mit mir ;)
Gast #317787
Lesenswert?
• ▲
▼
Also wenn Du mit Initialisierung meinst vor jedem Tastendruck, das macht
meine Tastatur nicht. Lass das mal weg. Wenn ich eine Taste drücke, wird
der Code der Taste gesendet solange bis ich sie loslasse, dann wird
einmal der Break-Code gesendet und dann nochmal der Code der Taste.
Wenn ich eine Taste also nur ganz kurz drücke (antippe) werden 3 Codes
à 11 Bit übertragen (jeweils 1 Startbit + 8 Datenbits + Parity-Bit +
Stopbit = 11 Bit).
Gast #317790
Lesenswert?
• ▲
▼
Hallo,

so, ich habe das Problem jetzt endlich gelöst!
Es lag zum einen an meiner fehlerhaften Initialisierung,
ich habe es jetzt geschafft über die Soundkarte vom PC
ein Oszillogramm aufzunehmen und so genau die Initialisierung
zu beobachten.

Meine Empfangsmethode vom PC ging weiterhin nicht, weil mein AVR viel
zu lange brauchte (Trotz 8Mhz) um meinen Code abzuarbeiten, bevor ner
nächste Interrupt durch den PC ausgelöst wurde.
Mit Polling habe ich das jetzt endlich gelöst.

Danke für eure Hilfe!

PS: @admin: aus mir schleierhaften Gründen (vielleicht F5 zum
Aktualisieren?) sind ein paar meiner Beiträge mehrmals gepostet worden.
Bitte die doppelten löschen. Danke.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.