Make sure that USB_STREAM_TIMEOUT_MS is set in the MassStorageHost ClassDriver demo, so that slow devices don't time out the data pipe. Increase pipe timeout in both MassStorageHost demos to 5 seconds to account for the really slow devices.

Fix TeensyHID bootloader not properly shutting down the USB interface to trigger a disconnection on the host before resetting the AVR.
pull/1469/head
Dean Camera 15 years ago
parent 3757b1760f
commit 2281750b5f

@ -52,8 +52,8 @@ int main(void)
while (RunBootloader) while (RunBootloader)
USB_USBTask(); USB_USBTask();
/* Wait 100ms to give the host time to register the disconnection */ /* Turn off the USB interface, disconnect from the host */
_delay_ms(100); USB_ShutDown();
/* Enable the watchdog and force a timeout to reset the AVR */ /* Enable the watchdog and force a timeout to reset the AVR */
wdt_enable(WDTO_250MS); wdt_enable(WDTO_250MS);

@ -118,6 +118,7 @@ LUFA_PATH = ../../../..
# LUFA library compile-time options # LUFA library compile-time options
LUFA_OPTS = -D USB_HOST_ONLY LUFA_OPTS = -D USB_HOST_ONLY
LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" 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.) # List C source files here. (C dependencies are automatically generated.)

@ -119,7 +119,7 @@ LUFA_PATH = ../../../..
LUFA_OPTS = -D NO_STREAM_CALLBACKS LUFA_OPTS = -D NO_STREAM_CALLBACKS
LUFA_OPTS += -D USB_HOST_ONLY LUFA_OPTS += -D USB_HOST_ONLY
LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" 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.) # List C source files here. (C dependencies are automatically generated.)

@ -11,7 +11,8 @@
* <b>New:</b> * <b>New:</b>
* - Added activity LED indicators to the AVRISP project to indicate when the device is busy processing a command * - 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) * - 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 LowLevel demo
* - Added new RNDIS Ethernet Host Class Driver * - Added new RNDIS Ethernet Host Class Driver
* - Added new RNDIS Ethernet Host ClassDriver demo * - Added new RNDIS Ethernet Host ClassDriver demo

@ -109,7 +109,10 @@ static void PDIProtocol_EnterXPROGMode(void)
/* Must hold DATA line high for at least 90nS to enable PDI interface */ /* Must hold DATA line high for at least 90nS to enable PDI interface */
PDIDATA_LINE_PORT |= PDIDATA_LINE_MASK; 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 */ /* 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++) for (uint8_t i = 0; i < 16; i++)

Loading…
Cancel
Save