From a079e2b4eee2e28ba59f58fee14ebbdf4f9c3e44 Mon Sep 17 00:00:00 2001 From: Eric Wild Date: Thu, 28 Oct 2021 18:17:00 +0200 Subject: [PATCH] firmware: increase reset delay before usb reattach The previous value was way too low and led to reenumeration issues when switching from app to bl because the hosts are fairly lenient and feature long delays until they accept disappearing devices as gone for good instead of ignoring a presuambly flaky usb cable or connection. Related: SYS5061 Change-Id: I9b8c8bf794ad5b94fc7ea2a01d1ebf4e36862c36 --- firmware/apps/dfu/main.c | 2 +- firmware/libcommon/source/usb.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/apps/dfu/main.c b/firmware/apps/dfu/main.c index 48138818..48ba879c 100644 --- a/firmware/apps/dfu/main.c +++ b/firmware/apps/dfu/main.c @@ -342,7 +342,7 @@ extern int main(void) TRACE_INFO("USB init...\n\r"); /* Signal USB reset by disabling the pull-up on USB D+ for at least 10 ms */ USBD_Disconnect(); - mdelay(50); + mdelay(500); USBDFU_Initialize(&dfu_descriptors); while (USBD_GetState() < USBD_STATE_CONFIGURED) { diff --git a/firmware/libcommon/source/usb.c b/firmware/libcommon/source/usb.c index 08682638..d86fc923 100644 --- a/firmware/libcommon/source/usb.c +++ b/firmware/libcommon/source/usb.c @@ -690,7 +690,7 @@ void SIMtrace_USB_Initialize(void) unsigned int i; /* Signal USB reset by disabling the pull-up on USB D+ for at least 10 ms */ USBD_HAL_Suspend(); - mdelay(20); + mdelay(500); USBD_HAL_Activate(); // Get std USB driver