diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c index f1cbbcc3..8b6be49b 100644 --- a/firmware/apps/cardem/main.c +++ b/firmware/apps/cardem/main.c @@ -154,6 +154,7 @@ extern int main(void) if (i >= MAX_USB_ITER * 3) { TRACE_ERROR("Resetting board (USB could " "not be configured)\n\r"); + USBD_Disconnect(); NVIC_SystemReset(); } #endif diff --git a/firmware/apps/dfu/main.c b/firmware/apps/dfu/main.c index 770076e8..dd13fcee 100644 --- a/firmware/apps/dfu/main.c +++ b/firmware/apps/dfu/main.c @@ -161,6 +161,7 @@ extern int main(void) if (i >= MAX_USB_ITER * 3) { TRACE_ERROR("Resetting board (USB could " "not be configured)\n\r"); + USBD_Disconnect(); NVIC_SystemReset(); } #endif diff --git a/firmware/apps/triple_play/main.c b/firmware/apps/triple_play/main.c index a395ba6d..5ff32220 100644 --- a/firmware/apps/triple_play/main.c +++ b/firmware/apps/triple_play/main.c @@ -154,6 +154,7 @@ extern int main(void) if (i >= MAX_USB_ITER * 3) { TRACE_ERROR("Resetting board (USB could " "not be configured)\r\n"); + USBD_Disconnect(); NVIC_SystemReset(); } #endif diff --git a/firmware/libboard/qmod/source/board_qmod.c b/firmware/libboard/qmod/source/board_qmod.c index a5392bb6..e05a4542 100644 --- a/firmware/libboard/qmod/source/board_qmod.c +++ b/firmware/libboard/qmod/source/board_qmod.c @@ -112,6 +112,7 @@ void board_exec_dbg_cmd(int ch) break; case 'R': printf("Asking NVIC to reset us\n\r"); + USBD_Disconnect(); NVIC_SystemReset(); break; case 'O':