??? 08/19/08 13:33 Read: times |
#157555 - ZLP to the interrupt IN EP Responding to: ???'s previous message |
ZLP is always used in Set_configuration handler in Status Stage. You are mixing up the default endpoint (EP0) and the interrupt IN endpoint. The ZLP to the EP0 on the STATUS stage is required for the control transfer handling. It means the reply to the host that the request is handled successfully. I said to put ZLP to the interrupt IN EP in the Set_Configuration handler. USB IN EP doesn't start transaction until host polls the IN EP using IN transaction. Then, you can know the start of host IN transaction by the TX complete flag of this IN EP. Does it mean that when the configuration is set, the enumeration is at the end? But other setup data are still sending after Set_configuration, aren't they? Set_Configuration is not always the end of enumeration. Depending on the USB class, and even on the host OS, more request(s) are put from host to the device. See this post, "Difference on HID enumeration on Win, Linux and Mac" on SiLabs USB forum http://www.cygnal.org/ubb/Forum9/HTML/001325.html On this post, I compared the enumeration sequence of vendor-specific HID on WinXP, Linux and Mac OSX. - You'll see Get_Descriptor( HID Report ) after Set_Configuration on all of these OS. - Just WinXP puts Set_Idle, too. - Just Mac OSX puts many Get_Descriptors after Set_Configuration - WinXP and Mac OSX start IN transaction to the interrupt EP after enumeration, but Linux puts Get_Report( Input ) Tsuneo |
Topic | Author | Date |
AT89c5131 enumeration problem... | 01/01/70 00:00 | |
Initialization problem | 01/01/70 00:00 | |
Windows bug | 01/01/70 00:00 | |
continuing problem... | 01/01/70 00:00 | |
End of enumeration | 01/01/70 00:00 | |
Zero-length data packet | 01/01/70 00:00 | |
ZLP to the interrupt IN EP | 01/01/70 00:00 | |
My fault... | 01/01/70 00:00 | |
Which example? | 01/01/70 00:00 | |
Implementing the USB Enumeration Process... | 01/01/70 00:00 | |
Packet size of the interrupt IN EP | 01/01/70 00:00 | |
packet size... | 01/01/70 00:00 | |
Detailed log...![]() | 01/01/70 00:00 |