COMP541 Input Devices: Keyboards, Mice and Joysticks

Slides:



Advertisements
Similar presentations
1.Obtain laser pointer coordinates 2.Send laser pointer coordinates to laptop through the PS/2 port 3.Pixel Mapping between camera image and laptop screen.
Advertisements

HARDWARE Rashedul Hasan..
INPUT-OUTPUT ORGANIZATION
MM Player Supervised by: Dr. Luai Malhis. Prepared by: Mustafa Assaf & Mahmoud Musa.
Input and Output CS 215 Lecture #20.
8051 I/O Interfacing Need for more ports PPI 8255
Programmable Keyboard/ Display Interface: 8279
kashanu.ac.ir Microprocessors 6-1 I/O Devices Switches, LED, LCD Lec note 6.
Input/Output Ports and Interfacing ELEC 330 Digital Systems Engineering Dr. Ron Hayne Images Courtesy of Ramesh Gaonkar and Delmar Learning.
82C55 82C55 Programmable Peripheral Interface Interfacing Part III.
Henry Hexmoor1 Chapter 7 Henry Hexmoor Registers and RTL.
EE 316 Computer Engineering Junior Lab Word Mastermind.
EE 316 Computer Engineering Junior Lab PS/2 Keyboard.
Other I/O LCD display Flash ROM Keyboard (PS/2) UART connectors.
1 COMP541 Keyboard Interface Montek Singh April 9, 2007.
CS150 Project Checkpoint 1. Controller Interface Dreamkatz Controller Interface 1. The N64 Controller 2. Physical interface 3. Communication protocol.
3D Wireless Mouse Shirley Li Matt Tanwentang Joseph Cheng.
Read Chapter 3 (David E. Simon, An Embedded Software Primer)
1 COMP541 Final Missing Pieces of MIPS: Adding Memory & I/O Montek Singh Oct 29, 2014.
EE 316 Computer Engineering Junior Lab Digital Hangman.
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 8, 2007.
Interface circuits I/O interface consists of the circuitry required to connect an I/O device to a computer bus. Side of the interface which connects to.
Counters and Registers
1 Keyboard Controller Design By Tamas Kasza Digital System Design 2 (ECE 5572) Summer 2003 Presentation for.
1 KEYBOARD. 2 Structure  Is standard input device Arrangement of keys IC Integrated Circuit.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Keyboard Interface Anselmo Lastra.
PS/2 Mouse/Keyboard Port Discussion D7.2. PS/2 Port.
PS2 Keyboard Interface Using Spartan-3 Starter Kit Board
INPUT-OUTPUT ORGANIZATION
Chapter 8 Input/Output l I/O basics l Keyboard input l Monitor output l Interrupt driven I/O l DMA.
1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 16, 2012.
Digilent System Board Capabilities Serial Port (RS-232) Parallel Port 1 Pushbutton Hint: Good for a reset button Connected to a clock input. See Digilent.
Dr. Rabie A. Ramadan Al-Azhar University Lecture 6
Input/Output Ports and Interfacing
1. Introduction 2. Methods for I/O Operations 3. Buses 4. Liquid Crystal Displays 5. Other Types of Displays 6. Graphics Adapters 7. Optical Discs 10/01/20151Input/Output.
Microcontroller based system design Asst. Prof. Dr. Alper ŞİŞMAN.
Computers Are Your Future Eleventh Edition Chapter 2: Inside the System Unit Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall1.
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
EE4OI4 Engineering Design UP1core Library Functions.
1 COMP541 Final Missing Pieces of MIPS: Adding Memory & I/O Montek Singh Apr 11, 2012.
8279 KEYBOARD AND DISPLAY INTERFACING
Practical Session 11 Computer Architecture and Assembly Language Input &Output (I/O)
Shift Registers pp Shift Registers Capability to shift bits ♦ In one or both directions Why? ♦ Part of standard CPU instruction set ♦ Cheap.
1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 6, 2015.
Monday, January 14 Homework #1 is posted on the website Homework #1 is posted on the website Due before class, Jan. 16 Due before class, Jan. 16.
8279 KEYBOARD AND DISPLAY INTERFACING
PS/2 Mouse/Keyboard Port
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 11, 2010.
The Spartan®-3E FPGA Starter Kit board. A computer mouse is designed mainly to detect two-dimensional motion on a surface. Its internal circuit measures.
TIMERS AND INTERRUPTS AVI SINGH KEVIN JOSE PIYUSH AWASTHI.
KEYBOARD INTERFACING Keyboards are organized in a matrix of rows and columns The CPU accesses both rows and columns through ports. ƒTherefore, with two.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Chapter 3 System Buses.  Hardwired systems are inflexible  General purpose hardware can do different tasks, given correct control signals  Instead.
Practical Session 12 Input &Output (I/O). I/O Device Input / Output (I/O) devices Input / Output (I/O) devices provide the means to interact with the.
I/O Devices Switches, LED, LCD
1 COMP541 Video Monitors Montek Singh Mar 11, 2016.
Practical Session 11 Computer Architecture and Assembly Language Input &Output (I/O)
1 COMP541 Final Missing Pieces of MIPS: Adding Memory & I/O Montek Singh Apr 6, 2010.
INTERFACING KEYBOARD WITH ATMEGA32 ELECTRONICS & COMMUNICATION TITLE.
Michael Rahaim, PhD Candidate Multimedia Communications Lab
Chapter 6 Input/Output Organization
Peripherals – Keypad The Keypad provides a simple means of numerical data or control input. The keys can be attributed whatever data or control values.
COMP541 Input Devices: Keyboards, Mice and Joysticks
Operating Systems (CS 340 D)
COMP541 Input Devices: Keyboards, Mice and Joysticks
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
EEL 3705 / 3705L Digital Logic Design
Computer Architecture and Assembly Language
Interfacing keyboard with FPGA
Presentation transcript:

COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Nov 3, 2014

USB keyboard plugs into the USB port on Nexys 3 / Nexys 4 boards Keyboard Interface USB keyboard plugs into the USB port on Nexys 3 / Nexys 4 boards

USB to PS/2 emulation Host controller on Nexys boards talks to USB keyboard on one side speaks PS/2 protocol to the FPGA on the other side PS/2 used to be the dominant keyboard protocol PS/2 = a synchronous serial protocol What does that mean? Each symbol is transmitted bit-by-bit 8 data bits + 3 control bits synchronized to the keyboard’s clock (slow)

Physical Interface Two lines Read: Clock (15-20KHz) Data Normally high, asserted low Read: pp. 13-14 of Nexys 3 manual pg. 10 of Nexys 4 manual

Protocol Bidirectional Assert low For your lab: Kybd-to-host and host-to-kybd on same wires CAPS LOCK light for example Assert low To send, keyboard starts clocking sends successive bit on positive edge of clock host reads bits on negative edges of clock For your lab: You shouldn’t need to send anything to keyboard

Protocol 11 bits Clocked by keyboard a start bit: always 0 8 bits of data lsb first one parity bit (odd) a stop bit: always 1 Clocked by keyboard Value should be latched by FPGA on neg edge of keyboard clock Illustration from http://www.beyondlogic.org/keyboard/keybrd.htm

What is Sent ASCII is not sent! Scan codes for keys Most keys have an 8-bit (single byte) scancode Some have two bytes A few have even more! Most (not all, be careful!) keyboards use these scancodes: Illustration from Nexys 3 manual

Scan Codes Normally translated by software Software takes care of You remap your keys, for example Software takes care of Shift, caps lock, control

Some Scan Codes Long Two code sequence common Some special keys use even more… …have a look at Break key!

Even More Complicated Scan code generated when you press And when you release Two bytes: F0 followed by key scan code Example: Space pressed, 29 sent Space released, F0 29 sent

Resources Information Scan codes Available on the class website: http://www.beyondlogic.org/keyboard/keybrd.htm Scan codes http://www.barcodeman.com/altek/mule/scandoc.php Available on the class website: my Verilog for keyboard

My Verilog Have Verilog for keyboard To use: a test/demo which displays data from keyboard onto 7-segment display have tested it with the FPGA kit; seems to work fine To use: You will memory-map the character code register give the keyboard a memory address so the CPU can read it using lw instructions Handle presses and releases appropriately in software Either: Check for a key release before reading a new key press OR: Delaying next key read (by, say, 1/4th sec) gives you automatic “key repeat” feature!

Mice

Mouse Very similar interface (clk & data) Read Verilog But: 3 words sent w/ mouse movement or button press Read pp. 14-15 of Nexys 3 manual / pp. 12-13 of Nexys 4 manual Verilog I can guide you to modify keyboard.v to read 3 bytes

Movement Movement is relative XS, YS are sign (+ is up/right) XY, YY are overflow (too fast) L, R are buttons

Scroll Wheel, etc. Extensions to original 2 button PS/2 mouse See http://www.computer-engineering.org/ps2mouse/

Joystick

Joystick module 2 axes: x and y On-board microprocessor 10-bit position values On-board microprocessor handles debouncing communicates with host Info on class website reference manual Verilog code demo: feeds joystick output to the 7-seg display you will modify to feed the output into your memory-mapped I/O unit instead

Nexys 4 boards have built-in accelerometer For Nexys 3: read on…

Accelerometer module 3-axis accelerometer On-board microprocessor x, y, z components of gravity helps determine orientation and acceleration On-board microprocessor communicates with host Info on class website reference manual Verilog code demo: feeds accelerometer output to the 7-seg display you will modify to feed the output into your memory-mapped I/O unit instead

Keypad

Keypad module 4x4 keypad Simple interface Info on class website 0-9, A-F one hex character input Simple interface 4-bit row, 4-bit column a ‘0’ means pressed Info on class website reference manual Verilog code demo: feeds keypad output to the 7-seg display you will modify to feed the output into your memory-mapped I/O unit instead

Stereo Audio Amplifier Nexys 4 has mono amplified built-in Nexys 3/Nexys 4: you can attach a stereo module (read on…)

Amplifier module Stereo output Very very low-level…! Verilog code headphone jack compatible Very very low-level…! expects analog waveform on input! your design on FPGA will have to generate an analog value by rapidly toggling between 0 and 1 e.g., 60% of the time ‘1’ value will approximate an analog value of 0.60V (if range is 0-1V) Verilog code I will post mine on the website