Changed PIPE_CONTROLPIPE_DEFAULT_SIZE from 8 to 64 to try to prevent problems with faulty devices which do not respect the given wLength value when reading in the device descriptor.

Further documentation improvements - removed file view from the main library documentation, replaced file references in the documentation with group references.
pull/1469/head
Dean Camera 16 years ago
parent edcfaf7716
commit 253deb996f

@ -203,7 +203,7 @@ USB_Descriptor_String_t ProductString =
.UnicodeString = L"AVR CDC Bootloader" .UnicodeString = L"AVR CDC Bootloader"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see LUFA library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -51,7 +51,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -137,7 +137,7 @@ USB_Descriptor_String_t ProductString =
.UnicodeString = L"AVR DFU Bootloader" .UnicodeString = L"AVR DFU Bootloader"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -51,7 +51,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -166,7 +166,7 @@ USB_Descriptor_String_t ProductString =
.UnicodeString = L"AVR Teensy Bootloader" .UnicodeString = L"AVR Teensy Bootloader"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -51,7 +51,7 @@
MCU = at90usb162 MCU = at90usb162
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -265,7 +265,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Audio In Demo" .UnicodeString = L"LUFA Audio In Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -265,7 +265,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Audio Out Demo" .UnicodeString = L"LUFA Audio Out Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -214,7 +214,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA CDC Demo" .UnicodeString = L"LUFA CDC Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -336,7 +336,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Dual CDC Demo" .UnicodeString = L"LUFA Dual CDC Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -193,7 +193,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Generic HID Demo" .UnicodeString = L"LUFA Generic HID Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -193,7 +193,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Joystick Demo" .UnicodeString = L"LUFA Joystick Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -210,7 +210,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Keyboard Demo" .UnicodeString = L"LUFA Keyboard Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -280,7 +280,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Mouse and Keyboard Demo" .UnicodeString = L"LUFA Mouse and Keyboard Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -276,7 +276,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA MIDI Demo" .UnicodeString = L"LUFA MIDI Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -170,7 +170,7 @@ USB_Descriptor_String_t PROGMEM SerialNumberString =
.UnicodeString = L"000000000000" .UnicodeString = L"000000000000"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -193,7 +193,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Mouse Demo" .UnicodeString = L"LUFA Mouse Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -214,7 +214,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA RNDIS CDC Demo" .UnicodeString = L"LUFA RNDIS CDC Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -214,7 +214,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA USB-RS232 Demo" .UnicodeString = L"LUFA USB-RS232 Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -62,7 +62,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -138,7 +138,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Demo" .UnicodeString = L"LUFA Demo"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -31,7 +31,7 @@
/** \file /** \file
* *
* This file contains dummy handlers for all the possible USB events passed to the * This file contains dummy handlers for all the possible USB events passed to the
* application by the library (see Events.h documentation for more details on USB events). * application by the library (see \ref Group_Events documentation for more details on USB events).
* *
* Each event is caught and printed to the USART so that they may be monitored. * Each event is caught and printed to the USART so that they may be monitored.
*/ */

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USBKEY BOARD = USBKEY

@ -42,7 +42,7 @@
* renamed to Endpoint_ClearSETUP(), the Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent() and the * renamed to Endpoint_ClearSETUP(), the Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent() and the
* Pipe_ClearSetupSent() macro is no longer applicable and should be removed - changes made to compliment the new endpoint and pipe * Pipe_ClearSetupSent() macro is no longer applicable and should be removed - changes made to compliment the new endpoint and pipe
* bank management API * bank management API
* - Updated all demos, bootloaders and projects to use the new endpoint and pipe management APIs (thanks to Roman Thiel (Curetis AG)) * - Updated all demos, bootloaders and projects to use the new endpoint and pipe management APIs (thanks to Roman Thiel from Curetis AG)
* - Updated library doxygen documentation, added groups, changed documentation macro functions to real functions for clarity * - Updated library doxygen documentation, added groups, changed documentation macro functions to real functions for clarity
* - Removed old endpoint and pipe aliased read/write/discard routines which did not have an explicit endian specifier for clarity * - Removed old endpoint and pipe aliased read/write/discard routines which did not have an explicit endian specifier for clarity
* - Removed the ButtLoadTag.h header file, as no one used for its intended purpose anyway * - Removed the ButtLoadTag.h header file, as no one used for its intended purpose anyway
@ -72,6 +72,8 @@
* - Fixed PREVENT ALLOW MEDIUM REMOVAL command issuing in the MassStorageHost demo using incorrect parameters (thanks to Mike Alex) * - Fixed PREVENT ALLOW MEDIUM REMOVAL command issuing in the MassStorageHost demo using incorrect parameters (thanks to Mike Alex)
* - Fixed MassStorageHost demo broken due to an incorrect if statement test in MassStore_GetReturnedStatus() * - Fixed MassStorageHost demo broken due to an incorrect if statement test in MassStore_GetReturnedStatus()
* - Fixed reversed signature byte ordering in the CDC bootloader (thanks to Johannes Raschke) * - Fixed reversed signature byte ordering in the CDC bootloader (thanks to Johannes Raschke)
* - Changed PIPE_CONTROLPIPE_DEFAULT_SIZE from 8 to 64 to try to prevent problems with faulty devices which do not respect the given
* wLength value when reading in the device descriptor
* *
* *
* \section Sec_ChangeLog090401 Version 090401 * \section Sec_ChangeLog090401 Version 090401

@ -475,7 +475,7 @@ SHOW_DIRECTORIES = YES
# This will remove the Files entry from the Quick Index and from the # This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES. # Folder Tree View (if specified). The default is YES.
SHOW_FILES = YES SHOW_FILES = NO
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Set the SHOW_NAMESPACES tag to NO to disable the generation of the
# Namespaces page. This will remove the Namespaces entry from the Quick Index # Namespaces page. This will remove the Namespaces entry from the Quick Index

@ -61,7 +61,7 @@
#include "../Peripheral/ADC.h" #include "../Peripheral/ADC.h"
#if !defined(BOARD) #if !defined(BOARD)
#error #error BOARD must be set in makefile to a value specified in BoardTypes.h. #error BOARD must be set in makefile to a value specified in BoardTypes.h.
#elif (BOARD != BOARD_USBKEY) && (BOARD != BOARD_STK525) && (BOARD != BOARD_STK526) #elif (BOARD != BOARD_USBKEY) && (BOARD != BOARD_STK525) && (BOARD != BOARD_STK526)
#error The selected board does not contain a temperature sensor. #error The selected board does not contain a temperature sensor.
#endif #endif

@ -96,7 +96,7 @@
/** Returns the descriptor's type, expressed as the 8-bit type value in the header of the descriptor. /** Returns the descriptor's type, expressed as the 8-bit type value in the header of the descriptor.
* This value's meaning depends on the descriptor's placement in the descriptor, but standard type * This value's meaning depends on the descriptor's placement in the descriptor, but standard type
* values can be accessed in the DescriptorTypes_t enum located in USB/HighLevel/StdDescriptors.h. * values can be accessed in the \ref USB_DescriptorTypes_t enum.
*/ */
#if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__) #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__)
#define DESCRIPTOR_TYPE(DescriptorPtr) DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Type #define DESCRIPTOR_TYPE(DescriptorPtr) DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Type

@ -219,7 +219,7 @@
* \note This event only exists on USB AVR models which support dual role modes. * \note This event only exists on USB AVR models which support dual role modes.
* *
* \note This event does not exist if the USB_DEVICE_ONLY or USB_HOST_ONLY tokens have been supplied * \note This event does not exist if the USB_DEVICE_ONLY or USB_HOST_ONLY tokens have been supplied
* to the compiler (see LowLevel.h documentation). * to the compiler (see \ref Group_USBManagement documentation).
*/ */
void USB_UIDChange(void); void USB_UIDChange(void);
@ -232,7 +232,7 @@
* \note This event only exists on USB AVR models which supports host mode. * \note This event only exists on USB AVR models which supports host mode.
* *
* \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
*/ */
void USB_HostError(const uint8_t ErrorCode); void USB_HostError(const uint8_t ErrorCode);
@ -244,9 +244,9 @@
* \note This event only exists on USB AVR models which supports host mode. * \note This event only exists on USB AVR models which supports host mode.
* *
* \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
* *
* \see USBTask.h for more information on the USB management task and reducing CPU usage. * \see \ref TASK(USB_USBTask) for more information on the USB management task and reducing CPU usage.
*/ */
void USB_DeviceAttached(void); void USB_DeviceAttached(void);
@ -257,9 +257,9 @@
* \note This event only exists on USB AVR models which supports host mode. * \note This event only exists on USB AVR models which supports host mode.
* *
* \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
* *
* \see USBTask.h for more information on the USB management task and reducing CPU usage. * \see \ref TASK(USB_USBTask) for more information on the USB management task and reducing CPU usage.
*/ */
void USB_DeviceUnattached(void); void USB_DeviceUnattached(void);
@ -276,7 +276,7 @@
* \note This event only exists on USB AVR models which supports host mode. * \note This event only exists on USB AVR models which supports host mode.
* *
* \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_DEVICE_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
*/ */
void USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode); void USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode);
@ -294,7 +294,7 @@
* on control transfers, interrupts are disabled during control request processing. * on control transfers, interrupts are disabled during control request processing.
* *
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
* *
* \note Requests should be handled in the same manner as described in the USB 2.0 Specification, * \note Requests should be handled in the same manner as described in the USB 2.0 Specification,
* or appropriate class specification. In all instances, the library has already read the * or appropriate class specification. In all instances, the library has already read the
@ -310,7 +310,7 @@
* This event fires after the value of \ref USB_ConfigurationNumber has been changed. * This event fires after the value of \ref USB_ConfigurationNumber has been changed.
* *
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
*/ */
void USB_ConfigurationChanged(void); void USB_ConfigurationChanged(void);
@ -319,7 +319,7 @@
* the device over to a low power state until the host wakes up the device. * the device over to a low power state until the host wakes up the device.
* *
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
* *
* \see \ref USB_WakeUp() event for accompanying Wake Up event. * \see \ref USB_WakeUp() event for accompanying Wake Up event.
*/ */
@ -331,7 +331,7 @@
* mode. * mode.
* *
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
* *
* \see \ref USB_Suspend() event for accompanying Suspend event. * \see \ref USB_Suspend() event for accompanying Suspend event.
*/ */
@ -344,7 +344,7 @@
* disabled. * disabled.
* *
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
*/ */
void USB_Reset(void); void USB_Reset(void);
@ -355,7 +355,7 @@
* \ref USB_Device_ErrorCodes_t enum located in Device.h. * \ref USB_Device_ErrorCodes_t enum located in Device.h.
* *
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see * \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
* LowLevel.h documentation). * \ref Group_USBManagement documentation).
*/ */
void USB_DeviceError(const uint8_t ErrorCode); void USB_DeviceError(const uint8_t ErrorCode);
#endif #endif

@ -76,12 +76,12 @@
#define NO_DESCRIPTOR 0 #define NO_DESCRIPTOR 0
/** Macro to calculate the power value for the device descriptor, from a given number of milliamps. */ /** Macro to calculate the power value for the device descriptor, from a given number of milliamps. */
#define USB_CONFIG_POWER_MA(x) (x >> 1) #define USB_CONFIG_POWER_MA(mA) (mA >> 1)
/** Macro to calculate the Unicode length of a string with a given number of Unicode characters. /** Macro to calculate the Unicode length of a string with a given number of Unicode characters.
* Should be used in string descriptor's headers for giving the string descriptor's byte length. * Should be used in string descriptor's headers for giving the string descriptor's byte length.
*/ */
#define USB_STRING_LEN(x) (sizeof(USB_Descriptor_Header_t) + (x << 1)) #define USB_STRING_LEN(str) (sizeof(USB_Descriptor_Header_t) + (str << 1))
/** Macro to encode a given four digit floating point version number (e.g. 01.23) into Binary Coded /** Macro to encode a given four digit floating point version number (e.g. 01.23) into Binary Coded
* Decimal format for descriptor fields requiring BCD encoding, such as the USB version number in the * Decimal format for descriptor fields requiring BCD encoding, such as the USB version number in the
@ -183,7 +183,7 @@
/** This module raises the Device Error event while in device mode, if the \ref USB_GetDescriptor() /** This module raises the Device Error event while in device mode, if the \ref USB_GetDescriptor()
* routine is not hooked in the user application to properly return descriptors to the library. * routine is not hooked in the user application to properly return descriptors to the library.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_DeviceError); RAISES_EVENT(USB_DeviceError);
#endif #endif
@ -206,10 +206,9 @@
/* Type Defines: */ /* Type Defines: */
/** Type define for all descriptor's header, indicating the descriptor's length and type. /** Type define for all descriptor's header, indicating the descriptor's length and type.
* *
* \note The non-standard structure element names are documented here - see the StdDescriptors.h file * \note The non-standard structure element names are documented here. If the
* documentation for more information on the two descriptor naming schemes. If the * USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements
* USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names * with names identical to those listed in the USB standard.
* identical to those listed in the USB standard.
*/ */
typedef struct typedef struct
{ {
@ -226,10 +225,9 @@
/** Type define for a standard device descriptor. /** Type define for a standard device descriptor.
* *
* \note The non-standard structure element names are documented here - see the StdDescriptors.h file * \note The non-standard structure element names are documented here. If the
* documentation for more information on the two descriptor naming schemes. If the * USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements
* USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names * with names identical to those listed in the USB standard.
* identical to those listed in the USB standard.
*/ */
typedef struct typedef struct
{ {
@ -286,10 +284,9 @@
/** Type define for a standard configuration descriptor. /** Type define for a standard configuration descriptor.
* *
* \note The non-standard structure element names are documented here - see the StdDescriptors.h file * \note The non-standard structure element names are documented here. If the
* documentation for more information on the two descriptor naming schemes. If the * USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements
* USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names * with names identical to those listed in the USB standard.
* identical to those listed in the USB standard.
*/ */
typedef struct typedef struct
{ {
@ -326,10 +323,9 @@
/** Type define for a standard interface descriptor. /** Type define for a standard interface descriptor.
* *
* \note The non-standard structure element names are documented here - see the StdDescriptors.h file * \note The non-standard structure element names are documented here. If the
* documentation for more information on the two descriptor naming schemes. If the * USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements
* USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names * with names identical to those listed in the USB standard.
* identical to those listed in the USB standard.
*/ */
typedef struct typedef struct
{ {
@ -372,10 +368,9 @@
* together at the point of enumeration, loading one generic driver for all the interfaces in the single * together at the point of enumeration, loading one generic driver for all the interfaces in the single
* function. Read the ECN for more information. * function. Read the ECN for more information.
* *
* \note The non-standard structure element names are documented here - see the StdDescriptors.h file * \note The non-standard structure element names are documented here. If the
* documentation for more information on the two descriptor naming schemes. If the * USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements
* USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names * with names identical to those listed in the USB standard.
* identical to those listed in the USB standard.
*/ */
typedef struct typedef struct
{ {
@ -406,10 +401,9 @@
/** Type define for a standard endpoint descriptor. /** Type define for a standard endpoint descriptor.
* *
* \note The non-standard structure element names are documented here - see the StdDescriptors.h file * \note The non-standard structure element names are documented here. If the
* documentation for more information on the two descriptor naming schemes. If the * USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements
* USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names * with names identical to those listed in the USB standard.
* identical to those listed in the USB standard.
*/ */
typedef struct typedef struct
{ {
@ -448,10 +442,9 @@
* This structure should also be used for string index 0, which contains the supported language IDs for * This structure should also be used for string index 0, which contains the supported language IDs for
* the device as an array. * the device as an array.
* *
* \note The non-standard structure element names are documented here - see the StdDescriptors.h file * \note The non-standard structure element names are documented here. If the
* documentation for more information on the two descriptor naming schemes. If the * USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements
* USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names * with names identical to those listed in the USB standard.
* identical to those listed in the USB standard.
*/ */
typedef struct typedef struct
{ {

@ -118,7 +118,7 @@
* *
* \note Not all USB AVR models support VBUS interrupts; this event only exists on supported AVRs. * \note Not all USB AVR models support VBUS interrupts; this event only exists on supported AVRs.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_VBUSChange); RAISES_EVENT(USB_VBUSChange);
@ -126,7 +126,7 @@
* *
* \note Not all USB AVR models support VBUS interrupts; this event only exists on supported AVRs. * \note Not all USB AVR models support VBUS interrupts; this event only exists on supported AVRs.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_VBUSConnect); RAISES_EVENT(USB_VBUSConnect);
@ -134,7 +134,7 @@
* *
* \note Not all USB AVR models support VBUS interrupts; this event only exists on supported AVRs. * \note Not all USB AVR models support VBUS interrupts; this event only exists on supported AVRs.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_VBUSDisconnect); RAISES_EVENT(USB_VBUSDisconnect);
#endif #endif
@ -143,21 +143,21 @@
/** This module raises the Suspended event when the host suspends the USB interface of the AVR /** This module raises the Suspended event when the host suspends the USB interface of the AVR
* whilst running in device mode. * whilst running in device mode.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_Suspend); RAISES_EVENT(USB_Suspend);
/** This module raises the Wake Up event when the host resumes the USB interface of the AVR /** This module raises the Wake Up event when the host resumes the USB interface of the AVR
* whilst running in device mode. * whilst running in device mode.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_WakeUp); RAISES_EVENT(USB_WakeUp);
/** This module raises the USB Reset event when the host resets the USB interface of the AVR /** This module raises the USB Reset event when the host resets the USB interface of the AVR
* whilst running in device mode. * whilst running in device mode.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_Reset); RAISES_EVENT(USB_Reset);
#endif #endif
@ -168,7 +168,7 @@
* *
* \note Not all USB AVR models support host mode; this event only exists on supported AVRs. * \note Not all USB AVR models support host mode; this event only exists on supported AVRs.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_HostError); RAISES_EVENT(USB_HostError);
@ -177,7 +177,7 @@
* *
* \note Not all USB AVR models support host mode; this event only exists on supported AVRs. * \note Not all USB AVR models support host mode; this event only exists on supported AVRs.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_DeviceUnattached); RAISES_EVENT(USB_DeviceUnattached);
#endif #endif
@ -188,7 +188,7 @@
* \note Not all USB AVR models support host mode and thus the UID pin; this event only exists on * \note Not all USB AVR models support host mode and thus the UID pin; this event only exists on
* supported AVRs. * supported AVRs.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_UIDChange); RAISES_EVENT(USB_UIDChange);
#endif #endif

@ -157,7 +157,7 @@ static void USB_HostTask(void)
break; break;
case HOST_STATE_Powered: case HOST_STATE_Powered:
Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL, Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,
PIPE_TOKEN_SETUP, PIPE_CONTROLPIPE, PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,
PIPE_CONTROLPIPE_DEFAULT_SIZE, PIPE_BANK_SINGLE); PIPE_CONTROLPIPE_DEFAULT_SIZE, PIPE_BANK_SINGLE);
if (!(Pipe_IsConfigured())) if (!(Pipe_IsConfigured()))
@ -203,7 +203,7 @@ static void USB_HostTask(void)
Pipe_ResetPipe(PIPE_CONTROLPIPE); Pipe_ResetPipe(PIPE_CONTROLPIPE);
Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL, Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,
PIPE_TOKEN_SETUP, PIPE_CONTROLPIPE, PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,
USB_ControlPipeSize, PIPE_BANK_SINGLE); USB_ControlPipeSize, PIPE_BANK_SINGLE);
if (!(Pipe_IsConfigured())) if (!(Pipe_IsConfigured()))

@ -127,28 +127,28 @@
/** This module raises the \ref USB_Connect event when a USB device has been connected whilst in host /** This module raises the \ref USB_Connect event when a USB device has been connected whilst in host
* mode, but not yet enumerated. * mode, but not yet enumerated.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_Connect); RAISES_EVENT(USB_Connect);
/** This module raises the \ref USB_DeviceAttached event when in host mode, and a device is attached /** This module raises the \ref USB_DeviceAttached event when in host mode, and a device is attached
* to the AVR's USB interface. * to the AVR's USB interface.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_DeviceAttached); RAISES_EVENT(USB_DeviceAttached);
/** This module raises the \ref USB_DeviceUnattached event when in host mode, and a device is removed /** This module raises the \ref USB_DeviceUnattached event when in host mode, and a device is removed
* from the AVR's USB interface. * from the AVR's USB interface.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_DeviceUnattached); RAISES_EVENT(USB_DeviceUnattached);
/** This module raises the \ref USB_DeviceEnumerationFailed event when in host mode, and an /** This module raises the \ref USB_DeviceEnumerationFailed event when in host mode, and an
* attached USB device has failed to successfully enumerated. * attached USB device has failed to successfully enumerated.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_DeviceEnumerationFailed); RAISES_EVENT(USB_DeviceEnumerationFailed);
@ -156,14 +156,14 @@
* attached USB device has been successfully enumerated and ready to be used by the user * attached USB device has been successfully enumerated and ready to be used by the user
* application. * application.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_DeviceEnumerationComplete); RAISES_EVENT(USB_DeviceEnumerationComplete);
/** This module raises the \ref USB_Disconnect event when an attached USB device is removed from the USB /** This module raises the \ref USB_Disconnect event when an attached USB device is removed from the USB
* bus. * bus.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_Disconnect); RAISES_EVENT(USB_Disconnect);
#endif #endif
@ -183,7 +183,7 @@
* - In host mode, it may be disabled at start-up, enabled on the firing of the \ref USB_DeviceAttached * - In host mode, it may be disabled at start-up, enabled on the firing of the \ref USB_DeviceAttached
* event and disabled again on the firing of the \ref USB_DeviceUnattached event. * event and disabled again on the firing of the \ref USB_DeviceUnattached event.
* *
* \see Events.h for more information on the USB events. * \see \ref Group_Events for more information on the USB events.
* *
* \ingroup Group_USBManagement * \ingroup Group_USBManagement
*/ */

@ -86,14 +86,14 @@
/** This module raises the \ref USB_UnhandledControlPacket event when a request to the default control /** This module raises the \ref USB_UnhandledControlPacket event when a request to the default control
* endpoint has been received, but the library does not implement an internal handler for it. * endpoint has been received, but the library does not implement an internal handler for it.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_UnhandledControlPacket); RAISES_EVENT(USB_UnhandledControlPacket);
/** This module raises the \ref USB_ConfigurationChanged event when the host issues a \ref REQ_SetConfiguration /** This module raises the \ref USB_ConfigurationChanged event when the host issues a \ref REQ_SetConfiguration
* device request, to change the currently selected configuration number. * device request, to change the currently selected configuration number.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_ConfigurationChanged); RAISES_EVENT(USB_ConfigurationChanged);
@ -101,7 +101,7 @@
* enumeration of the device (i.e. when a \ref REQ_SetConfiguration request changes the current configuration * enumeration of the device (i.e. when a \ref REQ_SetConfiguration request changes the current configuration
* number from 0 to a non-zero value). * number from 0 to a non-zero value).
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
RAISES_EVENT(USB_DeviceEnumerationComplete); RAISES_EVENT(USB_DeviceEnumerationComplete);

@ -80,7 +80,7 @@
* issued if the host is currently allowing remote wakeup events from the device (i.e., * issued if the host is currently allowing remote wakeup events from the device (i.e.,
* the \ref USB_RemoteWakeupEnabled flag is set). * the \ref USB_RemoteWakeupEnabled flag is set).
* *
* \see StdDescriptors.h for more information on the RMWAKEUP feature and device descriptors. * \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.
*/ */
static inline void USB_Device_SendRemoteWakeup(void); static inline void USB_Device_SendRemoteWakeup(void);
@ -93,7 +93,7 @@
* \note This macro should only be used if the device has indicated to the host that it * \note This macro should only be used if the device has indicated to the host that it
* supports the Remote Wakeup feature in the device descriptors. * supports the Remote Wakeup feature in the device descriptors.
* *
* \see StdDescriptors.h for more information on the RMWAKEUP feature and device descriptors. * \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.
* *
* \return Boolean true if no Remote Wakeup request is currently being sent, false otherwise * \return Boolean true if no Remote Wakeup request is currently being sent, false otherwise
*/ */
@ -124,7 +124,7 @@
DEVICE_ERROR_GetDescriptorNotHooked = 0, /**< Indicates that the \ref USB_GetDescriptor() method DEVICE_ERROR_GetDescriptorNotHooked = 0, /**< Indicates that the \ref USB_GetDescriptor() method
* has not been hooked by the user application. * has not been hooked by the user application.
* *
* \see StdDescriptors.h for more information on * \see \ref Group_Descriptors for more information on
* the \ref USB_GetDescriptor() method. * the \ref USB_GetDescriptor() method.
*/ */
}; };

@ -179,8 +179,7 @@
* *
* For information on each state, refer to the USB 2.0 specification. Some states have * For information on each state, refer to the USB 2.0 specification. Some states have
* *
* \see USBTask.h for information on the global variable USB_HostState, which stores the * \see \ref USB_HostState, which stores the current host state machine state.
* current host state machine state.
*/ */
enum USB_Host_States_t enum USB_Host_States_t
{ {
@ -202,7 +201,7 @@
/** Enum for the error codes for the \ref USB_HostError event. /** Enum for the error codes for the \ref USB_HostError event.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
enum USB_Host_ErrorCodes_t enum USB_Host_ErrorCodes_t
{ {
@ -216,7 +215,7 @@
/** Enum for the error codes for the \ref USB_DeviceEnumerationFailed event. /** Enum for the error codes for the \ref USB_DeviceEnumerationFailed event.
* *
* \see Events.h for more information on this event. * \see \ref Group_Events for more information on this event.
*/ */
enum USB_Host_EnumerationErrorCodes_t enum USB_Host_EnumerationErrorCodes_t
{ {

@ -159,25 +159,25 @@
/** Mask for a CONTROL type endpoint or pipe. /** Mask for a CONTROL type endpoint or pipe.
* *
* \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. * \note See \ref Group_EndpointManagement and \ref Group_PipeManagement for endpoint/pipe functions.
*/ */
#define EP_TYPE_CONTROL 0x00 #define EP_TYPE_CONTROL 0x00
/** Mask for an ISOCHRONOUS type endpoint or pipe. /** Mask for an ISOCHRONOUS type endpoint or pipe.
* *
* \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. * \note See \ref Group_EndpointManagement and \ref Group_PipeManagement for endpoint/pipe functions.
*/ */
#define EP_TYPE_ISOCHRONOUS 0x01 #define EP_TYPE_ISOCHRONOUS 0x01
/** Mask for a BULK type endpoint or pipe. /** Mask for a BULK type endpoint or pipe.
* *
* \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. * \note See \ref Group_EndpointManagement and \ref Group_PipeManagement for endpoint/pipe functions.
*/ */
#define EP_TYPE_BULK 0x02 #define EP_TYPE_BULK 0x02
/** Mask for an INTERRUPT type endpoint or pipe. /** Mask for an INTERRUPT type endpoint or pipe.
* *
* \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. * \note See \ref Group_EndpointManagement and \ref Group_PipeManagement for endpoint/pipe functions.
*/ */
#define EP_TYPE_INTERRUPT 0x03 #define EP_TYPE_INTERRUPT 0x03
@ -304,13 +304,13 @@
#endif #endif
#if !defined(USE_STATIC_OPTIONS) || defined(__DOXYGEN__) #if !defined(USE_STATIC_OPTIONS) || defined(__DOXYGEN__)
extern volatile uint8_t USB_Options;
/** Indicates the current USB options that the USB interface was initialized with when \ref USB_Init() /** Indicates the current USB options that the USB interface was initialized with when \ref USB_Init()
* was called. This value will be one of the USB_MODE_* masks defined elsewhere in this module. * was called. This value will be one of the USB_MODE_* masks defined elsewhere in this module.
* *
* \note This variable should be treated as read-only in the user application, and never manually * \note This variable should be treated as read-only in the user application, and never manually
* changed in value. * changed in value.
*/ */
extern volatile uint8_t USB_Options;
#endif #endif
/* Throwable Events: */ /* Throwable Events: */

@ -128,7 +128,7 @@
/** Default size of the default control pipe's bank, until altered by the Endpoint0Size value /** Default size of the default control pipe's bank, until altered by the Endpoint0Size value
* in the device descriptor of the attached device. * in the device descriptor of the attached device.
*/ */
#define PIPE_CONTROLPIPE_DEFAULT_SIZE 8 #define PIPE_CONTROLPIPE_DEFAULT_SIZE 64
/** Pipe number mask, for masking against pipe addresses to retrieve the pipe's numerical address /** Pipe number mask, for masking against pipe addresses to retrieve the pipe's numerical address
* in the device. * in the device.
@ -955,6 +955,10 @@
/* Macros: */ /* Macros: */
#define PIPE_TOKEN_MASK (0x03 << PTOKEN0) #define PIPE_TOKEN_MASK (0x03 << PTOKEN0)
#if !defined(ENDPOINT_CONTROLEP)
#define ENDPOINT_CONTROLEP 0
#endif
#define Pipe_AllocateMemory() MACROS{ UPCFG1X |= (1 << ALLOC); }MACROE #define Pipe_AllocateMemory() MACROS{ UPCFG1X |= (1 << ALLOC); }MACROE
#define Pipe_DeallocateMemory() MACROS{ UPCFG1X &= ~(1 << ALLOC); }MACROE #define Pipe_DeallocateMemory() MACROS{ UPCFG1X &= ~(1 << ALLOC); }MACROE

@ -27,4 +27,5 @@
* - Teensy, another tiny AT90USB162 development board: http://www.pjrc.com/teensy/index.html * - Teensy, another tiny AT90USB162 development board: http://www.pjrc.com/teensy/index.html
* - SEGA Megadrive/Genesis Development Cartridge: http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=464 * - SEGA Megadrive/Genesis Development Cartridge: http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=464
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig * - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
* - Opendous-JTAG, an open source JTAG device: http://code.google.com/p/opendous-jtag/
*/ */

@ -190,7 +190,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"Magnetic Card Reader" .UnicodeString = L"Magnetic Card Reader"
}; };
/** This function is called by the library when in device mode, and must be overridden (see StdDescriptors.h /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the

@ -63,7 +63,7 @@
MCU = at90usb1287 MCU = at90usb1287
# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring # Target board (see library "Board Types" documentation, USER or blank for projects not requiring
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
# "Board" inside the application directory. # "Board" inside the application directory.
BOARD = USER BOARD = USER

Loading…
Cancel
Save