From 5227ca4ce2be126b118a900e9242c813fef5e6bf Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 21 Mar 2010 12:21:13 +0000
Subject: [PATCH] Double bank CDC endpoints in the XPLAIN Bridge project,
 re-enable JTAG once the mode selection pin has been sampled.

---
 LUFA/ManPages/ChangeLog.txt          | 1 +
 Projects/XPLAINBridge/XPLAINBridge.c | 8 ++++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 4e6b7c5ff..fe4310320 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -18,6 +18,7 @@
   *  - Webserver project now uses the board LEDs to indicate the current IP configuration state
   *  - Added ENABLE_TELNET_SERVER compile time option to the Webserver project to disable the TELNET server if desired
   *  - Increased throughput of the USBtoSerial demo on systems that send multiple bytes per packet (thanks to Opendous Inc.)
+  *  - Double bank CDC endpoints in the XPLAIN Bridge project, re-enable JTAG once the mode selection pin has been sampled.
   *
   *  <b>Fixed:</b>
   *  - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c
index 13752ef82..e5b282ee5 100644
--- a/Projects/XPLAINBridge/XPLAINBridge.c
+++ b/Projects/XPLAINBridge/XPLAINBridge.c
@@ -51,11 +51,11 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
 
 				.DataINEndpointNumber           = CDC_TX_EPNUM,
 				.DataINEndpointSize             = CDC_TXRX_EPSIZE,
-				.DataINEndpointDoubleBank       = false,
+				.DataINEndpointDoubleBank       = true,
 
 				.DataOUTEndpointNumber          = CDC_RX_EPNUM,
 				.DataOUTEndpointSize            = CDC_TXRX_EPSIZE,
-				.DataOUTEndpointDoubleBank      = false,
+				.DataOUTEndpointDoubleBank      = true,
 
 				.NotificationEndpointNumber     = CDC_NOTIFICATION_EPNUM,
 				.NotificationEndpointSize       = CDC_NOTIFICATION_EPSIZE,
@@ -169,6 +169,10 @@ void SetupHardware(void)
 
 	/* Select the firmware mode based on the JTD pin's value */
 	CurrentFirmwareMode = (PINF & (1 << 7)) ? MODE_USART_BRIDGE : MODE_PDI_PROGRAMMER;
+
+	/* Re-enable JTAG debugging */
+	MCUCR &= ~(1 << JTD);
+	MCUCR &= ~(1 << JTD);
 }
 
 /** Event handler for the library USB Configuration Changed event. */
-- 
GitLab