1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.
-
Upload
daisy-scott -
Category
Documents
-
view
230 -
download
2
Transcript of 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.
![Page 1: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/1.jpg)
1
COMP541COMP541
Input Devices: Keyboards, Input Devices: Keyboards, Mice and JoysticksMice and Joysticks
Montek SinghMontek Singh
Apr 16, 2012Apr 16, 2012
![Page 2: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/2.jpg)
Keyboard InterfaceKeyboard Interface
![Page 3: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/3.jpg)
3
PS/2 KeyboardPS/2 Keyboard Uses a synchronous serial protocolUses a synchronous serial protocol
What does that mean?What does that mean? Each symbol is transmitted bit-by-bitEach symbol is transmitted bit-by-bit
8 data bits + 3 control bits8 data bits + 3 control bits
![Page 4: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/4.jpg)
4
Physical InterfacePhysical Interface Two linesTwo lines
Clock (15-20KHz)Clock (15-20KHz) DataData Normally high, asserted Normally high, asserted
lowlow
Read:Read: pp 13-14 of Nexys 3 pp 13-14 of Nexys 3
manualmanual
![Page 5: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/5.jpg)
5
ProtocolProtocol BidirectionalBidirectional
Kybd-to-host and host-to-kybd on same wiresKybd-to-host and host-to-kybd on same wiresCAPS LOCK light for exampleCAPS LOCK light for example
Assert lowAssert low To send, keyboard starts clockingTo send, keyboard starts clocking
sends successive bit on positive edge of clocksends successive bit on positive edge of clockhost reads bits on negative edges of clockhost reads bits on negative edges of clock
You shouldnYou shouldn’’t need to send to kybdt need to send to kybd
![Page 6: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/6.jpg)
ProtocolProtocol 11 bits11 bits
a start bit: always 0a start bit: always 0 8 bits of data8 bits of data
lsb firstlsb first one parity bit (odd)one parity bit (odd) a stop bit: always 1a stop bit: always 1
Clocked by keyboardClocked by keyboard Value should be latched by FPGA on neg edge of Value should be latched by FPGA on neg edge of
keyboard clockkeyboard clock
6Illustration from http://www.beyondlogic.org/keyboard/keybrd.htm
![Page 7: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/7.jpg)
7
What is SentWhat is Sent ASCII is not sent!ASCII is not sent! Scan codes for keysScan codes for keys
Most keys have an 8-bit (single byte) scancodeMost keys have an 8-bit (single byte) scancode Some have two bytesSome have two bytes A few have even more!A few have even more! Most (not all, be careful!) keyboards use these Most (not all, be careful!) keyboards use these
scancodes:scancodes:
Illustration from Nexys 3 manual
![Page 8: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/8.jpg)
8
Scan CodesScan Codes Normally translated by softwareNormally translated by software
You remap your keys, for exampleYou remap your keys, for example
Software takes care ofSoftware takes care of Shift, caps lock, controlShift, caps lock, control
![Page 9: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/9.jpg)
9
Some Scan Codes LongSome Scan Codes Long Two code sequence commonTwo code sequence common
Have a look at Break key!Have a look at Break key!
![Page 10: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/10.jpg)
10
Even More ComplicatedEven More Complicated Scan code generated when you pressScan code generated when you press And when you releaseAnd when you release
Two bytes: F0 followed by key scan codeTwo bytes: F0 followed by key scan code Example:Example:
Space pressed, 29 sentSpace pressed, 29 sentSpace released, F0 29 sentSpace released, F0 29 sent
If you hold key, scan code repeatedIf you hold key, scan code repeated
![Page 11: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/11.jpg)
11
ResourcesResources InformationInformationhttp://www.beyondlogic.org/keyboard/keybrd.htm
Scan codesScan codeshttp://www.barcodeman.com/altek/mule/scandoc.php
My Verilog for keyboard is on the class websiteMy Verilog for keyboard is on the class website
![Page 12: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/12.jpg)
12
My VerilogMy Verilog Have Verilog for keyboardHave Verilog for keyboard Have tested it with the FPGA kit; seems to Have tested it with the FPGA kit; seems to
work finework fine To use:To use:
You should memory-map the character code registerYou should memory-map the character code registergive the keyboard a memory address so the CPU can read give the keyboard a memory address so the CPU can read
it using it using lwlw instructions instructions Handle presses and releases appropriately in softwareHandle presses and releases appropriately in software
maybe add another register to indicate that a new maybe add another register to indicate that a new character has arrived..??character has arrived..??
![Page 13: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/13.jpg)
MiceMice
13
![Page 14: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/14.jpg)
MouseMouse Very similar interface (clk & data)Very similar interface (clk & data)
But: 3 words sent w/ mouse movement or button But: 3 words sent w/ mouse movement or button presspress
ReadRead pp 14-15 of Nexys 3 manualpp 14-15 of Nexys 3 manual
14
![Page 15: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/15.jpg)
MovementMovement Movement is relativeMovement is relative
XS, YS are sign (+ is up/right)XS, YS are sign (+ is up/right) XV, YV are overflow (too fast)XV, YV are overflow (too fast) L, R are buttonsL, R are buttons
15
![Page 16: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/16.jpg)
Scroll Wheel, etc.Scroll Wheel, etc. Extensions to original 2 button PS/2 mouseExtensions to original 2 button PS/2 mouse
See See http://www.computer-engineering.org/ps2mouse/
16
![Page 17: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/17.jpg)
JoystickJoystick
(Courtesy Anselmo Lastra)(Courtesy Anselmo Lastra)
![Page 18: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/18.jpg)
Atari 2600 Joystick (we only have Atari 2600 Joystick (we only have 2-3)2-3)
18
http://www.atariarchives.org
![Page 19: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/19.jpg)
We Have Sega Joypads (we have We Have Sega Joypads (we have 5-6)5-6) Enhanced version with Enhanced version with
more buttonsmore buttons Has muxHas mux Select pin chooses first or Select pin chooses first or
second set of buttons, second set of buttons, L/RL/R
19http://pinouts.ru/data/genesiscontroller_pinout.shtml
![Page 20: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/20.jpg)
Six Button UseSix Button Use SeeSee
http://www.cs.cmu.edu/~chuck/infopg/segasix.txthttp://www.cs.cmu.edu/~chuck/infopg/segasix.txt
Use select to use buttons B & CUse select to use buttons B & C To use X, Y, Z, need to pulse selectTo use X, Y, Z, need to pulse select
20
![Page 21: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/21.jpg)
NEXYS Mappings (PMOD JA)NEXYS Mappings (PMOD JA) We have to connect them using wires…We have to connect them using wires…
21
Signal FPGA Pin DB-9 10-Pin
Up M15 1 4
Down L17 2 3
Left L16 3 8
Right K12 4 2
Btn A/B M14 6 9
Start/C L15 9 1
Select M16 7 10
Ground - 8 5
Power - 5 6PMOD JA is 10-pin connector nearest VGA connector
![Page 22: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/22.jpg)
SuggestionSuggestion Create FF for SelectCreate FF for Select
Memory map so you can set from CPUMemory map so you can set from CPU
Memory map the input signalsMemory map the input signals I would not latch themI would not latch them
Please power off when plugging or unplugging Please power off when plugging or unplugging Sega joypads!Sega joypads! Careful when plugging in PCBCareful when plugging in PCB
22
![Page 23: 1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.](https://reader035.fdocuments.in/reader035/viewer/2022062216/56649e015503460f94aeae4d/html5/thumbnails/23.jpg)
23
LinksLinks http://pinouts.ru/data/JoystickAtari2600_pinout.shtmlhttp://pinouts.ru/data/JoystickAtari2600_pinout.shtml http://pinouts.ru/data/genesiscontroller_pinout.shtmlhttp://pinouts.ru/data/genesiscontroller_pinout.shtml http://www.epanorama.net/documents/joystick/ataristick.htmlhttp://www.epanorama.net/documents/joystick/ataristick.html http://www.epanorama.net/documents/joystick/tvgames.htmlhttp://www.epanorama.net/documents/joystick/tvgames.html
http://www.cs.cmu.edu/~chuck/infopg/segasix.txthttp://www.cs.cmu.edu/~chuck/infopg/segasix.txt