forked from mfulz_github/qmk_firmware
		
	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.
This commit is contained in:
		
							parent
							
								
									1190652c0b
								
							
						
					
					
						commit
						c8b72f955f
					
				| @ -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. | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dean Camera
						Dean Camera