4 ms·
On a related note: back in a previous, embedded incarnation, I was once tasked with writing a USB driver. Not the kind that might first come to mind - this was
by porsupah 12y ago
On a related note: back in a previous, embedded incarnation, I was once tasked with writing a USB driver. Not the kind that might first come to mind - this was for the /device/, for which documentation is rather less easily found. With the aid of this resource (no, no spam), I was able to make our gadget come up as a fully compliant composite HID/microphone device.
http://www.beyondlogic.org/usbnutshell/usb1.shtml http://www.beyondlogic.org/usbnutshell/usb1.shtml
- tcas 12y agoThat is a great link. Also USB Made Simple is good addition to that. It's pretty amazing that the protocol works in the first place. It's a multi-driver, differential bus with 3 valid states (not including bus arbitration). It does all sorts of dirty things, like in order to identify a device as a USB1.0 or USB1.1 device, a resistor is either applied to D- or D+. In order to determine if the host/device should switch to USB2.0 mode, the host computer will drive both lines to low (SE0) and the device will send high current "chirps" back to the host. Essentially having multiple hosts driving the line at the same time. http://www.usbmadesimple.co.uk/ http://www.usbmadesimple.co.uk/