3.1.1 Introduction
The MPLAB Harmony USB Host Library (referred to as the USB Host Library) provides embedded application developers with a framework to design and develop USB Host Support for a wide variety of USB Device Classes. Low-Speed and Full-Speed USB Devices can be supported with PIC32MX and SAM microcontrollers. High-Speed devices can be supported with PIC32MZ and SAM microcontrollers. The USB Host Library facilitates support of standard USB devices through client drivers that implement standard the USB Device class specification. The library is modular, thus allowing application developers to readily support composite USB devices.
The USB Host Library is a part of the MPLAB Harmony installation and is accompanied by demonstration applications that highlight library usage. These demonstration applications can also be modified or updated to build custom applications. The USB Host Library also features the following:
- Class Driver Support (CDC, Audio, HID, and MSD)
- Designed to support USB devices with multiple configurations at different speeds
- Supports low-speed, full-speed and high-speed operation
- Supports multiple USB peripherals (allows multiple host stacks)
- Modular and Layered architecture
- Completely non-blocking
- Supports both polled and interrupt operation
- Works readily in an RTOS environment
- Designed to readily integrate with other Harmony Middleware
This document serves as a getting started guide and provides information on the following:
- USB Host Stack Architecture
- USB Host Library - Application Interaction
It is assumed that the reader is familiar with the USB 2.0 specification (available at www.usbif.org). While certain topics in USB may be discussed in this document, it is recommended that the reader refer to the specification documentation for a complete description.