AN00129: USB HID Class [sw]
Version Released Comments 2.0.2rc1 2016-01-08 DOWNLOAD 2.0.1rc1 2015-09-30 DOWNLOAD 2.0.0rc3 2015-03-22 DOWNLOAD
Version Released Comments 2.0.2rc1 2016-01-08 DOWNLOAD 2.0.1rc1 2015-09-30 DOWNLOAD 2.0.0rc3 2015-03-22 DOWNLOAD
Version Released Comments 2.0.2rc1 2016-01-08 DOWNLOAD 2.0.1rc1 2015-09-30 DOWNLOAD 2.0.0rc3 2015-03-22 DOWNLOAD
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.
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]
.
[1]
[2]
[3] http://1m2n3b4v.xmos.com/published/xmos-usb-device-design-guide
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-USB sliceKIT platform.
This application note is designed to run on an XMOS xCORE-USB series device.
The example code provided with the application has been implemented and tested
on the xCORE-USB sliceKIT (XK-SK-U16-ST) but there is no dependancy on this board
and it can be modified to run on any development board which uses an xCORE-USB
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]
.- Understanding of USB HID class implementation from application note AN00129
- 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]
.
[1]
[2]
[3] http://1m2n3b4v.xmos.com/published/xmos-usb-device-design-guide
A software defined, industry-standard, USB library
that allows you to control an USB bus via xCORE ports.
The library provides functionality to act as a USB device.
This library is aimed primarily for use with xCORE U-Series or
the xCORE-200 Series devices but it does also support xCORE L-Series devices.
- USB 2.0 Full-speed (12Mbps) and High-speed (480Mbps) modes.
- Device mode.
- Bulk, control, interrupt and isochronous endpoint types supported.
This following table shows typical resource usage in some different configurations. Exact resource usage will depend on the particular use of the library by the application.
Configuration |
Pins |
Ports |
Clocks |
Ram |
Logical cores |
---|---|---|---|---|---|
USB device (U series) |
23 (internal) |
11 |
0 |
~8.8K |
1 |
USB device (xCORE-200 series) |
23 (internal) |
11 |
0 |
~9.3K |
1 |
USB device (L series) |
13 |
8 |
0 |
~8.4K |
1 |
This document pertains to version 3.1.1 of this library. It is known to work on
version 14.1.1 of the xTIMEcomposer tools suite, it may work on other versions.
This library depends on the following other libraries:
The following application notes use this library: