diff options
Diffstat (limited to 'Demos/Device/ClassDriver/DualVirtualSerial')
5 files changed, 65 insertions, 4 deletions
diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/Config/LUFAConfig.h b/Demos/Device/ClassDriver/DualVirtualSerial/Config/LUFAConfig.h index 3b33e2d04..d2f780a0b 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/Config/LUFAConfig.h +++ b/Demos/Device/ClassDriver/DualVirtualSerial/Config/LUFAConfig.h @@ -85,6 +85,39 @@  //		#define NO_AUTO_VBUS_MANAGEMENT  //		#define INVERTED_VBUS_ENABLE_LINE +	#elif (ARCH == ARCH_XMEGA) + +		/* Non-USB Related Configuration Tokens: */ +//		#define DISABLE_TERMINAL_CODES + +		/* USB Class Driver Related Tokens: */ +//		#define HID_HOST_BOOT_PROTOCOL_ONLY +//		#define HID_STATETABLE_STACK_DEPTH       {Insert Value Here} +//		#define HID_USAGE_STACK_DEPTH            {Insert Value Here} +//		#define HID_MAX_COLLECTIONS              {Insert Value Here} +//		#define HID_MAX_REPORTITEMS              {Insert Value Here} +//		#define HID_MAX_REPORT_IDS               {Insert Value Here} +//		#define NO_CLASS_DRIVER_AUTOFLUSH + +		/* General USB Driver Related Tokens: */ +		#define USE_STATIC_OPTIONS               (USB_DEVICE_OPT_FULLSPEED | USB_OPT_RC32MCLKSRC | USB_OPT_BUSEVENT_PRIHIGH) +//		#define USB_STREAM_TIMEOUT_MS            {Insert Value Here} +//		#define NO_LIMITED_CONTROLLER_CONNECT +//		#define NO_SOF_EVENTS + +		/* USB Device Mode Driver Related Tokens: */ +//		#define USE_RAM_DESCRIPTORS +		#define USE_FLASH_DESCRIPTORS +//		#define USE_EEPROM_DESCRIPTORS +//		#define NO_INTERNAL_SERIAL +		#define FIXED_CONTROL_ENDPOINT_SIZE      8 +//		#define DEVICE_STATE_AS_GPIOR            {Insert Value Here} +		#define FIXED_NUM_CONFIGURATIONS         1 +//		#define CONTROL_ONLY_DEVICE +		#define MAX_ENDPOINT_INDEX               6 +//		#define NO_DEVICE_REMOTE_WAKEUP +//		#define NO_DEVICE_SELF_POWER +  	#else  		#error Unsupported architecture for this LUFA configuration file. diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c index b7d045505..eaba6185a 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c +++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c @@ -131,12 +131,24 @@ int main(void)  /** Configures the board hardware and chip peripherals for the demo's functionality. */  void SetupHardware(void)  { +#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); +#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; +#endif  	/* Hardware Initialization */  	Joystick_Init(); diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h index 0f4ae5892..c0447af8e 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h +++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h @@ -48,6 +48,7 @@  		#include <LUFA/Drivers/Board/LEDs.h>  		#include <LUFA/Drivers/Board/Joystick.h>  		#include <LUFA/Drivers/USB/USB.h> +		#include <LUFA/Platform/Platform.h>  	/* Macros: */  		/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */ diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.txt b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.txt index 70e95ad51..1e8d3c531 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.txt +++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.txt @@ -13,6 +13,9 @@   *  \li Series 7 USB AVRs (AT90USBxxx7)   *  \li Series 6 USB AVRs (AT90USBxxx6)   *  \li Series 4 USB AVRs (ATMEGAxxU4) + *  \li Series AU XMEGA AVRs (ATXMEGAxxxAxU) + *  \li Series B XMEGA AVRs (ATXMEGAxxxBxU) + *  \li Series C XMEGA AVRs (ATXMEGAxxxCxU)   *   *  \section Sec_Info USB Information:   * diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml b/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml index 11a23eb21..78ca488ca 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml +++ b/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml @@ -1,14 +1,26 @@  <asf xmlversion="1.0">
 -	<project caption="Dual Virtual Serial Device Demo (Class Driver APIs)" id="lufa.demos.device.class.dual_cdc.example">
 +	<project caption="Dual Virtual Serial Device Demo (Class Driver APIs)" id="lufa.demos.device.class.dual_cdc.example.avr8">
  		<require idref="lufa.demos.device.class.dual_cdc"/>
  		<require idref="lufa.boards.dummy.avr8"/>
  		<generator value="as5_8"/>
  		<device-support value="at90usb1287"/>
 -		<config name="lufa.drivers.board.name" value="usbkey"/>
 +		<config name="lufa.drivers.board.name" value="none"/>
 -		<build type="define" name="F_CPU" value="8000000UL"/>
 -		<build type="define" name="F_USB" value="8000000UL"/>
 +		<build type="define" name="F_CPU" value="16000000UL"/>
 +		<build type="define" name="F_USB" value="16000000UL"/>
 +	</project>
 +
 +	<project caption="Dual Virtual Serial Device Demo (Class Driver APIs)" id="lufa.demos.device.class.dual_cdc.example.xmega">
 +		<require idref="lufa.demos.device.class.dual_cdc"/>
 +		<require idref="lufa.boards.dummy.xmega"/>
 +		<generator value="as5_8"/>
 +
 +		<device-support value="atxmega128a1u"/>
 +		<config name="lufa.drivers.board.name" value="none"/>
 +
 +		<build type="define" name="F_CPU" value="32000000UL"/>
 +		<build type="define" name="F_USB" value="48000000UL"/>
  	</project>
  	<module type="application" id="lufa.demos.device.class.dual_cdc" caption="Dual Virtual Serial Device Demo (Class Driver APIs)">
  | 
