3 ms·
One one of our boards, we had intermittent USB failures (sometimes after 5 minutes, sometimes after 13 days of continuous operation) that were ultimately caused
by _pmf_ 9y ago
One one of our boards, we had intermittent USB failures (sometimes after 5 minutes, sometimes after 13 days of continuous operation) that were ultimately caused by slightly misaligned/misspaced USB D+/D- traces. We ended up having to force usage of USB full speed mode for USB high speed devices via a debug register (not unlike the article's case). Makes me feel slightly better that even people much more competent than I end up having to use such workarounds.
- exikyut 9y agoCould you describe the misalignment? That's interesting - Arduinos etc have made USB 2 pretty ubiquitous, so this could be useful knowledge. (I'm tired and needed to re-google it, so for anyone else: Full = 1.1/12Mbps, High = 2.0/480Mbps.)
- simcop2387 9y agoIf I were to guess, given the tolerances in timing for USB 2.0, one line was slightly longer than the other on the board. That'd mean that the transition on D- would happen at a different time than the one on D+ causing corrupted data.
- exikyut 9y agoAh, yikes. Duly noted.