From 0e64a9d0c290ff6eb504323dc3b30fdddefdcc85 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 27 Jan 2013 15:48:09 +0000 Subject: Update Atmel Studio core board templates to use different templates for each driver, so that the project caption contains the architecture. Update individual board modules to include the relevant board hardware drivers. --- .../DeviceTemplate/DeviceApplication.c | 33 ++++++++++++++++------ .../DeviceTemplate/DeviceApplication.h | 3 +- LUFA/CodeTemplates/DeviceTemplate/asf.xml | 16 +++++++++-- 3 files changed, 40 insertions(+), 12 deletions(-) (limited to 'LUFA/CodeTemplates/DeviceTemplate') diff --git a/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c b/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c index 893c733a6..e107c8680 100644 --- a/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c +++ b/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c @@ -55,15 +55,30 @@ int main(void) /** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { - /* Disable watchdog if enabled by bootloader/fuses */ - MCUSR &= ~(1 << WDRF); - wdt_disable(); - - /* Disable clock division */ - clock_prescale_set(clock_div_1); - - /* Hardware Initialization */ - USB_Init(USB_MODE_Device, USB_DEVICE_OPT_FULLSPEED | USB_OPT_AUTO_PLL); + #if (ARCH == ARCH_AVR8) + /* Disable watchdog if enabled by bootloader/fuses */ + MCUSR &= ~(1 << WDRF); + wdt_disable(); + + /* Disable clock division */ + clock_prescale_set(clock_div_1); + + /* Hardware Initialization */ + USB_Init(USB_MODE_Device, USB_DEVICE_OPT_FULLSPEED | USB_OPT_AUTO_PLL); + #elif (ARCH == ARCH_XMEGA) + /* Start the PLL to multiply the 2MHz RC oscillator to 32MHz and switch the CPU core to run from it */ + XMEGACLK_StartPLL(CLOCK_SRC_INT_RC2MHZ, 2000000, F_CPU); + XMEGACLK_SetCPUClockSource(CLOCK_SRC_PLL); + + /* Start the 32MHz internal RC oscillator and start the DFLL to increase it to 48MHz using the USB SOF as a reference */ + XMEGACLK_StartInternalOscillator(CLOCK_SRC_INT_RC32MHZ); + XMEGACLK_StartDFLL(CLOCK_SRC_INT_RC32MHZ, DFLL_REF_INT_USBSOF, F_USB); + + PMIC.CTRL = PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm; + + /* Hardware Initialization */ + USB_Init(USB_OPT_RC32MCLKSRC | USB_OPT_BUSEVENT_PRIHIGH); + #endif } /** Event handler for the library USB Connection event. */ diff --git a/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h b/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h index 9dac556a1..bc6875bcc 100644 --- a/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h +++ b/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h @@ -34,13 +34,14 @@ */ #ifndef _USB_DEVICE_APPLICATION_H_ -#define _USB_DEVICE_APPLICATION_ +#define _USB_DEVICE_APPLICATION_H_ /* Includes: */ #include #include #include + #include #include #include "Descriptors.h" diff --git a/LUFA/CodeTemplates/DeviceTemplate/asf.xml b/LUFA/CodeTemplates/DeviceTemplate/asf.xml index 0cceef9f0..cdb4c605a 100644 --- a/LUFA/CodeTemplates/DeviceTemplate/asf.xml +++ b/LUFA/CodeTemplates/DeviceTemplate/asf.xml @@ -1,7 +1,7 @@ - + - + @@ -11,6 +11,18 @@ + + + + + + + + + + + + Template for a LUFA USB device mode application. -- cgit v1.2.3