PS/2: Difference between revisions
From ArmadeusWiki
mNo edit summary |
|||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
=Instructions to connect a PS/2 keyboard to your Armadeus board= | |||
==Introduction== | |||
Your Armadeus board allows you to connect it a PC keyboard, by using the power of the Spartan3 FPGA (if present on your board). | Your Armadeus board allows you to connect it a PC keyboard, by using the power of the Spartan3 FPGA (if present on your board). | ||
==Hardware connection== | |||
[[Image:PS2_Schema.png]] [[http://artemys25.free.fr/armadeus/images/PS2_Schema.png PS2_Schema.png]] | [[Image:PS2_Schema.png]] [[http://artemys25.free.fr/armadeus/images/PS2_Schema.png PS2_Schema.png]] | ||
Connect the PS/2 DATA line to the FPGA pin P137 (IO_L27N_0) and the CLOCK one to the FPGA pin P140 (IO_L01P_0). | * Connect the PS/2 DATA line to the FPGA pin P137 (IO_L27N_0) and the CLOCK one to the FPGA pin P140 (IO_L01P_0). | ||
If your keyboard supports 3,3v power supply you don't need to use the resistor divider brige ! Just use 3,3v from | * If your keyboard supports 3,3v power supply you don't need to use the resistor divider brige ! Just use 3,3v from your development board and connect the PS/2 connector pins directly to the FPGA. | ||
==Firmware installation== | |||
Firmware for PS/2 is avaiblable in your SVN repository: firmware/PS2/ | * Firmware for PS/2 is avaiblable in your SVN repository: ''firmware/PS2/ps2_top.bit'' | ||
Copy it to your TFTP directory and follow the procedure | * Copy it to your TFTP directory and follow the procedure [[Target_Software_Installation#FPGA_firmware_installation|here]]. | ||
==Memory Map== | |||
The core uses the following register map: | The core uses the following register map: | ||
{|border=1 | {| border="1" cellpadding="5" cellspacing="0" summary="Signal connections" | ||
|- | |- style="background:#efefef;" | ||
! Address !! Name !! Description | |||
|- align="center" | |||
|---------------- | |---------------- | ||
|0x12000000 || Status register ||The following bits are used: 0x2 => empty, 0x8=>full, the other bits can be ignored (not used or for debug purposes) | |0x12000000 || Status register ||The following bits are used: 0x2 => empty, 0x8=>full, the other bits can be ignored (not used or for debug purposes) | ||
Line 35: | Line 36: | ||
|} | |} | ||
== | ==Driver== | ||
Use [[Linux driver for FPGA controlled keyboards| this Linux driver]] to control this IP. | |||
==BUGS== | |||
Status register starts with value 0x000A -> Fifo Full + Fifo Empty normal ?? | |||
==Links== | |||
* http://www.barcodeman.com/altek/mule/scandoc.php | * http://www.barcodeman.com/altek/mule/scandoc.php | ||
Line 45: | Line 49: | ||
* http://www.computer-engineering.org/ps2protocol/ | * http://www.computer-engineering.org/ps2protocol/ | ||
[[Category:UserInput]] | |||
[[Category: |
Latest revision as of 21:33, 1 August 2010
Instructions to connect a PS/2 keyboard to your Armadeus board
Introduction
Your Armadeus board allows you to connect it a PC keyboard, by using the power of the Spartan3 FPGA (if present on your board).
Hardware connection
- Connect the PS/2 DATA line to the FPGA pin P137 (IO_L27N_0) and the CLOCK one to the FPGA pin P140 (IO_L01P_0).
- If your keyboard supports 3,3v power supply you don't need to use the resistor divider brige ! Just use 3,3v from your development board and connect the PS/2 connector pins directly to the FPGA.
Firmware installation
- Firmware for PS/2 is avaiblable in your SVN repository: firmware/PS2/ps2_top.bit
- Copy it to your TFTP directory and follow the procedure here.
Memory Map
The core uses the following register map:
Address | Name | Description |
---|---|---|
0x12000000 | Status register | The following bits are used: 0x2 => empty, 0x8=>full, the other bits can be ignored (not used or for debug purposes) |
0x12000002 | Data read register | The keyboard scancodes can be read from this register. After each access, the next byte from the fifo appears here |
0x12000004 | Test register | (has nothing to do with the PS2 interface, just for fun) The lower 8 bit behave like a normal RAM |
0x12000006 | Test register | (has nothing to do with the PS2 interface, just for fun) The lower 8 bit behave like a normal RAM |
0x12000008 | Test register | (has nothing to do with the PS2 interface, just for fun) The value is always 0x1234, write is ignored |
Driver
Use this Linux driver to control this IP.
BUGS
Status register starts with value 0x000A -> Fifo Full + Fifo Empty normal ??