USB Library
USB Library
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.
Features
- USB 2.0 Full-speed (12Mbps) and High-speed (480Mbps) modes.
- Device mode.
- Bulk, control, interrupt and isochronous endpoint types supported.
Typical Resource Usage
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.1K |
1 |
USB device (L series) |
13 |
8 |
0 |
~8.4K |
1 |
Software version and dependencies
This document pertains to version 3.1.2 of this library. It is known to work on version 14.2.0 of the xTIMEcomposer tools suite, it may work on other versions.
This library depends on the following other libraries:
- lib_logging (>=2.0.0)
- lib_xassert (>=2.0.0)
- lib_gpio (>=1.0.0)
Related application notes
The following application notes use this library:
- AN00125 - USB mass storage device class
- AN00126 - USB printer device class
- AN00127 - USB video device class
- AN00128 - USB Audio device class
- AN00129 - USB HID device class
- AN00130 - Extended USB HID class
- AN00131 - USB CDC-EDC device class
- AN00132 - USB Image device class