Keyboard-emulator med Atmel microcontroller

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Hej!

Jeg er igang med at lave en keyboardemulator med en Atmel 8515 microcontroller.
Min konstruktion sidder parallelt med keyboardet og jeg behøver således kun
bekymre mig om at sende data til pc'en når der ikke sker andet på
kommunikationslinjen.

Iflg. en FAQ fra ePanorama.net er formatet således:

Startbit  Databits  Ulige-Paritet  Stopbit
   0      01234567      0/1           1

Fint nok, men jeg har samplet noget som keyboardet sender til pc'en og det
minder skisme ikke om dette. Se hvad jeg modtager:

Binær scankode for 'A': 00001000010111111100000001111111000010000101111111
Binær scankode for 'Z': 00001011000111111100000001111111000010110001111111

Der er 50 tegn ialt og jeg kan ikke decifrere dem...

Nogen gode idéer til oversættelsen?


--
Mvh, Kim Voss Schrader (fortsat skribent i dk.fritid.kaffeklub.bil)

Privat radiosamling sælges, giv et bud pr. mail! Befinder sig på Sjælland.
We've slightly trimmed the long signature. Click to see the full one.
Re: Keyboard-emulator med Atmel microcontroller

Quoted text here. Click to load it
microcontroller.
kun

KBD sender ut meir en ASCIIverdien av ein karakter. Det sender ut ein
scankode. I enklaste form, 1 pres kode, ein karakterkode og ein releaskode.
Enkelte taster sender opptil 7 karakterer.

Inne i PCen er det ein annan microkontroller som spiser, fordøyer og leverer
ein karakter videre til CPUen.

Komunikasjonen på keyboardkabelen er bidirektsjonal, ein clock og ein data.
Det er RS485-liknande, men reint TTLnivå. Du kan kopla deg innpå kabelen som
om det var 485, men der finnes eit moment å ta ivare: PCen sender data til
keyboardet, og det må tilleggskeyboardet ta hensyn til.

Ellers er der ein god AN på zilog.com under Z8 controllerer. Der bygger dei
eit komplett ATkeynoard.

HM



Re: Keyboard-emulator med Atmel microcontroller



Quoted text here. Click to load it
00001000010111111100000001111111000010000101111111
00001011000111111100000001111111000010110001111111

Du skal være opmærksom på at der sendes tovejs og adskille byte for hvert
tasttryk.

Her er noget forklaring:
http://www.simandl.cz/stranky/elektro/keyboard/keyboard_a.htm

Læg især mærke til kontrol koderne, der sendes en ACK for hver byte.



Quoted text here. Click to load it
data.
som

Jeg syntes nu ikke det har noget med RS485 at gøre, det er open collector
drivere (i begge ender) og pullup modstande.

Quoted text here. Click to load it
dei

Atmel har også et eksempel på noget PC keyboard, jeg har dog ikke kigget
nærmere på det.





Re: Keyboard-emulator med Atmel microcontroller
Quoted text here. Click to load it

Han giver et eksempel på hvad der f.eks. sendes ved et 'A': 00011100001. Det
kan jeg ikke finde i ovenstående streng, så jeg synes også det er lidt
mystisk.

--
signing off.. Martin Sørensen



Re: Keyboard-emulator med Atmel microcontroller
Hej!

Quoted text here. Click to load it

Der er vist nogle problemer med min måde at læse værdierne på. Roder videre med
det imorgen tidlig :)

--
Mvh, Kim Voss Schrader (fortsat skribent i dk.fritid.kaffeklub.bil)

Privat radiosamling sælges, giv et bud pr. mail! Befinder sig på Sjælland.
We've slightly trimmed the long signature. Click to see the full one.
Re: Keyboard-emulator med Atmel microcontroller

Quoted text here. Click to load it
Det

Det tyder på at Kim laver noget forkert.

Laver MPU'en noget andet, så den ikke har tid nok til at følge med i
keyboard communicationen?

Er opstart sekvensen luget fra, eller er den inkluderet i de viste data.


Normalt er den ikke så svært at dekode en keyboard communication, men det
kræver at MPU'en ikke laver andet eller programmet er lavet så der er
hurtige response tider.






Re: Keyboard-emulator med Atmel microcontroller
Hej!

Her er en lille update :)

HKJ wrote:
Quoted text here. Click to load it

Jeps.
 
Quoted text here. Click to load it

Mjaeh, der sendes faktisk kun (eksempelvis) 42h - F0h - 42h for at skrive et
"k". Disse tre skal pakkes ind i 11-bit sekvenserne (startbit - databits - ulige
paritetsbit - stopbit) med LSB først i databits'ne for at klare ærterne.

Det virker ihvertfald her - nu :)   Mig stor tryllekunstner :o)

Der kommer ikke ACK nogen af vejene, men controlleren (i pc'en) kan nægte at
modtage flere tegn ved at trække clocken lav indtil den vil have feed igen).
 
Quoted text here. Click to load it

Jep.

--
Mvh, Kim Voss Schrader (fortsat skribent i dk.fritid.kaffeklub.bil)

Privat radiosamling sælges, giv et bud pr. mail! Befinder sig på Sjælland.
We've slightly trimmed the long signature. Click to see the full one.
Re: Keyboard-emulator med Atmel microcontroller

Quoted text here. Click to load it
et
ulige


Det er åbenbart kun når PC'en sender kommandoer der skal bruges ACK. Sådan
ser det ihvertfald ud i min gamle kode.

Quoted text here. Click to load it

;-)

Quoted text here. Click to load it

Som jeg skrev ovenfor, så bruges ACK, men åbenbart ikke til taster. Beklager
at jeg ikke kunne huske det bedre, men sidste gang jeg har rettet på det
pågældende program var i 1998.

Quoted text here. Click to load it
igen).

En meget nyttig funktion, jeg bruger den mellem et ekstra tastatur, som
sidder midt på ledningen, og det orginale PC tastatur. På den måde vil jeg
aldrig tabe tegn (PC tastaturet har buffer indbygget).





Re: Keyboard-emulator med Atmel microcontroller
Hej!

Quoted text here. Click to load it

Du er tilgivet :o)

--
Mvh, Kim Voss Schrader (fortsat skribent i dk.fritid.kaffeklub.bil)

Privat radiosamling sælges, giv et bud pr. mail! Befinder sig på Sjælland.
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline