Interactive application requires input method for reflecting user action. For example, game application requires user input to control the character on the screen, music player application requires user input to select the music. One of the popular input device is USB game pad. This article shows a USB host system implementation with open source USB host IP core.
Input from Serial Terminal
User action is sent from terminal application. When a key is pushed on the terminal application, the ASCII code is transferred from the PC to the target system. For example, if ‘A’ is pushed on the terminal, it is sent via serial port from the PC to the CPU on the target system, then used for interactions(move object on the screen to the left, to the right, and so on)
Input from USB Device
Commercially available USB game pad is used as an input method. There is no additional PC to run terminal application.
USB Specification
USB specification is available at USB Implementers Forum, Inc*1
USB game controller is classified in HID, additional document is also *2
*2 Device Class Definition for Human Interface Devices (HID)