Introduction

The USB Device Stack provides embedded application developers with a framework to design and develop several USB devices. The USB Device Stack facilitates the development of standard USB devices through function drivers that implement standard USB Device class specifications. The stack is structured in layers, where the Hardware Abstraction Layer (HAL) interacts with the USB peripherals and endpoints, the core layer handles transactions between the HAL and the class layer, and the class layer handles the class-specific interactions with the host.

The USB Device Stack is a part of the MPLAB® Code Configurator (MCC) Melody installation accompanied, by example applications highlighting stack usage. These examples will also be modified or updated to build custom applications.

The USB Device Stack features the following:
  • Support for different USB device classes (CDC, HID and Vendor)
  • Support for multiple configurations
  • Support for full-speed operation
  • Support for deferred control transfer responses
  • A completely non-blocking architecture
  • Support for both polled and interrupted operations
  • Support for Graphical User Interface (GUI) configuration through MCC
This document serves as a getting-started guide and provides information on the following:
  • USB Device Stack architecture
  • HID, CDC and Vendor Class examples with How-to guides
  • USB Device Stack - API documentation