USB device example for XMC4500 does only run once: Configuration: unchaged from Example-Project + Self-Powered Example: MSC, HID on XM4500 RelaxKit Effect: after reset detection works well and HID or MSC can be accessed. After unpluggin and replugging the device (cont. power) the HID and MSC is not detected anymore by any PC (Win10-64, Win7-64). Is there any sequence available to detect and reconnect the USB device?
This seems to be a problem in driver and that is that reset function does not stop any pending transfers.
I already checked this. By resetting the USB Hardware in the XMC4500: Reg GRSTCTL: CSftRst, FrmCntrRst all Hardware Registers are set to Zero. Reset in the Debugging session and running does not provide a new successful enumeration. Also diabling the power of the module does not provide any success. Only a Hardware reset can renew the USB Connection. the device is trying to enumerate after a reconnect with failures: ---===>Device Information<===--- *!*ERROR: no String Descriptor for index 2! (USB Device Viewer) and product string etc. are missing. A "Device 0" can be selected from the HID Client Software. But this is non-functional. A hardreset brings the correct function back. I don't think that this is related to Hardware. Disabling the clock (USBPLL) and reset will not improve the Situation: no USB device is available after reset. Enumeration starts but is terminated with error. I suggest that the Debugging session has some Impact on the configuration of the device and probably some bootloader functions. However - the real Problem is the reconnecting of a selfpowered device.
It is not resetting of the hardware that is a problem but transfers that were started before USB reset occured are most likely still virutally pending and prevent new transfers from being started.
This has to do with internal RAM structues holding information for transfers not the USB controller itself.