* </tr>
* <tr>
* <td>LIBUSB_DRIVER_COMPAT</td>
- * <td>Makefile LUFA_OPTS</td>
+ * <td>AppConfig.h</td>
* <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
- * the code compatible with software such as avrdude (all platforms) that use the libUSB driver.</td>
+ * the code compatible with software such as avrdude (all platforms) that use the libUSB driver.
+ *
+ * \note This option is incompatible with \c RESET_TOGGLES_LIBUSB_COMPAT.</td>
+ * </tr>
+ * <tr>
+ * <td>RESET_TOGGLES_LIBUSB_COMPAT</td>
- * <td>Makefile LUFA_OPTS</td>
++ * <td>AppConfig.h</td>
+ * <td>Define to make the /RESET line of the AVR toggle between Jungo and libUSB driver compatibility modes. Each time the AVR is
+ * reset externally via the reset pin, the compatibility mode will be toggled. The compatibility mode is preserved between
+ * power cycles and is not toggled via other forms of reset such as Watchdog or Brown Out.
+ *
+ * \note This option is incompatible with \c LIBUSB_DRIVER_COMPAT.</td>
* </tr>
* <tr>
* <td>XCK_RESCUE_CLOCK_ENABLE</td>
--- /dev/null
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ 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
+ 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
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Application Configuration Header File
+ *
+ * This is a header file which is be used to configure some of
+ * the application's compile time options, as an alternative to
+ * specifying the compile time constants supplied through a
+ * makefile or build system.
+ *
+ * For information on what each token does, refer to the
+ * \ref Sec_Options section of the application documentation.
+ */
+
+#ifndef _APP_CONFIG_H_
+#define _APP_CONFIG_H_
+
+ #define AUX_LINE_PORT PORTB
+ #define AUX_LINE_PIN PINB
+ #define AUX_LINE_DDR DDRB
+ #define AUX_LINE_MASK (1 << 4)
+
+ #define ENABLE_ISP_PROTOCOL
+ #define ENABLE_XPROG_PROTOCOL
+
+ #define VTARGET_ADC_CHANNEL 2
+ #define VTARGET_REF_VOLTS 5
+ #define VTARGET_SCALE_FACTOR 1
+// #define VTARGET_USE_INTERNAL_REF
+// #define NO_VTARGET_DETECT
+// #define XCK_RESCUE_CLOCK_ENABLE
+// #define INVERTED_ISP_MISO
+
+// #define LIBUSB_DRIVER_COMPAT
++// #define RESET_TOGGLES_LIBUSB_COMPAT
+// #define FIRMWARE_VERSION_MINOR 0x11
+
+#endif
--- /dev/null
- #define USE_FLASH_DESCRIPTORS
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ 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
+ 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
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief LUFA Library Configuration Header File
+ *
+ * This header file is used to configure LUFA's compile time options,
+ * as an alternative to the compile time constants supplied through
+ * a makefile.
+ *
+ * For information on what each token does, refer to the LUFA
+ * manual section "Summary of Compile Tokens".
+ */
+
+#ifndef _LUFA_CONFIG_H_
+#define _LUFA_CONFIG_H_
+
+ #if (ARCH == ARCH_AVR8)
+
+ /* 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 ORDERED_EP_CONFIG
+ #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
+ #define USB_DEVICE_ONLY
+// #define USB_HOST_ONLY
+// #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 16
+ #define DEVICE_STATE_AS_GPIOR 0
+ #define FIXED_NUM_CONFIGURATIONS 1
+// #define CONTROL_ONLY_DEVICE
+// #define INTERRUPT_CONTROL_ENDPOINT
+ #define NO_DEVICE_REMOTE_WAKEUP
+ #define NO_DEVICE_SELF_POWER
+
+ /* USB Host Mode Driver Related Tokens: */
+// #define HOST_STATE_AS_GPIOR {Insert Value Here}
+// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
+// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
+// #define NO_AUTO_VBUS_MANAGEMENT
+// #define INVERTED_VBUS_ENABLE_LINE
+
+ #else
+
+ #error Unsupported architecture for this LUFA configuration file.
+
+ #endif
+#endif
#include <avr/pgmspace.h>
#include <LUFA/Drivers/USB/USB.h>
+ #include <LUFA/Drivers/Board/LEDs.h>
+
++ #include "Config/AppConfig.h"
++
+ /* Preprocessor Checks: */
+ #if defined(LIBUSB_DRIVER_COMPAT) && defined(RESET_TOGGLES_LIBUSB_COMPAT)
+ #error LIBUSB_DRIVER_COMPAT and RESET_TOGGLES_LIBUSB_COMPAT are mutually exclusive.
+ #endif
/* Macros: */
- #if !defined(LIBUSB_DRIVER_COMPAT) || defined(__DOXYGEN__)
- /** Endpoint address of the AVRISP data OUT endpoint. */
- #define AVRISP_DATA_OUT_EPADDR (ENDPOINT_DIR_OUT | 2)
+ /** Endpoint address of the AVRISP data OUT endpoint. */
+ #define AVRISP_DATA_OUT_EPADDR (ENDPOINT_DIR_OUT | 2)
+
+ /** Endpoint address of the AVRISP data IN endpoint, when in Jungo driver compatibility mode. */
+ #define AVRISP_DATA_IN_EPADDR_JUNGO (ENDPOINT_DIR_IN | 2)
+
+ /** Endpoint address of the AVRISP data IN endpoint, when in LibUSB driver compatibility mode. */
+ #define AVRISP_DATA_IN_EPADDR_LIBUSB (ENDPOINT_DIR_IN | 3)
+ #if !defined(LIBUSB_DRIVER_COMPAT) || defined(__DOXYGEN__)
/** Endpoint address of the AVRISP data IN endpoint. */
- #define AVRISP_DATA_IN_EPADDR (ENDPOINT_DIR_IN | 2)
+ #define AVRISP_DATA_IN_EPADDR AVRISP_DATA_IN_EPADDR_JUNGO
+ #elif defined(RESET_TOGGLES_LIBUSB_COMPAT)
+ #define AVRISP_DATA_IN_EPADDR AVRISP_CurrDataINEndpointAddress
#else
- #define AVRISP_DATA_OUT_EPADDR (ENDPOINT_DIR_OUT | 2)
- #define AVRISP_DATA_IN_EPADDR (ENDPOINT_DIR_IN | 3)
+ #define AVRISP_DATA_IN_EPADDR AVRISP_DATA_IN_EPADDR_LIBUSB
#endif
-
+
/** Size in bytes of the AVRISP data endpoint. */
#define AVRISP_DATA_EPSIZE 64