USB Libraries Help > USB Device Libraries > USB Device Library - Getting Started > Introduction
MPLAB Harmony USB Stack
Introduction

The MPLAB Harmony USB Device Library (referred to as the USB Device Library) provides embedded application developers with a framework to design and develop a wide variety of USB Devices. A choice of Full Speed only or Full Speed and Hi-Speed USB operations are available, depending on the selected PIC32 or SAM microcontroller. The USB Device Library facilitates development of standard USB devices through function drivers that implement standard USB Device class specification. Vendor USB devices can be implemented via USB Device Layer Endpoint functions. The USB Device Library is modular, thus allowing application developers to readily design composite USB devices. The USB Device Library is a part of the MPLAB Harmony installation and is accompanied by demonstration applications that highlight library usage. These demonstrations can also be modified or updated to build custom applications. The USB Device Library also features the following:

  • Support for different USB device classes (CDC, Audio, HID, MSD, Printer and Vendor)
  • Supports multiple instance of the same class in a composite device
  • Supports multiple configurations at different speeds
  • Supports Full-Speed and High-Speed operation
  • Supports multiple USB peripherals (allows multiple device stacks)
  • Modular and Layered architecture
  • Supports deferred control transfer responses
  • Completely non-blocking
  • Supports both polled and interrupt operation
  • Works readily in an RTOS application

This document serves as a getting started guide and provides information on the following:

  • USB Device Library architecture
  • USB Device Library - application interaction
  • Creating your own USB device
Note: 
It is assumed that the reader is familiar with the USB 2.0 specification (available at www.usbif.org). While the document, for the sake completeness, does cover certain aspects of the USB 2.0 protocol, it is recommended that the reader refer to the specification for a complete description of USB operation.