Tastatur emulator

Gast #256438
Hallo.

Ich bin gerade dabei ein kleines gerät zu bauen, dass in über den PS/2
anschluss an den PC anschließ(zwischen PC und Tastatur).
Das Gerät soll später Zahlen aus einem speicher einlesen und dann an
den PC sende (wie wenn die tasten normal gedrückt werden).
Wie schliess ich den Mikrocontroller (wahrscheinlich mega8) am besten
nun an besten an ? Soll ich ihn lieber zwischen PC und Keyborad machen,
sodass der Mega 8 die Tastenanschlägen einfach durchroutet.
Oder soll ich besser das Teil parallel anschließen ?

Gibt es dafür schon ein beispiel.
Das gerät soll ähnlich funktionieren wie ein Barcode-Scanner.

Gruß, Frank
Gast #256441
Hi,
Atmel(oder wars Microchip?) hat ein Dokument wo beschrieben wird wie
man  eine Tastatur an den µC anschließt. "Interfacing the PC AT
Keyboard"(DOC1235.pdf) solltest du dir mal ansehen.
MfG Alex
Gast #256442
Das Doku is von Atmel. Des hab ich mir bereits durchgelesen...Mir gehts
eingeltich nur darum, wi eich am besten dafür sorge, dass die normale
tastatur auch noch funktioniert.
Gast #256443
kenn jetzt nicht die details. aber wenn die signale immer high sind und
low werden musst du eine & verknüpfung nehmen. Wenn sie low sind und
dann high nimmst du n OR.
Gast #256444
Habe ich mal wieder ned nachgedacht! ist das nicht irgendwie
bidirektional? die LEDS an der tastatur kriegen doch gesagt was sie zu
tun haben. also wird das mit dem ICs nichts
Gast #256445
ich habe mal so ne art key-spy(eigentlich nen hardware-makro-tool) mit
einem attiny2313 gebaut.

als externe bauteile waren nur ein 74hc4066(4 analogschalter) und 2
widerstaende noetig.

          | - |-- data in
  --data--
          | - |-- data out(+10k pullup)
mc
          | - |-- clk in
  --clk---
          | - |-- clk out(+10k pullup)

man kann dann entweder beide richtungen durchschalten und somit die
jeweiligen in und out verbinden, dann kann der mc "lauschen".
oder man schaltet nur die beiden in oder out durch, um mit tastatur
oder rechner zu kommunizieren.

ach ja, in=tastatur out=rechner.

falls das prinzip aufgrund meiner schlechten ascii-kuenste nicht klar
ist, einfach nochmal nachfragen.

gruss, bjoern.

ps: http://www.beyondlogic.org/keyboard/keybrd.htm hat mir sehr
weitergeholfen.
Gast #256447
...was aber aufgrund der bidirektionalitaet nicht grade trivial ist.

hatte ich damals gar nicht in betracht gezogen, aber nochmal drueber
nachgedacht sollte man das mit 2 externen interrupts recht sauber
hinbekommen. werd ich das naechste mal wohl auch so machen. danke fuer
den denkanstoss.

gruss, bjoern.
#256449
so, jetzt als schoenes ascii-bildchen. man kann entweder alle schalter
schliessen, dann wird das signal einfach von tastatur zu rechner
durchgeschaltet, oder kann wahlweise beide in oder beide out
ausschalten, dann kann der controller mit der jeweils durchgeschalteten
seite reden und die andere bekommt nichts davon mit. auf der pc-seite
braucht man noch pullups, weil im idle-zustand ein high auf beiden
leitungen erwartet wird(open collector). auf tastaturseite sind die
pullups schon vorhanden.
geht aber wie vorher schon erwaehnt auch ohne den schalter, dann halt
mit mehr programmier und denkarbeit.

gruss, bjoern.

       data       clock
        |           |
        |           |
     .--o--.     .--o--.
     |     |     |     |
  \  o  \  o  \  o  \  o
   \     \     \     \
    \.    \.    \.    \.
     o     o     o     o
     |     |     |     |

   d_in  d_out  c_in  c_out

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
#256450
um jeden zweifel zu beseitigen(eigentlich aus langeweile):

       data       clock
        |           |
        |           |
     .--o--.     .--o--.
     |     |     |     |
     o     o     o     o
     |     |     |     |         tastatur <-> rechner
     |     |     |     |
     o     o     o     o
     |     |     |     |

   d_in  d_out  c_in  c_out


       data       clock
        |           |
        |           |
     .--o--.     .--o--.
     |     |     |     |
  \  o     o  \  o     o
   \       |   \       |         controller <-> rechner
    \.     |    \.     |
     o     o     o     o
     |     |     |     |

   d_in  d_out  c_in  c_out

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

gruss, bjoern.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.