diff --git a/Bootloaders/CDC/BootloaderCDC.h b/Bootloaders/CDC/BootloaderCDC.h index 0d31c99c4483718a2a6312cfa77235d5d37a1894..3c19bdfd5102ea1730c1862565b3793aee559cb1 100644 --- a/Bootloaders/CDC/BootloaderCDC.h +++ b/Bootloaders/CDC/BootloaderCDC.h @@ -43,6 +43,7 @@ #include <avr/eeprom.h> #include <avr/power.h> #include <avr/interrupt.h> + #include <util/delay.h> #include <stdbool.h> #include "Descriptors.h" diff --git a/Bootloaders/DFU/BootloaderDFU.c b/Bootloaders/DFU/BootloaderDFU.c index b13917f45f2a9ed23ed60b7c7de04ef81e195644..cafbd572b54f8d3dd29c8f8b33ebac4837638411 100644 --- a/Bootloaders/DFU/BootloaderDFU.c +++ b/Bootloaders/DFU/BootloaderDFU.c @@ -191,6 +191,9 @@ int main(void) while (RunBootloader || WaitForExit) USB_USBTask(); + /* Wait a short time to end all USB transactions and then disconnect */ + _delay_us(1000); + /* Reset configured hardware back to their original states for the user application */ ResetHardware(); diff --git a/Bootloaders/HID/BootloaderHID.c b/Bootloaders/HID/BootloaderHID.c index e5b7d3258188db6f50ccbb143a44baca0b68c9f9..a1f3e67181fad804d306113e84eb70b3236a34c7 100644 --- a/Bootloaders/HID/BootloaderHID.c +++ b/Bootloaders/HID/BootloaderHID.c @@ -84,6 +84,9 @@ int main(void) while (RunBootloader) USB_USBTask(); + /* Wait a short time to end all USB transactions and then disconnect */ + _delay_us(1000); + /* Disconnect from the host - USB interface will be reset later along with the AVR */ USB_Detach(); diff --git a/Bootloaders/HID/BootloaderHID.h b/Bootloaders/HID/BootloaderHID.h index 63f89a6222e57de609ceb4bf852ff4a03fde6326..1984af89311d3371c9cabe37da40065c74493edb 100644 --- a/Bootloaders/HID/BootloaderHID.h +++ b/Bootloaders/HID/BootloaderHID.h @@ -43,6 +43,7 @@ #include <avr/power.h> #include <avr/interrupt.h> #include <util/atomic.h> + #include <util/delay.h> #include <stdbool.h> #include "Descriptors.h" diff --git a/Bootloaders/MassStorage/BootloaderMassStorage.c b/Bootloaders/MassStorage/BootloaderMassStorage.c index 071e86bbace439a28073803e37a1e4cb1d786988..81a8dc424176f0ce47295e9c77d88db171a3230b 100644 --- a/Bootloaders/MassStorage/BootloaderMassStorage.c +++ b/Bootloaders/MassStorage/BootloaderMassStorage.c @@ -169,6 +169,9 @@ int main(void) USB_USBTask(); } + /* Wait a short time to end all USB transactions and then disconnect */ + _delay_us(1000); + /* Disconnect from the host - USB interface will be reset later along with the AVR */ USB_Detach(); diff --git a/Bootloaders/MassStorage/BootloaderMassStorage.h b/Bootloaders/MassStorage/BootloaderMassStorage.h index 30a3164efbe30ef69a82d896602c4b324fc8094d..3241e81a4f13b1ed848a3fb354793079fb86dcd7 100644 --- a/Bootloaders/MassStorage/BootloaderMassStorage.h +++ b/Bootloaders/MassStorage/BootloaderMassStorage.h @@ -41,6 +41,7 @@ #include <avr/wdt.h> #include <avr/power.h> #include <avr/interrupt.h> + #include <util/delay.h> #include <string.h> #include "Descriptors.h" diff --git a/Bootloaders/Printer/BootloaderPrinter.c b/Bootloaders/Printer/BootloaderPrinter.c index 6fde802908070502686c1dda4cddbc576a624b6b..da41621724a8bca8fb64031e2648ee45f94f30b3 100644 --- a/Bootloaders/Printer/BootloaderPrinter.c +++ b/Bootloaders/Printer/BootloaderPrinter.c @@ -401,6 +401,9 @@ int main(void) USB_USBTask(); } + /* Wait a short time to end all USB transactions and then disconnect */ + _delay_us(1000); + /* Disconnect from the host - USB interface will be reset later along with the AVR */ USB_Detach(); diff --git a/Bootloaders/Printer/BootloaderPrinter.h b/Bootloaders/Printer/BootloaderPrinter.h index 54d96e0bc7e55135336a9b1f267cbeeccef55d73..78f938c6899f5c29703062567dd80dd9e971cbc8 100644 --- a/Bootloaders/Printer/BootloaderPrinter.h +++ b/Bootloaders/Printer/BootloaderPrinter.h @@ -41,6 +41,7 @@ #include <avr/wdt.h> #include <avr/power.h> #include <avr/interrupt.h> + #include <util/delay.h> #include "Descriptors.h" #include "BootloaderAPI.h"