??? 01/29/06 13:14 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#108634 - SET_ADDRESS Responding to: ???'s previous message |
I received an e-mail from you. I think we must continue on this thread, rather than e-mail exchange.
The sequence to handle SET_ADDRESS is
- 'Set Address/Enable' command + address (enabled(bit7) + wValue of SET_ADDRESS) - send ZLP to Control IN EP. what is wvalue? i think your aim is 7 bit of set_address data wValue is one of the parameters sent with SET_ADDRESS SetUp packet. From your previous post, SetUp packet received as SET_ADDRESS is as follows. 00H 05H 01H 00H 00H 00H 00H 00H Each field of this 8 bytes is named, bmRequestType (1 byte) bRequest (1 byte) wValue (2 bytes) wIndex (2 bytes) wLength (2 bytes) (Please note the byte order on USB is low-byte first (little endian)) The meaning of this packet is, 00H: OUT / standard / device 05H: SET_ADDRESS 01H 00H: wValue = 0001H <-- address to set 00H 00H: wIndex (not used) 00H 00H: wLength (not used) Can you describe the sequence for other requests like above? Please see my last post at the bottom of this thread D12 Example in "USB Design By Example" http://www.8052.com/forum/read.phtml?id=108455 In this post, I showed the link to '51 asm example for D12, found in "USB Design By Example". I think it's more helpful for you than Philips C example, because it is simple and familiar for you. Tracing this code and referring to Axelson's book (I remember you have it), you can realize how to handle enumeration on D12. if you have any particular question on enumeration, post here. Maybe I can answer it. Tsuneo |