This is an old revision of the document!


Nexys Video Keyboard Demo

Overview

Features Used

Not Used Used
8 user switches X
8 user LEDs X
128×32 monochrome OLED display X
USB-UART Bridge X
160-pin FMC LPC connector X
Micro SD card connector X
HDMI Sink and HDMI Source X
DisplayPort Source X
Audio codec w/ four 3.5mm jacks X
6 user push buttons X
User EEPROM X
10/100/1000 Ethernet PHY X
512MiB 800Mt/s DDR3 Memory X
Serial Flash X
Four Pmod ports X
Pmod for XADC signals X
USB HID Host X

Description

The Keyboard Demo project demonstrates a simple usage of the Nexys Video's 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 Nexys Video. 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

Hardware

  • Nexys Video FPGA board
  • Micro-USB cable
  • USB Keyboard

Software

  • Vivado Design Suite 2016.4
    • Newer versions can be used, but the procedure may vary slightly

Downloads

Nexys Video Support Repository – ZIP 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: 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.

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.


3.2) Click program to load the project onto your Nexys Video.

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 plugging a micro USB cable into the port labeled UART on your board, and opening the associated COM port in a terminal. Then set up your terminal for 8 bit data, a baud rate of 9600, no parity bit, and one stop bit.

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 sent to the terminal.

4.3) Key Release

When the 'a' key is released, a scan code of “F0 1C” is sent.

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”).