Author Topic: USB Hot Plug to SET_CONFIGURATION (1) Takes 22.2 seconds  (Read 8474 times)

USBVIDPID

  • Member
  • ***
  • Posts: 24
USB Hot Plug to SET_CONFIGURATION (1) Takes 22.2 seconds
« on: March 15, 2011, 04:55:33 pm »
Hello,

I have a USB Full Speed device that from hot plug to SET_CONFIGURATION (1) takes 22.2 seconds.  Nine GET_DESCRIPTOR messages go unanswered before the 10th GET_DESCRIPTOR request gets responded to and a SET_ADDRESS gets sent at about 22.1 seconds after the hot plug.

Is this a violation of USB 2.0 Section 9.2.6.4, 500 ms is the maximum time to deliver first and subsequent (except last) data for standard request?

The OS is MS Windows XP Service Pack 3. 

Thank you.


mdlayt

  • Member
  • ***
  • Posts: 40
Re: USB Hot Plug to SET_CONFIGURATION (1) Takes 22.2 seconds
« Reply #1 on: March 15, 2011, 07:47:14 pm »
By "I have" I hope you mean you got one someone else made.

I'm sure you can read the spec as well as I can.

Coders are notorious for writing their devices by convention rather than by spec.  By this, I mean, if the convention is to boot up, check stuff, busy wait step by step and eventually get around to servicing peripherals, then they code to boot up, check stuff, busy wait, and eventually get around to servicing USB.

For example, see "USB ECN:  USB 2.0 Connect Timing"

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: USB Hot Plug to SET_CONFIGURATION (1) Takes 22.2 seconds
« Reply #2 on: March 16, 2011, 10:52:29 am »
The endpoint should return requested data within 500 ms. You don't say whether the host gives each request the full 500 ms. A host can give up on a device that takes longer than 500 ms or give the device more chances.

Jan

USBVIDPID

  • Member
  • ***
  • Posts: 24
Re: USB Hot Plug to SET_CONFIGURATION (1) Takes 22.2 seconds
« Reply #3 on: March 16, 2011, 02:56:31 pm »
Thank you. 

And yes, it is some other supplier's product that is self powered.  They used the assumption that power would be on before the USB connection.  A bad assumption.