diff options
Diffstat (limited to 'Demos/Device')
3 files changed, 62 insertions, 16 deletions
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/Config/LUFAConfig.h b/Demos/Device/Incomplete/TestAndMeasurement/Config/LUFAConfig.h index 3b33e2d04..da728ec29 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/Config/LUFAConfig.h +++ b/Demos/Device/Incomplete/TestAndMeasurement/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               4 +//		#define NO_DEVICE_REMOTE_WAKEUP +//		#define NO_DEVICE_SELF_POWER +  	#else  		#error Unsupported architecture for this LUFA configuration file. diff --git a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c index bd972e27f..4bd702701 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c +++ b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c @@ -93,12 +93,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 */  	LEDs_Init(); diff --git a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h index ed0203343..0c86cc882 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h +++ b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h @@ -1,7 +1,7 @@  /*               LUFA Library       Copyright (C) Dean Camera, 2013. -               +    dean [at] fourwalledcubicle [dot] com             www.lufa-lib.org  */ @@ -9,13 +9,13 @@  /*    Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com) -  Permission to use, copy, modify, distribute, and sell this  +  Permission to use, copy, modify, distribute, and sell this    software and its documentation for any purpose is hereby granted -  without fee, provided that the above copyright notice appear in  +  without fee, provided that the above copyright notice appear in    all copies and that both that the copyright notice and this -  permission notice and warranty disclaimer appear in supporting  -  documentation, and that the name of the author not be used in  -  advertising or publicity pertaining to distribution of the  +  permission notice and warranty disclaimer appear in supporting +  documentation, and that the name of the author not be used in +  advertising or publicity pertaining to distribution of the    software without specific, written prior permission.    The author disclaims all warranties with regard to this @@ -39,8 +39,9 @@  		#include "Descriptors.h" -		#include <LUFA/Drivers/USB/USB.h>  		#include <LUFA/Drivers/Board/LEDs.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. */ @@ -54,7 +55,7 @@  		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */  		#define LEDMASK_USB_ERROR                    (LEDS_LED1 | LEDS_LED3) -		 +  		/** LED mask for the library LED driver, to indicate that the USB interface is busy. */  		#define LEDMASK_USB_BUSY                      LEDS_LED2 @@ -66,14 +67,14 @@  		#define Req_CheckClearStatus                  0x06  		#define Req_GetCapabilities                   0x07  		#define Req_IndicatorPulse                    0x40 -		 +  		#define TMC_STATUS_SUCCESS                    0x01  		#define TMC_STATUS_PENDING                    0x02  		#define TMC_STATUS_FAILED                     0x80  		#define TMC_STATUS_TRANSFER_NOT_IN_PROGRESS   0x81  		#define TMC_STATUS_SPLIT_NOT_IN_PROGRESS      0x82  		#define TMC_STATUS_SPLIT_IN_PROGRESS          0x83 -		 +  		#define TMC_MESSAGEID_DEV_DEP_MSG_OUT         0x01  		#define TMC_MESSAGEID_DEV_DEP_MSG_IN          0x02  		#define TMC_MESSAGEID_DEV_VENDOR_OUT          0x7E @@ -86,7 +87,7 @@  			uint8_t  Reserved;  			uint16_t TMCVersion; -			 +  			struct  			{  				unsigned ListenOnly             : 1; @@ -94,17 +95,17 @@  				unsigned PulseIndicateSupported : 1;  				unsigned Reserved               : 5;  			} Interface; -			 +  			struct  			{  				unsigned SupportsAbortINOnMatch : 1;  				unsigned Reserved               : 7;  			} Device; -			 +  			uint8_t Reserved2[6]; -			uint8_t Reserved3[12];			 +			uint8_t Reserved3[12];  		} TMC_Capabilities_t; -		 +  		typedef struct  		{  			uint8_t LastMessageTransaction; @@ -125,7 +126,7 @@  			uint8_t  InverseTag;  			uint8_t  Reserved;  			uint32_t TransferSize; -			 +  			union  			{  				TMC_DevOUTMessageHeader_t DeviceOUT;  | 
