Fix(host) enumeration with 8bitdo devices#3007
Conversation
…eset while having on-going control transfer
- host enumeration always get language id, manufacturer, product and serial string. Which is required by some device such as 8bitdo
|
Since you are working on usbh, I found at least on NUCLEO-H7S3L8 speed detection is more stable by putting |
hmm that is weird, delay before port_reset() shouldn't make a difference since port got reset anyway, and the delay afterwards is rather generous ~450ms. Thank you for the hint, I will check this out next time I test with h7rs. |
|
If I remember correctly dwc2 does speed detection at the end of reset. If DEBOUNCING_DELAY_MS is placed after the end of reset then it won't help speed detection since it's already done. |
|
@HiFiPhile it is weird, there is hcd_port_reset(_dev0.rhport);
// Since we are in middle of rhport reset, frame number is not available yet.
// need to depend on tusb_time_millis_api()
tusb_time_delay_ms_api(ENUM_RESET_DELAY_MS);
hcd_port_reset_end(_dev0.rhport);
// wait until device connection is stable TODO non blocking
tusb_time_delay_ms_api(ENUM_DEBOUNCING_DELAY_MS); |
I think some devices need extra time to power on (DP is pulled high but not ready to communicate), in which case |

Describe the PR
@tannewt please try to see if this works with your 8bitdo gamepad
PS: IAR build failed due to server maintanence