STM32L4 do not detect USB Suspend mode (LPM enabled)
I would like reduce power consumption from USB host when my device do not used by application on USB Host. I would like use STOP1 when device in suspend.
As I know USB Host should stop send SOF(when device is no active) and after 3ms device should detect idle bus event and enter to suspend mode or USB host can enter device to L1\L2 states(if LPM enable)
I have USB compocite device(USB HID+AudioInOut+CDC) on STM32L476 and I enabled LPM but my device do not receive Suspend(Device connected but no any data exchange)
I also tried example from:
STM32Cube_FW_L4_V1.17.0\Projects\32L476GDISCOVERY\Applications\USB_Device\HID_Standalone_LPMI disable any data sending to host but also do not receive suspend event.
I am testing it on Windows10, Windows has enable:USB selective suspend.
Also I try it on Android and also do not get correct suspend behavior.
And one more point,my Windows10 has some device (I do not know who is it, it is part of my monitor) and seems this device in suspend mode and has no any BOS descriptor
But example has the followinf state:
My BOS descriptor:
My questions:
- How OS(Windows or Android)host decide that device can enter in suspend mode?
- Can I send device to suspend manualy by some system API (like ControlIO)
- Type of USB Device Class can affect on suspend mode? Is it allowed for Composide devices?
- Is it possible keep USB connection and use STOP1 mode after suspend received?
Thanks for any advice!
