µC/OS RTOS and Stacks

USB Device

Real-time USB device software stack designed for embedded systems.
It allow you to create a product that interoperates with standard USB devices, and include many class drivers to support a broad selection of device types.

Return to the µC/OS Overview


Key Features

Thanks to a hardware abstraction layer, you can easily port Micrium's USB software to any new USB devices by simply modifying existing hardware access routines.

  • Support for High Speed (480 Mbit/s) and Full Speed (12 Mbit/s) devices
  • Compliant with USB 2.0 specification
  • Easy-to-use API
  • Extensive test cases and test harness to verify stack integration
  • Support for composite (multifunction) devices
  • Support for multiple USB device configurations
  • Power saving functionalities such as device suspend and resume
  • Support for Audio, CDC ACM, CDC EEM, HID, MSC, and Vendor classes.
  • Support for Microsoft OS Descriptors for USB devices (which simplifies installation of vendor specific drivers on Windows OS).

Micrium and USB

Class and Driver Support

USB Device Classes

Class Example USB Devices
  • Support audio devices such as speakers, microphones, headset, etc.
  • Extended audio functions (such as adaptive audio correction) and controls (volume, mute, treble, bass, etc.)
Communications Device Class
Abstract Control Model (CDC ACM)
  • Emulation of a virtual serial port on the host PC
  • The host PC can communicate with the device using a serial terminal or native serial communication APIs
Communications Device Class
Ethernet Emulation Model (CDC EEM)
  • Ethernet networking over USB
  • The µC/OS TCP/IP module is used for the network communication and any of its applications can be used
Human Interface Device Class (HID)
  • Support for devices such as mice and keyboards
Mass Storage Class (MSC)
  • Support for storage media from the host PC
  • Offers advanced features such as interoperability with µC/OS file system module
Vendor Class The vendor class allows you to create any device that cannot fall into a standard class for which a standard has been set by the USB implementers forum. It allows you to perform raw bulk and interrupt communications with the host. Micrium offers a framework to help create host application (Windows OS only) that communicates with these devices.

USB Device Controllers

Driver Example of Platform
Analog Device *
  • Analog Device ADSP-BF52x
  • Analog Device ADSP-BF60x
  • Atmel AVR UC3 C-Series (AT32UC3C)
  • Atmel AVR UC3 A0-Series (AT32UC3A0x)
  • Atmel AVR UC3 A1-Series (AT32UC3A1x)
  • Atmel AVR UC3 B-Series (AT32UC3B)
  • Atmel SAM3U
  • Atmel SAM9R (e.g. SAM9RL64)
  • Atmel SAM9M (e.g. SAM9M10)
  • Atmel SAM9G (e.g. SAM9G45)
  • NXP/Freescale Kinetis K series
  • NXP LPC17xx (e.g. LPC1768)
  • NXP LPC214x (e.g. LPC2148)
  • NXP LPC23xx (e.g. LPC2378)
  • NXP LPC24xx (e.g. LPC2468, LPC2478)
  • NXP LPC29xx
  • NXP LPC318x
  • NXP LPC313x (e.g. LPC3131)
  • NXP LPC185x (e.g. LPC1857)
  • NXP LPC183x
  • NXP LPC182x
  • NXP LPC435x (e.g. LPC4350)
  • NXP LPC433x
  • NXP LPC432x
  • Xilinx Zynq
  • NXP/Freescal iMX
  • NXP/Freescale Kinetis K70
  • Renesas RZ/A series (RZ/A1)
  • Renesas RX64M
  • Renesas RX600 series (RX62N, RX63N, RX630)
  • Renesas RX100 series (RX111)
  • Renesas V850E2/Jx4-L series
  • ST STM32 F1 series (e.g. STM32F105, ST STM32F107)
  • ST STM32 F2 series (e.g. STM32F207, ST STM32F217)
  • ST STM32 F4 series (e.g. STM32F407, ST STM32F417)
  • ST STM32F103xx (e.g. STM32F103ZE)
  • ST STM32F102xx
  • ST STM32L1xx (e.g. STM32L152)
  • ST STR9
  • TI RM48 series
  • TI Stellaris LM4F series
  • TI Tiva C-series

*This driver is developed and supported by Analog Devices. Please visit the Micrium USB Device™ Stack for CrossCore® Embedded Studio page for more details.

Stack Compliance

Micrium uses USB Command Verifier (USBCV) to validate the compliance of the stack with the USB Specification. USBCV is the official compliance test tool which evaluates High, Full and Low-speed USB devices for conformance. This tool is provided by the USB Implementers Forum (USB-IF).

USBCV offers a test suite to validate the compliance of a device with Chapter 9 of the USB specification Revision 2.0 (enumeration process). It also offers a test suite for several classes.

The following table lists the different layers of Micrium USB Device and the USBCV test suite used to validate the implementation.

Layer USBCV test suite
Core Chapter 9 tests
Human Interface Device class HID tests
Mass Storage Class MSC tests
Device Controller Driver Chapter 9, HID, MSC and PDHC tests


Licensing Packages That Meet Your Needs

Micrium embedded components are priced as individual modules or as bundled solutions. Check out our licensing page for more information.


Micrium's user documentation for USB Device is available online on the Micrium documentation site.

Contact us today and start working with µC/OS