diff --git a/lib/usb_dfu.c b/lib/usb_dfu.c index 2c324ca..3782a03 100644 --- a/lib/usb_dfu.c +++ b/lib/usb_dfu.c @@ -20,6 +20,7 @@ #include // flash utilities #include // USB library #include // USB DFU library +#include // additional USB definitions #include "global.h" // global utilities #include "usb_dfu.h" // USB DFU header and definitions @@ -366,6 +367,8 @@ void usb_dfu_setup(void) gpio_set_af(GPIOA, GPIO_AF10, GPIO11 | GPIO12); // set alternate function to USB usb_device = usbd_init(&otgfs_usb_driver, &usb_dfu_device, &usb_dfu_configuration, usb_dfu_strings, LENGTH(usb_dfu_strings), usbd_control_buffer, sizeof(usbd_control_buffer)); // configure USB device usbd_register_control_callback(usb_device, USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, usb_dfu_control_request); // set control request handling DFU operations + OTG_FS_GCCFG |= OTG_GCCFG_NOVBUSSENS | OTG_GCCFG_PWRDWN; // disable VBUS sensing + OTG_FS_GCCFG &= ~(OTG_GCCFG_VBUSBSEN | OTG_GCCFG_VBUSASEN); // force USB device mode } void usb_dfu_start(void)