diff --git a/Bootloaders/TeensyHID/TeensyHID.c b/Bootloaders/TeensyHID/TeensyHID.c index 4b9224abc3f4f7b62db82d35cc9268a4fcd80ada..84ec7aac7236d2a263a2cc3195d641b8186cc995 100644 --- a/Bootloaders/TeensyHID/TeensyHID.c +++ b/Bootloaders/TeensyHID/TeensyHID.c @@ -51,9 +51,9 @@ int main(void) while (RunBootloader) USB_USBTask(); - - /* Wait 100ms to give the host time to register the disconnection */ - _delay_ms(100); + + /* Turn off the USB interface, disconnect from the host */ + USB_ShutDown(); /* Enable the watchdog and force a timeout to reset the AVR */ wdt_enable(WDTO_250MS); diff --git a/Demos/Host/ClassDriver/MassStorageHost/makefile b/Demos/Host/ClassDriver/MassStorageHost/makefile index 24d9ee0b0eacd7fe1d2ab44ab5cc75b7c8f6cea8..88d5cf27d6f641d1fe364cbfcb0b8739fe41f3e4 100644 --- a/Demos/Host/ClassDriver/MassStorageHost/makefile +++ b/Demos/Host/ClassDriver/MassStorageHost/makefile @@ -118,6 +118,7 @@ LUFA_PATH = ../../../.. # LUFA library compile-time options LUFA_OPTS = -D USB_HOST_ONLY LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" +LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=5000 # List C source files here. (C dependencies are automatically generated.) diff --git a/Demos/Host/LowLevel/MassStorageHost/makefile b/Demos/Host/LowLevel/MassStorageHost/makefile index 43309a3d4d07a1fa3d2779fc0d50705df7849fe0..756763249f5b0548ad3f0feb05be5e72f01ead17 100644 --- a/Demos/Host/LowLevel/MassStorageHost/makefile +++ b/Demos/Host/LowLevel/MassStorageHost/makefile @@ -119,7 +119,7 @@ LUFA_PATH = ../../../.. LUFA_OPTS = -D NO_STREAM_CALLBACKS LUFA_OPTS += -D USB_HOST_ONLY LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=2000 +LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=5000 # List C source files here. (C dependencies are automatically generated.) diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index e68bf89e407e534c419e197d2d7431c9eba2c3de..1fdd966260e59eb58a5aec3be3d76894abe3e045 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -11,7 +11,8 @@ * <b>New:</b> * - Added activity LED indicators to the AVRISP project to indicate when the device is busy processing a command * - The USB target family and allowable USB mode tokens are now public and documented (USB_CAN_BE_*, USB_SERIES_*_AVR) - * - Added new XPLAIN USB to Serial Bridge project (thanks to John Steggall for initial proof-of-concept) + * - Added new XPLAIN USB to Serial Bridge project (thanks to John Steggall for initial proof-of-concept, David Prentice + * and Peter Danneger for revised software USART code) * - Added new RNDIS Ethernet Host LowLevel demo * - Added new RNDIS Ethernet Host Class Driver * - Added new RNDIS Ethernet Host ClassDriver demo diff --git a/Projects/AVRISP/Lib/PDIProtocol.c b/Projects/AVRISP/Lib/PDIProtocol.c index 93634a0224a9581fcc6f36da6f3c1d3ef05d3867..d98c51c435774c7947cd6fc4fb06b81d073ad24b 100644 --- a/Projects/AVRISP/Lib/PDIProtocol.c +++ b/Projects/AVRISP/Lib/PDIProtocol.c @@ -109,7 +109,10 @@ static void PDIProtocol_EnterXPROGMode(void) /* Must hold DATA line high for at least 90nS to enable PDI interface */ PDIDATA_LINE_PORT |= PDIDATA_LINE_MASK; - _delay_us(1); + asm volatile ("NOP"::); + #if (F_CPU > 8000000) + asm volatile ("NOP"::); + #endif /* Toggle CLOCK line 16 times within 100uS of the original 90nS timeout to keep PDI interface enabled */ for (uint8_t i = 0; i < 16; i++)