USB HID Class - Extended on xCORE-200 Explorer

<< View All Application Notes

USB examples

  • Version
  • USB HID Class - Extended on xCORE-200 Explorer

    This application note shows how to create a USB device compliant to the standard USB Human Interface Device (HID) class on an XMOS multicore microcontroller.

    The code associated with this application note provides an enhancement to AN00129 for extending the USB HID device to interface with hardware which can provide input for a USB mouse.

    This example uses the ADC on the XMOS xCORE-USB device to interface to a mixed signal sliceCARD and provide a joystick interface which allows the USB HID to be controlled.

    The application operates as a simple mouse which when running moves the mouse pointer on the host machine. This demonstrates the simple way in which PC peripheral devices can easily be deployed using an xCORE device.

    Note: This application note provides a standard USB HID class device and as a result does not require drivers to run on Windows, Mac or Linux.

    This application note describes extending XMOS application note AN00129 for the xCORE-200 explorerKIT platform. The demo application is extended using the functionality described in AN00181 for accesing the accelerometer on the xCORE-200 explorerKIT.

    Required tools and libraries

    • xTIMEcomposer Tools - Version 14.0.0
    • XMOS USB library - Version 3.1.0
    • XMOS I2C library - Version 2.0.0

    Required hardware

    This application note is designed to run on an XMOS xCORE-200 series device.

    The example code provided with the application has been implemented and tested on the xCORE-200 explorerKIT but there is no dependancy on this board and it can be modified to run on any development board which uses an xCORE-200 series device.


    • This document assumes familiarity with the XMOS xCORE architecture, the Universal Serial Bus 2.0 Specification (and related specifications, the XMOS tool chain and the xC language. Documentation related to these aspects which are not specific to this application note are linked to in the references in the appendix.
    • For descriptions of XMOS related terms found in this document please see the XMOS Glossary [1].
    • Application notes AN00129 (USB HID) and AN00181 (Accelerometer)
    • For the full API listing of the XMOS USB Device (XUD) Library please see thedocument XMOS USB Device (XUD) Library [2].
    • For information on designing USB devices using the XUD library please see the XMOS USB Device Design Guide for reference [3].