AnsweredAssumed Answered

USB HS Device Losing Status of Configured

Question asked by Joshua on Sep 2, 2014
EDIT: Disregard. I was missing a breakpoint on USBD_RESET; my host is indeed trying to reset my device. 

I've got a USB HS device based on the STM427.  I am attempting to transfer some data using several back-to-back calls to the USBD_HID_SendReport function from the USB Device library on EP1. The issue I am seeing is that when sending the first report, the device status of my device gets changed from USB_OTG_CONFIGURED (value of 3) to USB_OTG_DEFAULT (value of 1). My host then sees the device is not configured, and tries to re-enumerate it all over again. I am able to pinpoint the location of where this happens to here:

 /* EP enable, IN data in FIFO */<br>    depctl.b.cnak = 1;<br>    depctl.b.epena = 1;<br>    USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPCTL, depctl.d32);

After I execute the next line, I can see the device_status value change to 1. However, there are no calls or anything that should be performing this. I set breakpoints in the three locations device_status is set to 1, and it never hits any of these. Further, if I single-step through the assembler code, this does not happen: the device stays at device_status = 3. 

Anyone have any ideas? 

Outcomes