We're using BSP_WINCE_ARM_A8-1.00.00.14, the SoftResetMUSBController funcion in otg.cpp is call in many places, every time the cable is pluged and unpluged will call this function once. The TRM doesn't mention this is necessary.
there is another reason I ask this question, the ID pad is hard-wired to ground in our custom board, so we have to keep the VBUS on when the device is detached as follows(in OTG_ConfigISR_stage2 funcion):
#if 1
SessionRequest(FALSE, FALSE);
SoftResetMUSBController();
// enable VBUS when disconnected
SessionRequest(TRUE, TRUE);
#endif
if I disable this block, It is much easier become hanged when we plug and unplug the device quickly.
Best regards!
Jack