diff --git a/LUFA.pnproj b/LUFA.pnproj
index cfa53cd518..3af9dc1dec 100644
--- a/LUFA.pnproj
+++ b/LUFA.pnproj
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Projects/AVRISP-MKII/Descriptors.c b/Projects/AVRISP-MKII/Descriptors.c
index 6b4264f480..6ab6092a67 100644
--- a/Projects/AVRISP-MKII/Descriptors.c
+++ b/Projects/AVRISP-MKII/Descriptors.c
@@ -156,6 +156,9 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA AVRISP MkII Clone"
};
+/** Serial number string. This is a Unicode string containing the device's unique serial number, expressed as a
+ * series of uppercase hexadecimal digits.
+ */
USB_Descriptor_String_t PROGMEM SerialString =
{
.Header = {.Size = USB_STRING_LEN(13), .Type = DTYPE_String},
diff --git a/Projects/XPLAINBridge/Doxygen.conf b/Projects/XPLAINBridge/Doxygen.conf
index 894c1c8313..39a3978a3f 100644
--- a/Projects/XPLAINBridge/Doxygen.conf
+++ b/Projects/XPLAINBridge/Doxygen.conf
@@ -25,7 +25,7 @@ DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
-PROJECT_NAME = "LUFA Library - XPLAIN Serial Bridge Device Demo"
+PROJECT_NAME = "LUFA Library - XPLAIN Serial Bridge/PDI Programmer Device Demo"
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
diff --git a/Projects/XPLAINBridge/USARTDescriptors.c b/Projects/XPLAINBridge/USARTDescriptors.c
index d8587f2b2f..60c25321c2 100644
--- a/Projects/XPLAINBridge/USARTDescriptors.c
+++ b/Projects/XPLAINBridge/USARTDescriptors.c
@@ -226,6 +226,9 @@ USB_Descriptor_String_t PROGMEM USART_ProductString =
.UnicodeString = L"LUFA XPLAIN Bridge"
};
+/** Descriptior retrieval function for the USART Bridge descriptors. This function is in turn called by the GetDescriptor
+ * callback function in the main source file, to retrieve the device's descriptors when in USART bridge mode.
+ */
uint16_t USART_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
{
const uint8_t DescriptorType = (wValue >> 8);
diff --git a/Projects/XPLAINBridge/XPLAINBridge.h b/Projects/XPLAINBridge/XPLAINBridge.h
index 543a03e72c..805c30d096 100644
--- a/Projects/XPLAINBridge/XPLAINBridge.h
+++ b/Projects/XPLAINBridge/XPLAINBridge.h
@@ -69,7 +69,10 @@
/** LED mask for the library LED driver, to indicate that the USB interface is busy. */
#define LEDMASK_BUSY LEDS_LED1
+ /** Firmware mode define for the USART Bridge mode. */
#define MODE_USART_BRIDGE false
+
+ /** Firmware mode define for the AVRISP Programmer mode. */
#define MODE_PDI_PROGRAMMER true
/* External Variables: */
diff --git a/Projects/XPLAINBridge/XPLAINBridge.txt b/Projects/XPLAINBridge/XPLAINBridge.txt
index ec6eee7eb1..98d6dfe6eb 100644
--- a/Projects/XPLAINBridge/XPLAINBridge.txt
+++ b/Projects/XPLAINBridge/XPLAINBridge.txt
@@ -4,7 +4,7 @@
* documentation pages. It is not a project source file.
*/
-/** \mainpage XPLAIN UART Bridge Project
+/** \mainpage XPLAIN UART Bridge/PDI Programmer Project
*
* \section SSec_Compat Project Compatibility:
*
@@ -20,37 +20,48 @@
*
* USB Mode: |
* Device |
+ * Device |
*
*
* USB Class: |
- * Communications Device Class (CDC) |
+ * 1) Communications Device Class (CDC) |
+ * 2) Vendor Specific Class |
*
*
* USB Subclass: |
- * Abstract Control Model (ACM) |
+ * 1) Abstract Control Model (ACM) |
+ * 2) N/A |
*
*
* Relevant Standards: |
- * USBIF CDC Class Standard |
+ * 1) USBIF CDC Class Standard |
+ * 2) Atmel AVRISP MKII Protocol Specification |
*
*
* Usable Speeds: |
* Full Speed Mode |
+ * Full Speed Mode |
*
*
*
* \section SSec_Description Project Description:
*
- * This is a virtual serial port to soft-UART converter, for use on the Atmel XPLAIN boards. This project replaces the firmware
- * preloaded onto the XPLAIN's onboard AT90USB1287 microcontroller to act as a a UART-to-USB bridge between the device and the
- * host. When inserted, the device 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 the XMEGA was connected directly to the host's serial port.
+ * 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
+ * converter for the XPLAIN's hardware USART (at a speed of 9600 baud), or a PDI programmer for the XMEGA. This project replaces
+ * the firmware preloaded onto the XPLAIN's onboard AT90USB1287 microcontroller.
+ *
+ * When inserted, the JTAG port's TDI pin is read. If the pin is left high, the device 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 the XMEGA was connected directly to
+ * the host's serial port. If the pin is pulled low, the device will enumerate as an AVRISP-MKII to the host, so that the XMEGA
+ * can be reprogrammed by AVRStudio or other compatible software such as avrdude.
*
* After running this project for the first time on a new computer, you will need to supply the .INF file located in this project
* project's directory as the device's driver when running under Windows. This will enable Windows to use its inbuilt CDC drivers,
* negating the need for custom drivers for the device. Other Operating Systems should automatically use their own inbuilt CDC-ACM
* drivers.
*
+ * This project relies on files from the LUFA AVRISP-MKII project.
+ *
* \section SSec_Options Project Options
*
* The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.