??? 01/17/06 18:51 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#107626 - Try USB.org Responding to: ???'s previous message |
They have a nice forum there and they have discussed the D12 in the distant past. I've not read this whole thread but have used the D11 (horrible beast) so might be able to help a little.
The host sends a request for a descriptor that you have. I don't think it will ask for one you don't have. It knows from the first operations which descriptors you are and are not supporting (assuming your descriptors are correct). Many of the descriptors are longer than the buffer size (for HID and/or low-speed anyway). So for the case of an 8-bit buffer you must copy over the first 8 bytes into the buffer and then allow Endpoint 0 to ACK the host. The host will take the 8-bytes (the first couple of bytes contain the overall length) and if it needs more, it will ask for the second 8. This continues until the whole descriptor is read. Then it will ask for other descripters as necessary. As far as I know most devices work like this except those that require only an EEPROM for configuration (VID/PID). There may be some newer devices that handle the USB transactions for you without cpu intervention, but I haven't encountered any. |