USB.h 6.44 KB
 Dean Camera committed Feb 23, 2009 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 /* LUFA Library Copyright (C) Dean Camera, 2009. dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ /* Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, and that the name of the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software. */ /** \file * * Master include file for the library USB functionality. This file should be included in all user projects making * use of the USB portions of the library, instead of including any headers in the USB/LowLevel or USB/HighLevel * directories. */  Dean Camera committed Apr 16, 2009 38 39 /** @defgroup Group_USB USB - LUFA/Drivers/USB/USB.h *  Dean Camera committed Apr 17, 2009 40 41 42 43 44 45 46 47 48 49 50  * \section Sec_Dependencies Module Source Dependencies * The following files must be built with any user project that uses this module: * - LUFA/Drivers/USB/LowLevel/DevChapter9.c * - LUFA/Drivers/USB/LowLevel/Endpoint.c * - LUFA/Drivers/USB/LowLevel/Host.c * - LUFA/Drivers/USB/LowLevel/HostChapter9.c * - LUFA/Drivers/USB/LowLevel/LowLevel.c * - LUFA/Drivers/USB/LowLevel/Pipe.c * - LUFA/Drivers/USB/HighLevel/Events.c * - LUFA/Drivers/USB/HighLevel/USBInterrupt.c * - LUFA/Drivers/USB/HighLevel/USBTask.c  Dean Camera committed May 22, 2009 51  * - LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  Dean Camera committed Apr 17, 2009 52 53  * * \section Module Description  Dean Camera committed Jul 14, 2009 54 55 56  * Driver and framework for the USB controller hardware on the USB series of AVR microcontrollers. 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.  Dean Camera committed Nov 13, 2009 57 58 59 60 61 62 63 64 65  * * The USB stack requires the sole control over the USB controller in the microcontroller only; i.e. it does not * require any additional AVR timers, etc. 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 \ref Group_Device), in Host mode for * hosting of other USB devices (see \ref Group_Host), or as a dual role device which can either act as a USB host * or device depending on what peripheral is connected (see \ref Group_OTG). Both modes also require a common set * of USB management functions found \ref Group_USBManagement.  Dean Camera committed Apr 16, 2009 66 67  */  Dean Camera committed Jun 04, 2009 68 69 70 71 72 73 74 75 76 77 /** \ingroup Group_USB * @defgroup Group_USBClassDrivers USB Class Drivers * * Drivers for both host and device mode of the standard USB classes, for rapid application development. * Class drivers give a framework which sits on top of the low level library API, allowing for standard * USB classes to be implemented in a project with minimal user code. These drivers can be used in * conjunction with the library low level APIs to implement interfaces both via the class drivers and via * the standard library APIs. * * Multiple device mode class drivers can be used within a project, including multiple instances of the  Dean Camera committed Aug 05, 2009 78 79  * same class driver. In this way, USB Hosts and Devices can be made quickly using the internal class drivers * so that more time and effort can be put into the end application instead of the USB protocol.  Dean Camera committed Nov 04, 2009 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115  * * The available class drivers and their modes are listed below. * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  Dean Camera committed Nov 08, 2009 116  *  Dean Camera committed Nov 04, 2009 117 118 119 120 121 * * * * *  Dean Camera committed Nov 08, 2009 122  *  Dean Camera committed Nov 04, 2009 123 124 125 126 127 128 129  * * * * * * *  Dean Camera committed Jun 04, 2009 130 131  */  Dean Camera committed Feb 23, 2009 132 133 134 #ifndef __USB_H__ #define __USB_H__  Dean Camera committed Jun 14, 2009 135  /* Preprocessor Checks: */  Dean Camera committed Feb 23, 2009 136 137 138  #if (!(defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \ defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \ defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__) || \  Dean Camera committed Jul 16, 2009 139 140  defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || \ defined(__AVR_ATmega8U2__) || \  Dean Camera committed Feb 23, 2009 141 142 143 144 145 146  defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || \ defined(__AVR_ATmega32U6__))) #error The currently selected AVR model is not supported under the USB component of the LUFA library. #endif /* Includes: */  Dean Camera committed Apr 16, 2009 147  #include "HighLevel/USBMode.h"  Dean Camera committed Apr 05, 2009 148 149 150 151 152 153  #include "HighLevel/USBTask.h" #include "HighLevel/USBInterrupt.h" #include "HighLevel/Events.h" #include "HighLevel/StdDescriptors.h" #include "LowLevel/LowLevel.h"  Dean Camera committed Feb 23, 2009 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170  #if defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__) #include "LowLevel/Host.h" #include "LowLevel/HostChapter9.h" #include "LowLevel/Pipe.h" #endif #if defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__) #include "LowLevel/Device.h" #include "LowLevel/DevChapter9.h" #include "LowLevel/Endpoint.h" #endif #if defined(USB_CAN_BE_BOTH) || defined(__DOXYGEN__) #include "LowLevel/OTG.h" #endif  Dean Camera committed May 22, 2009 171  #include "HighLevel/ConfigDescriptor.h"  Dean Camera committed Apr 16, 2009 172   Dean Camera committed Feb 23, 2009 173 174 #endif