Corrected incorrect signature bytes for the AT90USB82 and added support for the ATMEG...
authorDean Camera <dean@fourwalledcubicle.com>
Mon, 7 Sep 2009 07:57:00 +0000 (07:57 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Mon, 7 Sep 2009 07:57:00 +0000 (07:57 +0000)
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.

Bootloaders/DFU/BootloaderDFU.c
Bootloaders/DFU/Descriptors.h
LUFA/Drivers/USB/HighLevel/Events.h
LUFA/ManPages/ChangeLog.txt

index d7af1e6..71b37ea 100644 (file)
@@ -92,6 +92,7 @@ uint16_t StartAddr = 0x0000;
  */\r
 uint16_t EndAddr = 0x0000;\r
 \r
  */\r
 uint16_t EndAddr = 0x0000;\r
 \r
+\r
 /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously \r
  *  runs the bootloader processing routine until instructed to soft-exit, or hard-reset via the watchdog to start\r
  *  the loaded application code.\r
 /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously \r
  *  runs the bootloader processing routine until instructed to soft-exit, or hard-reset via the watchdog to start\r
  *  the loaded application code.\r
index 0943ef3..9eadf9d 100644 (file)
                        #define AVR_SIGNATURE_1               0x1E\r
                        #define AVR_SIGNATURE_2               0x96\r
                        #define AVR_SIGNATURE_3               0x82\r
                        #define AVR_SIGNATURE_1               0x1E\r
                        #define AVR_SIGNATURE_2               0x96\r
                        #define AVR_SIGNATURE_3               0x82\r
-               #elif defined(__AVR_AT90USB647__)\r
-                       #define PRODUCT_ID_CODE               0x2FF9\r
-                       #define AVR_SIGNATURE_1               0x1E\r
-                       #define AVR_SIGNATURE_2               0x96\r
-                       #define AVR_SIGNATURE_3               0x82\r
-               #elif defined(__AVR_AT90USB162__)\r
-                       #define PRODUCT_ID_CODE               0x2FFA\r
-                       #define AVR_SIGNATURE_1               0x1E\r
-                       #define AVR_SIGNATURE_2               0x94\r
-                       #define AVR_SIGNATURE_3               0x82\r
-               #elif defined(__AVR_AT90USB82__)\r
-                       #define PRODUCT_ID_CODE               0x2FF7\r
-                       #define AVR_SIGNATURE_1               0x1E\r
-                       #define AVR_SIGNATURE_2               0x94\r
-                       #define AVR_SIGNATURE_3               0x82\r
                #elif defined(__AVR_ATmega32U6__)\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
                        #define AVR_SIGNATURE_1               0x1E\r
                        #define AVR_SIGNATURE_2               0x95\r
                        #define AVR_SIGNATURE_3               0x88\r
                #elif defined(__AVR_ATmega32U6__)\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
                        #define AVR_SIGNATURE_1               0x1E\r
                        #define AVR_SIGNATURE_2               0x95\r
                        #define AVR_SIGNATURE_3               0x88\r
+               #elif defined(__AVR_AT90USB647__)\r
+                       #define PRODUCT_ID_CODE               0x2FF9\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x96\r
+                       #define AVR_SIGNATURE_3               0x82\r
                #elif defined(__AVR_ATmega32U4__)\r
                        #define PRODUCT_ID_CODE               0x2FF4\r
                        #define AVR_SIGNATURE_1               0x1E\r
                #elif defined(__AVR_ATmega32U4__)\r
                        #define PRODUCT_ID_CODE               0x2FF4\r
                        #define AVR_SIGNATURE_1               0x1E\r
                        #define AVR_SIGNATURE_1               0x1E\r
                        #define AVR_SIGNATURE_2               0x94\r
                        #define AVR_SIGNATURE_3               0x88\r
                        #define AVR_SIGNATURE_1               0x1E\r
                        #define AVR_SIGNATURE_2               0x94\r
                        #define AVR_SIGNATURE_3               0x88\r
+               #elif defined(__AVR_AT90USB162__)\r
+                       #define PRODUCT_ID_CODE               0x2FFA\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x94\r
+                       #define AVR_SIGNATURE_3               0x82\r
+               #elif defined(__AVR_ATmega8U2__)\r
+                       #define PRODUCT_ID_CODE               0x2FF7\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x93\r
+                       #define AVR_SIGNATURE_3               0x82\r
+               #elif defined(__AVR_ATmega16U2__)\r
+                       #define PRODUCT_ID_CODE               0x2FEF\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x94\r
+                       #define AVR_SIGNATURE_3               0x89\r
+               #elif defined(__AVR_AT90USB82__)\r
+                       #define PRODUCT_ID_CODE               0x2FEE\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x93\r
+                       #define AVR_SIGNATURE_3               0x89\r
                #else\r
                        #error The selected AVR part is not currently supported by this bootloader.\r
                #endif\r
                #else\r
                        #error The selected AVR part is not currently supported by this bootloader.\r
                #endif\r
index 9b60a95..5a007ff 100644 (file)
                        /** Event for USB device connection. This event fires when the AVR in device mode and the device is connected\r
                         *  to a host, beginning the enumeration process, measured by a rising level on the AVR's VBUS pin.\r
                         *\r
                        /** Event for USB device connection. This event fires when the AVR in device mode and the device is connected\r
                         *  to a host, beginning the enumeration process, measured by a rising level on the AVR's VBUS pin.\r
                         *\r
-                        *  \note For the smaller USB AVRs (AT90USBXX2) with limited USB controllers, VBUS is not available to the USB controller.\r
+                        *  \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.\r
                         *        this means that the current connection state is derived from the bus suspension and wake up events by default,\r
                         *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state\r
                         *        needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by\r
                         *        passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection\r
                         *        and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.\r
                         *\r
                         *        this means that the current connection state is derived from the bus suspension and wake up events by default,\r
                         *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state\r
                         *        needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by\r
                         *        passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection\r
                         *        and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.\r
                         *\r
+                        *  \note This event may fire multiple times during device enumeration on the series 2 USB AVRs with limited USB controllers\r
+                        *        if NO_LIMITED_CONTROLLER_CONNECT is not defined.\r
+                        *\r
                         *  \see USBTask.h for more information on the USB management task and reducing CPU usage.\r
                         */\r
                        void EVENT_USB_Device_Connect(void);\r
                         *  \see USBTask.h for more information on the USB management task and reducing CPU usage.\r
                         */\r
                        void EVENT_USB_Device_Connect(void);\r
                        /** Event for USB device disconnection. This event fires when the AVR in device mode and the device is disconnected\r
                         *  from a host, measured by a falling level on the AVR's VBUS pin.\r
                         *\r
                        /** Event for USB device disconnection. This event fires when the AVR in device mode and the device is disconnected\r
                         *  from a host, measured by a falling level on the AVR's VBUS pin.\r
                         *\r
-                        *  \note For the smaller USB AVRs (AT90USBXX2) with limited USB controllers, VBUS is not available to the USB controller.\r
+                        *  \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.\r
                         *        this means that the current connection state is derived from the bus suspension and wake up events by default,\r
                         *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state\r
                         *        needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by\r
                         *        passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection\r
                         *        and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.\r
                         *\r
                         *        this means that the current connection state is derived from the bus suspension and wake up events by default,\r
                         *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state\r
                         *        needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by\r
                         *        passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection\r
                         *        and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.\r
                         *\r
+                        *  \note This event may fire multiple times during device enumeration on the series 2 USB AVRs with limited USB controllers\r
+                        *        if NO_LIMITED_CONTROLLER_CONNECT is not defined.\r
+                        *\r
                         *  \see USBTask.h for more information on the USB management task and reducing CPU usage.\r
                         */\r
                        void EVENT_USB_Device_Disconnect(void);\r
                         *  \see USBTask.h for more information on the USB management task and reducing CPU usage.\r
                         */\r
                        void EVENT_USB_Device_Disconnect(void);\r
index 0bdb57e..b27b724 100644 (file)
@@ -60,7 +60,8 @@
   *  - CDC based demos and project now work under 64 bit versions of Windows (thanks to Ronny Hanson, Thomas Bleeker)\r
   *  - Re-add in flip, flip-ee, dfu and dfu-ee targets to project makefiles (thanks to Opendous Inc.)\r
   *  - Fix allowable F_CPU values comment in project makefiles\r
   *  - CDC based demos and project now work under 64 bit versions of Windows (thanks to Ronny Hanson, Thomas Bleeker)\r
   *  - Re-add in flip, flip-ee, dfu and dfu-ee targets to project makefiles (thanks to Opendous Inc.)\r
   *  - Fix allowable F_CPU values comment in project makefiles\r
-  *  - Fixed DFU and CDC class bootloaders on the AT90USBXXX2 series USB AVRs\r
+  *  - Fixed DFU and CDC class bootloaders on the series 2 USB AVRs, corrected invalid signatures, added support for the new\r
+  *    ATMEGAxxx2 series 2 variant AVRs to the DFU bootloader\r
   *\r
   *\r
   *  \section Sec_ChangeLog090810 Version 090810\r
   *\r
   *\r
   *  \section Sec_ChangeLog090810 Version 090810\r