12
\$\begingroup\$

The USB 2.0 spec says: "A low-speed device is required to have a captive cable." However, I can't find a good explanation for why this is the case. I have seen hints towards two possible explanations:

  1. To prevent users from accidentally using a (non-captive) low-speed cable with a full-speed or high-speed device. However, there is an error in this logic: To achieve that, the spec would only have to demand that low-speed cables must be captive. It would not have to demand that low-speed devices use a captive cable, the difference being that a low-speed device could use a non-captive full/high-speed cable.

  2. Differences in cable capacitance. Section 7.1.2.1 says: "A low-speed device (including cable) may have a capacitance of as little as 200 pF and as much as 450 pF". Unfortunately I found it hard to find numbers for high-speed cables. Things get more complex because different cable lengths exist, but then, I don't understand why the spec disallows using these cables altogether instead of saying, if a low-speed devices has a B-receptacle then it must handle all standard cables, and only if it can't do that a captive cable is required. Also, in case standard cables have a capacitance that already exceeds 450pF (as noted, I don't know the actual numbers), then hub drivers are strong enough to handle that because they must (for fullspeed), so they could do the same for lowspeed -- and for the device, again, a captive cable could be required only if its driver is too weak for the capacitance range of standard cables.

\$\endgroup\$
17
\$\begingroup\$

The reason is, as in your first explanation, to prevent the accidental use of a low-speed cable with a full- or high-speed device.

Yes, you're technically correct that they could simply mandate that low-speed cables be made captive - but having removable cables being used on a low-speed device would create a market for cheap uncertified cables being sold with (or not sold with) an "only for use with low-speed devices" warning that people could ignore and use on other devices.

Making low-speed devices use captive cables simply removes that market and any chance of ever using the wrong cable.

| improve this answer | |
\$\endgroup\$
  • 1
    \$\begingroup\$ excellently put! All the "this cable should not exist" restrictions of USB (e.g. the "USB-A to USB-A plug cables shouldn't exist" to avoid confusing devices with hosts) is meant to protect the USB "ecosystem"; opening up a market for low-grade cables would've been bad in the day when USB2.0 "Full-Speed capable" cabling was noticeable more pricey than a simple four-lead that would suffice for e.g. a low-speed mouse. \$\endgroup\$ – Marcus Müller Jul 13 at 23:25
  • 1
    \$\begingroup\$ Vendors of USB powered devices often use USB-B, the square plug and socket, so USB-A and USB-C cannot be used by accident as there is no intent to send data either way. \$\endgroup\$ – VTNCaGNtdDVNalUy Jul 14 at 1:01
  • 1
    \$\begingroup\$ If a vendor ignores the spec and is willing to produce "bad" cables with a B plug, what prevents the same vendor from ignoring the spec and making a lowspeed device with a B receptacle? \$\endgroup\$ – Martin Geisse Jul 14 at 6:11
  • 7
    \$\begingroup\$ Devices need vendor/device IDs in order to identify them, and they have to be obtained and could be withdrawn for "rogue" devices. Anyone can make a cable. \$\endgroup\$ – Finbarr Jul 14 at 6:44
  • \$\begingroup\$ Another reason came to my mind. A single rogue vendor making a lowspeed device with a B receptable does not yet do significant (visible) harm to the ecosystem since every combination will still work. Another vendor could then make low-grade cables that only work with these devices, and then harm is done. BUT: It takes two rogue vendors in tandem for that, while if lowspeed devices with B receptacles were allowed, a single rogue vendor could do harm already by producing bad cables. This is compounded by the fact you stated about cables not having vendor IDs. \$\endgroup\$ – Martin Geisse Jul 25 at 6:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.