| LUFA Library 140302 |

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Modules
USB Core - LUFA/Drivers/USB/USB.h

Core driver for the microcontroller hardware USB module. More...

## Modules
| Device Management
| USB Device management definitions for USB device mode.
| Endpoint Management
| Endpoint management definitions.
| HID Report Parser
| USB Human Interface Device (HID) Class report descriptor parser.
| Host Management
| USB Host management definitions for USB host mode.
| Pipe Management
| Pipe management definitions.
| Standard USB Requests
| USB control endpoint request definitions.
| USB Descriptors
| Standard USB Descriptor definitions.
| USB Events
| USB Event management definitions.
| USB Interface Management
| USB Controller definitions for general USB controller management.
| USB Mode Tokens
| USB mode and feature support definitions.
| USB On The Go (OTG) Management
| USB OTG management definitions.

## Detailed Description

# Module Source Dependencies

The following files must be built with any user project that uses this module:

- LUFA/Drivers/USB/Core/ConfigDescriptors.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/DeviceStandardReq.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/Events.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/HostStandardReq.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/USBTask.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/Device_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/Endpoint_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/EndpointStream_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/Host_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/Pipe_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/PipeStream_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/USBController_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Core/ARCH/USBInterrupt_ARCH.c (Makefile source module name: LUFA_SRC_USB)
- LUFA/Drivers/USB/Class/Common/HIDParser.c (Makefile source module name: LUFA_SRC_USB)

# Module Description

Driver and framework for the USB controller of the selected architecture and microcontroller model. This module consists of many submodules, and is designed to provide an easy way to configure and control USB host, device or OTG mode USB applications.

The USB stack requires the sole control over the USB controller in the microcontroller only; i.e. it does not require any additional timers or other peripherals to operate. This ensures that the USB stack requires as few resources as possible.

The USB stack can be used in Device Mode for connections to USB Hosts (see Device Management), in Host mode for hosting of other USB devices (see Host Management), or as a dual role device which can either act as a USB host or device depending on what peripheral is connected (see USB On The Go (OTG) Management). Both modes also require a common set of USB management functions found USB Interface Management.