2024-02-07 12:20 AM
Hi,
I want to put the USB bus into SUSPEND/RESUME state, currently I'm using gState in USBH_HandleTypeDef to manually put the device into HOST_SUSPENDED state and similarly to move to the Idle state I'm manually assigning gState to be HOST_IDLE.
With this approach I'm able to move to suspend state, I have verified the same on oscilloscope, there is no bus activity in SUSPEND state
Issue with this approch is if we move from suspend to ideal state and back to suspend state we can't go to ideal state and we are stuck in the suspend state, I have called MX_USB_HOST_INIT() before making USB state=idle but its stuck in some state or its not getting enumerated again
Can anyone suggest any other way or why this is happening?
Thanks
2024-02-07 01:58 AM
Hello @tachyon701
gState is only meant to give current state in the global host state machine. It cannot change bus activity. I suggest you wake up through EXTI line interrupt through OTG_FS_WKUP while in suspended state.
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.