cancel
Showing results for 
Search instead for 
Did you mean: 

USB Enumeration - Device demands higher power than Host can supply

krn
Associate II

Hello, 

In my application USB Device, on successful enumeration, BIT13 "USB_OTG_GINTSTS_ENUMDNE"of OTG core interrupt register (OTG_GINTSTS) turns High.

As per USB2.0, if my USB Device in its Device Descriptor demands for higher power than what external USB HOST can support, the enumeration fails.

I want to know what will be the state (high/Low) for for BIT13 "USB_OTG_GINTSTS_ENUMDNE"of OTG core interrupt register (OTG_GINTSTS) in that condition.

4 REPLIES 4
FBL
ST Employee

Hi @krn 

When a USB device is connected, it initially draws a limited amount of power (up to 100 mA for USB 2.0).

During the enumeration process, the device sends its descriptors, including the Device Descriptor, which contains the bMaxPower field indicating the maximum power the device requires. The enum process wil lfail in case it cannot provide the requested power.

You may need to check or simply attach your USB traffic to analyze.

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.

krn
Associate II

Thank you for your reply.

My understanding is that since enumeration fails in above case, the BIT13 "USB_OTG_GINTSTS_ENUMDNE" of OTG core interrupt register (OTG_GINTSTS) will not be set High.

Can you please comment on this ?

FBL
ST Employee

Hi @krn 

This bit reflects the enumeration is done which means simply executed not necessarily successful. Only the USB stack can interpret the enumeration if it is successful or failing.

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.

krn
Associate II

Hello,

Please can you explain how does USB stack can interpret the enumeration if it is successful or failing.