3 ms·
> USB commonly has signal integrity issues. That's simply not true.
by justin66 6y ago
> USB commonly has signal integrity issues.
That's simply not true.
- willis936 6y agoYes, it is. Everything about the USB 2.0 PHY is out of control for a 480 Mbps line rate. Things were tightened up in USB 3.0 just as they were in the move to USB 2.0, but not nearly enough to guarantee low BER in real world scenarios at advertised rates. USB is made to be cheap, not reliable.
- justin66 6y agoI do multi-terabyte backups to USB3-connected devices and networked devices. I'm in the habit of using a merge tool for the backups, and using it again to verify that the backups are correct. One thing I've found is that the incidence of flipped bits is extremely small relative to the amount of data transferred, but real, with both USB3 storage devices and network shares accessed via ethernet. Do they use the same error correction algorithm, perhaps? (I honestly haven't looked into it much) An alternate possibility is that the USB3 and ethernet transport error correction is working fine and it's the devices that are not storing data accurately... that seems less likely to me, but somewhere in there is a SATA bus that also has to do error correction. In any case I don't feel great about a statement like "USB commonly has signal integrity issues" since the way I work wouldn't be possible if it were true. It's not perfect, for sure, but I honestly feel very good about my USB-connected SSD storage relative to so many other things I've used in the past: various optical drives, floppies, SD cards, and some not-great hard drives.
- willis936 6y agoUSB doesn’t have error correction. It has a simple CRC and retransmit behavior, which buys a few orders of magnitude on the BER, but is a far-cry from something like FEC. Typically you would want a higher layer to do error detection and correction for USB devices. The quality of the PHYs and media matter greatly. If you’re not using the cheapest PHYs, aren’t in a noisy environment (ie many USB devices connected to the same controller), and have high quality cables/connectors (that are also short and far away from crosstalk aggressors), then you may never see errors. Something working well in a cozy scenario doesn’t make it a good solution. I could run an out of spec 2 meter cheap SATA cable in a bundle and never see errors. What matters is BER margins at real world scenarios. USB should be implementing more aggressive error correction at layer 1 for what they’re doing. It shouldn’t be the job of higher layers to handle signal integrity issues.
- justin66 6y agoI think on these points I agree. Given how fast and efficient even the cheaper microcontrollers have become there's not a reason for any new spec to avoid the highest quality error detection and correction. It's fair to point out that my decent results with this equipment might partially be down to a pretty RF-quiet environment, avoiding USB hubs for all the reasons a person might want to avoid USB hubs, avoiding piling on devices, and so on. Trying to make some of this equipment fail would be an interesting thing to experiment with someday.