Forum: Mikrocontroller und Digitale Elektronik Tastatur emulator


von Frank (Gast)


Lesenswert?

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

von 123 (Gast)


Lesenswert?

google ist dein freund.

von Frank (Gast)


Lesenswert?

Hi 123....hast du auch einen tipp nach was ich googeln soll ?
Bis jetzt konnt ich nix brauchbares finden.

von Alex (Gast)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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.

von Bob (Gast)


Lesenswert?

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.

von Bob (Gast)


Lesenswert?

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

von Bjoern Mueller (Gast)


Lesenswert?

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.

von Rahul D. (rahul)


Lesenswert?

man kann das Signal auch durch den Controller schleusen...

von Bjoern Mueller (Gast)


Lesenswert?

...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.

von Frank (Gast)


Lesenswert?

Bjoern Mueller:

So ganz hab ich noch nixht verstanden, wozu der Alalog-Switch da ist.

von Bjoern M. (salival)


Lesenswert?

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)

von Bjoern M. (salival)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.