This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I am trying to make my device jump to the bootloader and accept a firmware update over USB DFU. However, when I do this, the device disconnects correctly, but my kernel logs show me that the device can't enumerate.
Code:
uint32_t GoToBootloader(void) { ROM_IntMasterDisable(); ROM_USBDevDisconnect(USB0_BASE); ROM_UpdateUSB(0); return(0); }
Error:
USB disconnect, device number 48
new full-speed USB device number 49 using xhci_hcd
device descriptor read/64, error -110
Is something wrong with my bootloader code?
Hi Amit, thanks for replying.
Here is a snippet of the configuration code
// Configure the required pins for USB operation. MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); MAP_GPIOPinTypeUSBAnalog(GPIO_PORTD_BASE, GPIO_PIN_5 | GPIO_PIN_4); // Initialize the transmit and receive buffers. USBBufferInit(&g_sTxBuffer); USBBufferInit(&g_sRxBuffer); // Set the USB stack mode to Device mode with VBUS monitoring. USBStackModeSet(0, eUSBModeForceDevice, 0); // Pass our device information to the USB library and place the device // on the bus. USBDCDCInit(0, &g_sCDCDevice); // Register USB interrupt handler USBIntRegister(USB0_BASE, USB0DeviceIntHandler); // Enable processor interrupts. MAP_IntMasterEnable();
The full USB configuration file is here: github.com/.../tivac_hardware_usb.h
With your code, my device disconnects but never makes an attempt to reconnect. Note that I replaced ROM_SysCtlDelay(ui32SysClock / 3); with ROM_SysCtlDelay(SysCtlClockGet() / 3);. I also tried it without the delay.
Hi,
Which sample code are you referring to? I have not been able to find it in the Tivaware examples.
Thanks,
Steven