??? 03/31/06 01:57 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#113448 - The 2nd Get_Descriptor Responding to: ???'s previous message |
Hi Mehdi,
As you receive the second device descriptor request without error, the Set_Address seems to be properly handled. Then, the handling of the second device descriptor request may have the error. - Is 'bMaxPacketSize' of the device descriptor set to 16 (10H)? - Is 'VALIDATE_BUFFER' command sent after sending 2 bytes on the step 7 ? - Did you receive ZLP from the host after the step 7 ? bus reset Windows often issues bus reset unnecessarily. When the D12 and firmware receives bus reset, - D12 will automatically set its address to 0 by itself - Initialize the flags and variables corresponding to USB handling to the default state on the firmware The enumeration steps It is not good way to code the firmware depending on an expectation of the enumeration sequence of a specific OS. However, it will help you to debug your code. This reference describes well the enumeration process on Windows. "USB Complete 3rd Ed." J Axelson Chapter 4, p85, "Enumeration: How the Host Learns about Devices" You can read this section on Lakeview Research http://www.lvr.com/usbcenum.htm Step 8, 9 and 10 corresponds to what you are observing currently. Tsuneo |