aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/CodeTemplates/DeviceTemplate/Descriptors.c4
-rw-r--r--LUFA/DoxygenPages/ChangeLog.txt3
-rw-r--r--LUFA/DoxygenPages/LUFAPoweredProjects.txt1
-rw-r--r--LUFA/DoxygenPages/MigrationInformation.txt4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c3
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h8
-rw-r--r--LUFA/Drivers/USB/Core/StdDescriptors.h23
-rw-r--r--LUFA/StudioIntegration/lufa_drivers_board_names.xml7
8 files changed, 33 insertions, 20 deletions
diff --git a/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c b/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c
index b21b81624..a49fd6f36 100644
--- a/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c
+++ b/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c
@@ -46,7 +46,7 @@ const USB_Descriptor_Device_t DeviceDescriptor =
{
.Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},
- .USBSpecification = VERSION_BCD(02.00),
+ .USBSpecification = VERSION_BCD(2,0,0),
.Class = USB_CSCP_NoDeviceClass,
.SubClass = USB_CSCP_NoDeviceSubclass,
.Protocol = USB_CSCP_NoDeviceProtocol,
@@ -55,7 +55,7 @@ const USB_Descriptor_Device_t DeviceDescriptor =
.VendorID = 0x0000,
.ProductID = 0x0000,
- .ReleaseNumber = VERSION_BCD(00.02),
+ .ReleaseNumber = VERSION_BCD(0,0,2),
.ManufacturerStrIndex = 0x01,
.ProductStrIndex = 0x02,
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 7bd8b2997..9c8fd50b9 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -11,12 +11,13 @@
* - Library Applications:
* - Added new Bulk Vendor low level device demo
* - Added new libUSB host Python and NodeJS application examples for the class driver GenericHID demo (thanks to Laszlo Monda)
+ * - Added new AVR8 USB option to keep 3.3V regulator enabled (thanks to Michael Hanselmann)
*
* <b>Changed:</b>
* - Library Applications:
* - Refactored out USB interface IDs in the demo applications into enums (thanks to Laszlo Monda)
* - AVRISP-MKII Clone Project PDI/TPI frequency increased from 250KHz to 2MHz as it is now stable
- * - Increased TPI/PDI handshake delay to 1ms from 1us to support targets with high amounts of capacitance on their
+ * - Increased TPI/PDI handshake delay to 100us from 1us to support targets with high amounts of capacitance on their
* /RESET lines (thanks to Paul Duke)
*
* <b>Fixed:</b>
diff --git a/LUFA/DoxygenPages/LUFAPoweredProjects.txt b/LUFA/DoxygenPages/LUFAPoweredProjects.txt
index ff3b3f42f..f698e4c7e 100644
--- a/LUFA/DoxygenPages/LUFAPoweredProjects.txt
+++ b/LUFA/DoxygenPages/LUFAPoweredProjects.txt
@@ -114,7 +114,6 @@
* \li PS/2 to USB adapter: https://github.com/makestuff/p2ukbd
* \li RaspiFace, an Arduino platform bridge for the Raspberry Pi: http://www.raspiface.com/
* \li Reflow oven controller: http://danstrother.com/2011/01/15/reflow-oven-controller/
- * \li Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
* \li RFPirate, a RF experimentation platform: https://github.com/ebuller/RF-Pirate
* \li RF Power Meter, based on the AD8307 log amp: https://sites.google.com/site/lofturj/ad8307-power-meter
* \li RF Transceiver using the MRF49XA: http://alternet.us.com/?page_id=1494
diff --git a/LUFA/DoxygenPages/MigrationInformation.txt b/LUFA/DoxygenPages/MigrationInformation.txt
index a2b2d4dac..25a30c472 100644
--- a/LUFA/DoxygenPages/MigrationInformation.txt
+++ b/LUFA/DoxygenPages/MigrationInformation.txt
@@ -11,7 +11,9 @@
* areas relevant to making older projects compatible with the API changes of each new release.
*
* \section Sec_MigrationXXXXXX Migrating from 130901 to XXXXXX
- * No migration information.
+ * <b>USB Core</b>
+ * - The \c VERSION_BCD() macro has changed from accepting one floating point parameter to taking three distinct major/minor/revision integer parameters, as
+ * some edge cases caused incorrect parsing of the input float into the final integer BCD encoded value.
*
* \section Sec_Migration130901 Migrating from 130303 to 130901
* <b>Non-USB Library Components</b>
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c
index 8faec1df0..dc96c0fe7 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c
@@ -112,7 +112,8 @@ void USB_Disable(void)
if (!(USB_Options & USB_OPT_MANUAL_PLL))
USB_PLL_Off();
- USB_REG_Off();
+ if (!(USB_Options & USB_OPT_REG_KEEP_ENABLED))
+ USB_REG_Off();
#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
USB_OTGPAD_Off();
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
index 1b72bf13b..fedc04ec1 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
@@ -133,6 +133,14 @@
*/
#define USB_OPT_REG_ENABLED (0 << 1)
+ /** Option mask for \ref USB_Init() to keep regulator enabled at all times. Indicates that \ref USB_Disable()
+ * should not disable the regulator as it would otherwise. Has no effect if regulator is disabled using
+ * \ref USB_OPT_REG_DISABLED.
+ *
+ * \note See USB AVR data sheet for more information on the internal pad regulator.
+ */
+ #define USB_OPT_REG_KEEP_ENABLED (1 << 3)
+
/** Manual PLL control option mask for \ref USB_Init(). This indicates to the library that the user application
* will take full responsibility for controlling the AVR's PLL (used to generate the high frequency clock
* that the USB controller requires) and ensuring that it is locked at the correct frequency for USB operations.
diff --git a/LUFA/Drivers/USB/Core/StdDescriptors.h b/LUFA/Drivers/USB/Core/StdDescriptors.h
index d7f0ca349..d77acf4e3 100644
--- a/LUFA/Drivers/USB/Core/StdDescriptors.h
+++ b/LUFA/Drivers/USB/Core/StdDescriptors.h
@@ -85,17 +85,20 @@
*/
#define USB_STRING_LEN(UnicodeChars) (sizeof(USB_Descriptor_Header_t) + ((UnicodeChars) << 1))
- /** 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
- * standard device descriptor.
+ /** Macro to encode a given major/minor/revision version number into Binary Coded Decimal format for descriptor
+ * fields requiring BCD encoding, such as the USB version number in the standard device descriptor.
*
* \note This value is automatically converted into Little Endian, suitable for direct use inside device
* descriptors on all architectures without endianness conversion macros.
*
- * \param[in] x Version number to encode as a 16-bit little-endian number, as a floating point number.
+ * \param[in] Major Major version number to encode.
+ * \param[in] Minor Minor version number to encode.
+ * \param[in] Revision Revision version number to encode.
*/
- #define VERSION_BCD(x) CPU_TO_LE16((VERSION_TENS(x) << 12) | (VERSION_ONES(x) << 8) | \
- (VERSION_TENTHS(x) << 4) | (VERSION_HUNDREDTHS(x) << 0) )
+ #define VERSION_BCD(Major, Minor, Revision) \
+ CPU_TO_LE16( ((Major & 0xFF) << 8) | \
+ ((Minor & 0x0F) << 4) | \
+ (Revision & 0x0F) )
/** String language ID for the English language. Should be used in \ref USB_Descriptor_String_t descriptors
* to indicate that the English language is supported by the device in its string descriptors.
@@ -736,14 +739,6 @@
*/
} ATTR_PACKED USB_StdDescriptor_String_t;
- /* Private Interface - For use in library only: */
- #if !defined(__DOXYGEN__)
- /* Macros: */
- #define VERSION_TENS(x) (int)((int)(x) / 10)
- #define VERSION_ONES(x) (int)((int)(x) % 10)
- #define VERSION_TENTHS(x) (int)((x - (int)x) * 10)
- #define VERSION_HUNDREDTHS(x) (int)((x * 100) - ((int)(x * 10) * 10))
- #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/StudioIntegration/lufa_drivers_board_names.xml b/LUFA/StudioIntegration/lufa_drivers_board_names.xml
index d5e40e913..7499b2eeb 100644
--- a/LUFA/StudioIntegration/lufa_drivers_board_names.xml
+++ b/LUFA/StudioIntegration/lufa_drivers_board_names.xml
@@ -441,7 +441,10 @@
<module type="driver" id="lufa.drivers.board#stk525" caption="Board Support - STK525">
<build type="doxygen-entry-point" value="Group_BoardInfo_STK525"/>
+ <device-support value="at90usb1287"/>
+ <device-support value="at90usb1286"/>
<device-support value="at90usb647"/>
+ <device-support value="at90usb646"/>
<build type="define" name="BOARD" value="BOARD_STK525"/>
<require idref="lufa.drivers.misc.at45db642d"/>
@@ -462,6 +465,10 @@
<build type="doxygen-entry-point" value="Group_BoardInfo_STK526"/>
<device-support value="at90usb162"/>
+ <device-support value="at90usb82"/>
+ <device-support value="atmega32u2"/>
+ <device-support value="atmega16u2"/>
+ <device-support value="atmega8u2"/>
<build type="define" name="BOARD" value="BOARD_STK526"/>
<require idref="lufa.drivers.misc.at45db642d"/>