Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:programmable-logic:tutorials:basys-3-keyboard-demo:start [2016/08/02 22:05] Arthur Brownlearn:programmable-logic:tutorials:basys-3-keyboard-demo:start [2022/03/31 23:10] (current) Arthur Brown
Line 1: Line 1:
-====== Basys3 Keyboard Demo ======+====== Basys 3 Keyboard Demo (Redirect) ====== 
 +~~NOSEMANTIC~~ 
 +~~REDIRECT>/programmable-logic/basys-3/demos/keyboard~~ 
 +{{tag>redirect}}
  
-{{:nexys4-ddr:n4k.png?nolink&600|}} 
- 
-===== Overview ===== 
-==== Features Used ==== 
- 
- 
-|              ^ Not Used             ^ Used        ^ 
-^ 16 user switches    X  |    | 
-^ 16 user LEDs  |    |  X  | 
-^ 5 user pushbuttons    |  X  |    | 
-^ 4-digit 7-segment display    X  |    | 
-^ 4 Pmod connectors    X  |    | 
-^ XADC Analog input    X  |    | 
-^ 12-bit VGA output    X  |    | 
-^ USB-UART Bridge      |  X  | 
-^ Serial Flash for application data    X  |    | 
-^ USB HID Host with mouse    X  |    | 
-^ USB HID Host with keyboard      |  X  | 
- 
-===== Description ===== 
- 
-The Keyboard Demo project demonstrates a simple usage of the Basys3' 
-USB-HID and USB-UART ports. The behavior is as follows: 
-  
- * The user presses a key on the keyboard, this sends a keyboard scan code to the Basys3. This scan code is read and transmitted to a terminal application via the USB-UART bridge. When a new scan code is read, it is shifted into the ASCII string from the right. A scan code of F0xx indicates that key xx has been released. 
-       
-------- 
- 
-===== Prerequisites ===== 
- 
-===Skills=== 
-  * **Basic familiarity with Vivado** 
-    *  //This experience can be found by walking through our "Getting Started with Vivado" guide// 
- 
-===Hardware=== 
-  * **Basys3 FPGA board** 
-  * **Micro-USB cable** 
-  * **USB Keyboard**  
- 
-===Software=== 
-  * **Vivado Design Suite 2016.X**  
-    * //Newer/older versions can be used, but the procedure may vary slightly// 
- 
------ 
- 
-===== Downloads ===== 
-Basys3 Support Repository -- [[https://github.com/Digilent/Basys3/archive/master.zip|ZIP]] [[https://github.com/Digilent/Basys3|GIT Repo]] 
- 
-------- 
-===== How to... ===== 
- 
- 
- 
-==== 1. Generate the Project ==== 
- 
->1.1) Download the repository linked in the download section and place it in the location of your choosing.  
- 
->1.2) Generate the **Keyboard** project within the "Projects" folder by following this guide before continuing: [[vivado:github|How to Generate a Project from Digilent's Github]] 
- 
-==== 2. Build the Project ==== 
- 
->2.1) Click **Generate Bitstream** on the left hand menu towards the bottom. Vivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically.  
-> 
->Note: If you want, you can click each step by itself in the order of **Run Synthesis**, **Run Implementation** and then **Generate Bitstream**. 
-> 
->{{:learn:programmable-logic:tutorials:basys-3-keyboard-demo:bitstream.jpg?600|}} 
- 
-==== 3. Program the Board ==== 
- 
->3.1) Once you have generated your bit file, Click on the hardware manager and connect to your board by choosing the local server option. 
-> 
->{{:learn:programmable-logic:tutorials:basys-3-keyboard-demo:newtarget.jpg?600|}} 
- 
->3.2) Click program to load the project onto your Basys3. 
- 
-==== 4. Run the Project ==== 
- 
-This portion will help you run the demo and observe all its features. 
- 
->4.1) Terminal Setup 
-> 
->Connect to your board by opening the associated COM port. Then set up your terminal for 8 bit data, a baud rate of 9600, no parity bit, and one stop bit. 
-> 
->{{:learn:programmable-logic:tutorials:basys-3-keyboard-demo:keyboard-setup.jpg?nolink&500|}} 
- 
->4.2) Key Press 
-> 
->When a button is pressed, the value of the scan code will be converted to ASCII and transmitted to the terminal. In the picture, 'a' is pressed, so a scan code of "1C" is displayed. 
-> 
->{{:learn:programmable-logic:tutorials:basys-3-keyboard-demo:keypress.jpg?nolink&500|}} 
- 
->4.3) Key Release 
->   
->When the 'a' key is released, a scan code of "F0 1C" is sent to the terminal. 
-> 
->{{:learn:programmable-logic:tutorials:basys-3-keyboard-demo:keyrelease.jpg?nolink&500|}} 
- 
->4.4) Multi key press 
->   
->When multiple keys are pressed their scan codes are sent in order. In this case, Q ("15") was pressed, followed by W ("1D"). 
-> 
->{{:learn:programmable-logic:tutorials:basys-3-keyboard-demo:twokey.jpg?nolink&500|}} 
- 
-{{tag>learn programmable-logic tutorial basys-3}}