3  *  This file contains special DoxyGen information for the generation of the main page and other special
 
   4  *  documentation pages. It is not a project source file.
 
   7 /** \mainpage XPLAIN UART Bridge/PDI Programmer Project
 
   9  *  \section Sec_Compat Project Compatibility:
 
  11  *  The following list indicates what microcontrollers are compatible with this project.
 
  15  *  \section Sec_Info USB Information:
 
  17  *  The following table gives a rundown of the USB utilization of this project.
 
  21  *    <td><b>USB Mode:</b></td>
 
  26  *    <td><b>USB Class:</b></td>
 
  27  *    <td>1) Communications Device Class (CDC)</td>
 
  28  *    <td>2) Vendor Specific Class</td>
 
  31  *    <td><b>USB Subclass:</b></td>
 
  32  *    <td>1) Abstract Control Model (ACM)</td>
 
  36  *    <td><b>Relevant Standards:</b></td>
 
  37  *    <td>1) USBIF CDC Class Standard</td>
 
  38  *    <td>2) Atmel AVRISP MKII Protocol Specification</td>
 
  41  *    <td><b>Supported USB Speeds:</b></td>
 
  42  *    <td>1) Full Speed Mode</td>
 
  43  *    <td>2) Full Speed Mode</td>
 
  47  *  \section Sec_Description Project Description:
 
  49  *  This project serves a dual purpose. When loaded into the USB AVR on the XPLAIN board, it will act as either a USB to Serial
 
  50  *  converter for the XPLAIN's hardware USART (at a speed of 9600 baud), or an AVRStudio compatible PDI programmer for the XMEGA.
 
  51  *  This project replaces the firmware preloaded onto the XPLAIN's onboard AT90USB1287 microcontroller.
 
  53  *  When power to the board is applied, the TDI pin (pin 9) of the USB AVR's JTAG port is read. If the pin is left high, the device
 
  54  *  will enumerate as a regular COM port on the host, which can then be opened and data exchanged between the XMEGA and Host as if
 
  55  *  the XMEGA was connected directly to the host's serial port. If the pin is pulled low by shorting it to GND (pin 10), the device
 
  56  *  will enumerate as an AVRISP-MKII to the host, so that the XMEGA can be reprogrammed by AVRStudio or other compatible software
 
  57  *  such as avrdude by connecting to the board as if it was an Atmel AVRISP-MKII programmer.
 
  59  *  After running this project in serial bridge mode for the first time on a new computer, you will need to supply the .INF file
 
  60  *  located in this project project's directory as the device's driver when running under Windows. This will enable Windows to use
 
  61  *  its inbuilt CDC virtual serial drivers, negating the need for custom drivers for the device. Other Operating Systems should
 
  62  *  automatically use their own inbuilt CDC-ACM drivers.
 
  64  *  In serial bridge mode, the UART baud rate can be altered through the host terminal software to select a new baud rate - the default
 
  65  *  baud is 9600. Note that parity, data bits and stop bits are fixed at none, eight and one respectively can cannot be altered. Changes
 
  66  *  to the connection's parity, data bits or stop bits are ignored by the firmware. As the serial link between the controllers on the
 
  67  *  XPLAIN is software emulated by the USB AVR, not all baud rates will work correctly.
 
  69  *  This project relies on files from the LUFA AVRISP-MKII project for compilation.
 
  71  *  \section Sec_Options Project Options
 
  73  *  The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
 
  77  *    <td><b>Define Name:</b></td>
 
  78  *    <td><b>Location:</b></td>
 
  79  *    <td><b>Description:</b></td>
 
  82  *    <td>LIBUSB_DRIVER_COMPAT</td>
 
  83  *    <td>AppConfig.h</td>
 
  84  *    <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
 
  85  *        the code compatible with software such as avrdude (all platforms) that use the libUSB driver.
 
  87  *        \note This option is incompatible with \c RESET_TOGGLES_LIBUSB_COMPAT.</td>
 
  90  *    <td>RESET_TOGGLES_LIBUSB_COMPAT</td>
 
  91  *    <td>Makefile LUFA_OPTS</td>
 
  92  *    <td>Define to make the /RESET line of the AVR toggle between Jungo and libUSB driver compatibility modes. Each time the AVR is
 
  93  *        reset externally via the reset pin, the compatibility mode will be toggled. The compatibility mode is preserved between
 
  94  *        power cycles and is not toggled via other forms of reset such as Watchdog or Brown Out.
 
  96  *        When this option is enabled, all board LEDs will flash twice on startup for Jungo compatibility mode, and five times for
 
  97  *        libUSB compatibility mode.
 
  99  *        \note This option is incompatible with \c LIBUSB_DRIVER_COMPAT.</td>
 
 102  *    <td>FIRMWARE_VERSION_MINOR</td>
 
 103  *    <td>AppConfig.h</td>
 
 104  *    <td>Define to set the minor firmware revision nunber reported to the host on request. By default this will use a firmware version compatible
 
 105  *        with the latest Atmel IDE version, however if desired the reported minor value can be adjusted here.</td>