diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-09-07 07:57:00 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-09-07 07:57:00 +0000 |
commit | c8b72f955f1fd17dbc90254b56e6596ba70660cd (patch) | |
tree | 95983f380d7538a11c07cca0d95b9ed34b7de995 | |
parent | 1190652c0b210fe24320f8da9bfd5a0e169111d8 (diff) | |
download | lufa-c8b72f955f1fd17dbc90254b56e6596ba70660cd.tar.gz lufa-c8b72f955f1fd17dbc90254b56e6596ba70660cd.tar.bz2 lufa-c8b72f955f1fd17dbc90254b56e6596ba70660cd.zip |
Corrected incorrect signature bytes for the AT90USB82 and added support for the ATMEGAXX2 variant AVRs to the DFU bootloader.
Added warning to the EVENT_USB_Device_Connect() and EVENT_USB_Device_Disconnect() events that they may be fired multiple times during device enumeration on the series 2 AVRs.
-rw-r--r-- | Bootloaders/DFU/BootloaderDFU.c | 1 | ||||
-rw-r--r-- | Bootloaders/DFU/Descriptors.h | 40 | ||||
-rw-r--r-- | LUFA/Drivers/USB/HighLevel/Events.h | 10 | ||||
-rw-r--r-- | LUFA/ManPages/ChangeLog.txt | 3 |
4 files changed, 36 insertions, 18 deletions
diff --git a/Bootloaders/DFU/BootloaderDFU.c b/Bootloaders/DFU/BootloaderDFU.c index d7af1e6ca..71b37ea68 100644 --- a/Bootloaders/DFU/BootloaderDFU.c +++ b/Bootloaders/DFU/BootloaderDFU.c @@ -92,6 +92,7 @@ uint16_t StartAddr = 0x0000; */
uint16_t EndAddr = 0x0000;
+
/** Main program entry point. This routine configures the hardware required by the bootloader, then continuously
* runs the bootloader processing routine until instructed to soft-exit, or hard-reset via the watchdog to start
* the loaded application code.
diff --git a/Bootloaders/DFU/Descriptors.h b/Bootloaders/DFU/Descriptors.h index 0943ef32b..9eadf9d4e 100644 --- a/Bootloaders/DFU/Descriptors.h +++ b/Bootloaders/DFU/Descriptors.h @@ -78,26 +78,16 @@ #define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x96
#define AVR_SIGNATURE_3 0x82
- #elif defined(__AVR_AT90USB647__)
- #define PRODUCT_ID_CODE 0x2FF9
- #define AVR_SIGNATURE_1 0x1E
- #define AVR_SIGNATURE_2 0x96
- #define AVR_SIGNATURE_3 0x82
- #elif defined(__AVR_AT90USB162__)
- #define PRODUCT_ID_CODE 0x2FFA
- #define AVR_SIGNATURE_1 0x1E
- #define AVR_SIGNATURE_2 0x94
- #define AVR_SIGNATURE_3 0x82
- #elif defined(__AVR_AT90USB82__)
- #define PRODUCT_ID_CODE 0x2FF7
- #define AVR_SIGNATURE_1 0x1E
- #define AVR_SIGNATURE_2 0x94
- #define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_ATmega32U6__)
#define PRODUCT_ID_CODE 0x2FFB
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x95
#define AVR_SIGNATURE_3 0x88
+ #elif defined(__AVR_AT90USB647__)
+ #define PRODUCT_ID_CODE 0x2FF9
+ #define AVR_SIGNATURE_1 0x1E
+ #define AVR_SIGNATURE_2 0x96
+ #define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_ATmega32U4__)
#define PRODUCT_ID_CODE 0x2FF4
#define AVR_SIGNATURE_1 0x1E
@@ -108,6 +98,26 @@ #define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x94
#define AVR_SIGNATURE_3 0x88
+ #elif defined(__AVR_AT90USB162__)
+ #define PRODUCT_ID_CODE 0x2FFA
+ #define AVR_SIGNATURE_1 0x1E
+ #define AVR_SIGNATURE_2 0x94
+ #define AVR_SIGNATURE_3 0x82
+ #elif defined(__AVR_ATmega8U2__)
+ #define PRODUCT_ID_CODE 0x2FF7
+ #define AVR_SIGNATURE_1 0x1E
+ #define AVR_SIGNATURE_2 0x93
+ #define AVR_SIGNATURE_3 0x82
+ #elif defined(__AVR_ATmega16U2__)
+ #define PRODUCT_ID_CODE 0x2FEF
+ #define AVR_SIGNATURE_1 0x1E
+ #define AVR_SIGNATURE_2 0x94
+ #define AVR_SIGNATURE_3 0x89
+ #elif defined(__AVR_AT90USB82__)
+ #define PRODUCT_ID_CODE 0x2FEE
+ #define AVR_SIGNATURE_1 0x1E
+ #define AVR_SIGNATURE_2 0x93
+ #define AVR_SIGNATURE_3 0x89
#else
#error The selected AVR part is not currently supported by this bootloader.
#endif
diff --git a/LUFA/Drivers/USB/HighLevel/Events.h b/LUFA/Drivers/USB/HighLevel/Events.h index 9b60a957b..5a007ff2a 100644 --- a/LUFA/Drivers/USB/HighLevel/Events.h +++ b/LUFA/Drivers/USB/HighLevel/Events.h @@ -148,13 +148,16 @@ /** Event for USB device connection. This event fires when the AVR in device mode and the device is connected
* to a host, beginning the enumeration process, measured by a rising level on the AVR's VBUS pin.
*
- * \note For the smaller USB AVRs (AT90USBXX2) with limited USB controllers, VBUS is not available to the USB controller.
+ * \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.
* this means that the current connection state is derived from the bus suspension and wake up events by default,
* which is not always accurate (host may suspend the bus while still connected). If the actual connection state
* needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by
* passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection
* and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.
*
+ * \note This event may fire multiple times during device enumeration on the series 2 USB AVRs with limited USB controllers
+ * if NO_LIMITED_CONTROLLER_CONNECT is not defined.
+ *
* \see USBTask.h for more information on the USB management task and reducing CPU usage.
*/
void EVENT_USB_Device_Connect(void);
@@ -162,13 +165,16 @@ /** Event for USB device disconnection. This event fires when the AVR in device mode and the device is disconnected
* from a host, measured by a falling level on the AVR's VBUS pin.
*
- * \note For the smaller USB AVRs (AT90USBXX2) with limited USB controllers, VBUS is not available to the USB controller.
+ * \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.
* this means that the current connection state is derived from the bus suspension and wake up events by default,
* which is not always accurate (host may suspend the bus while still connected). If the actual connection state
* needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by
* passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection
* and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.
*
+ * \note This event may fire multiple times during device enumeration on the series 2 USB AVRs with limited USB controllers
+ * if NO_LIMITED_CONTROLLER_CONNECT is not defined.
+ *
* \see USBTask.h for more information on the USB management task and reducing CPU usage.
*/
void EVENT_USB_Device_Disconnect(void);
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 0bdb57ebf..b27b724ed 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -60,7 +60,8 @@ * - CDC based demos and project now work under 64 bit versions of Windows (thanks to Ronny Hanson, Thomas Bleeker)
* - Re-add in flip, flip-ee, dfu and dfu-ee targets to project makefiles (thanks to Opendous Inc.)
* - Fix allowable F_CPU values comment in project makefiles
- * - Fixed DFU and CDC class bootloaders on the AT90USBXXX2 series USB AVRs
+ * - Fixed DFU and CDC class bootloaders on the series 2 USB AVRs, corrected invalid signatures, added support for the new
+ * ATMEGAxxx2 series 2 variant AVRs to the DFU bootloader
*
*
* \section Sec_ChangeLog090810 Version 090810
|