This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Slow enumeration for USB 2.0 full speed device.

Hello,

I have LPC2368 controller which supports USB 2.0 full speed device.

While enumeration, I noticed the below request sequence
from Host to device:

1. Device Descriptor
2. Set Address
3. Device Descriptor
4. Device Configuration
5. String descriptor
6. String descriptor
7. Device Configuration
8. Device Qualifier
9. String descriptor
10. String descriptor
11. String descriptor

Since my device is 2.0 full speed device so I returned request error by setting status to STALL for Device Qualifier request.

But the problem I am facing is, that the device receives next request(i.e step 9 string descriptor) after a delay of 4-5 seconds.

That makes enumeration very slow and takes around 7 seconds to complete it.

Could anybody suggest me any solution to solve this.

Thanks.
VAIGO

Parents
  • We used the same client device source code for 1.1 and 2.0. The only difference made was, the protocol version in device descriptor.

    1) DO we need to make any other change in client side?
    2) On changing the protocol version from 1.1 => 2.0, the performance of data transfer better between PC and Client. At the same time the performance is slows down little with 1.1.

    Does any body has idea, why it happens like the above.

    On trying to improve the data transfer, we end up with slow enumeration.

    Thanks
    VAIGO

Reply
  • We used the same client device source code for 1.1 and 2.0. The only difference made was, the protocol version in device descriptor.

    1) DO we need to make any other change in client side?
    2) On changing the protocol version from 1.1 => 2.0, the performance of data transfer better between PC and Client. At the same time the performance is slows down little with 1.1.

    Does any body has idea, why it happens like the above.

    On trying to improve the data transfer, we end up with slow enumeration.

    Thanks
    VAIGO

Children
  • When you specify USB1.1 (0x0110) on the bcdUSB field of the device descriptor, the host PC doesn't issue Get_Descriptor( Device Qualifier ) request any more. This request is issued just when USB2.0 (0x0200) is assigned to the bcdUSB field AND when the device is directly connected to the PC without any hub.

    I've made many full-speed devices assigned to USB2.0, I've never seen WinXP SP2 delays the enumeration of these devices. It's most likely the firmware side problem.

    "b) Which example are you making up your device on?
    ==> Sorry, I didn't get your point. Could you please explain about it."

    Are you using a USB ARM example from KEIL as the base code?
    OR did you make your code from scratch by yourself?
    In the first place, which MCU or USB peripheral are you using?

    Tsuneo

  • Thanks for your reply.

    I've made many full-speed devices assigned to USB2.0, I've never seen WinXP SP2 delays the enumeration of these devices. It's most likely the firmware side problem.

    ==> We checkced with the USB analyzer, the stall command from device reaches host after 5 seconds. I believe this could be the main reason for the delay.

    Are you using a USB ARM example from KEIL as the base code?
    OR did you make your code from scratch by yourself?
    In the first place, which MCU or USB peripheral are you using?

    ==> We are using LPC2368 controller and we got the client code from LPC.

    Thanks
    VAIGO

  • "the stall command from device reaches host after 5 seconds."

    In our device, bus analyzer shows that STALL is issued by the device at the IN transaction just after the SETUP which specifies Get_Descriptor( Device Qualifier ). The interval is just one frame (1 ms) - I observed it on UHCI controller.

    If it takes so long, the device respond nothing to the IN transaction(s), and the host repeats SETUP again and again (up to three times).

    Maybe the firmware doesn't set STALL to the engine correctly.

    "we got the client code from LPC"

    What do you mean LPC?
    LPCUSB by Bertrik?

    Tsuneo