3
\$\begingroup\$

The USB 2.0 specification seems to discourage the use of common-mode chokes on the D+/D- lines.

For example, in the USB 2.0 DC Resistance Engineering Change Notification (file USB 2.0 DCR ECN.pdf in the zip file I just linked) it notes:

The excessive [DC resistance] on the D+ and D- data path may be caused by multiples crossbar switches and/or passive components such as common-mode chokes. A false disconnect event may occur [when using CMCs].

My question is whether using CMCs on the DP/DM lines in USB 2.0 high speed is actually bad, and if so, what are better solutions for filtering out common-mode noise on the data lines in high speed?

Also, if you do use a CMC on each data line, do they need to share a common core?

\$\endgroup\$
6
  • 1
    \$\begingroup\$ USB2 isn't fully a differential mode protocol. So if common-mode noise gets blocked by the choke, it can be interpreted as one of common-HI/LO symbols. But I think there are CMC that are designed for USB. I suppose these could maybe saturate during a common-HI/LO symbol or similar, so they don't interfere with the protocol \$\endgroup\$
    – tobalt
    Commented Jan 6, 2023 at 15:09
  • \$\begingroup\$ @tobalt So I'm inferring from your response that you think it's best not to use a CMC on the DP/DM lines, unless it is one specifically designed for USB? Is it therefore better just to not worry about common mode noise? \$\endgroup\$
    – jemalloc
    Commented Jan 6, 2023 at 15:16
  • \$\begingroup\$ Common-mode noise can be worrisome. but given the USB cable has a continous shield, on both ends, I think there is hardly any way for large CM noise to reach the data lines, if the shield dumps it properly into a low impedance node such as the chassis or PE. \$\endgroup\$
    – tobalt
    Commented Jan 6, 2023 at 15:28
  • \$\begingroup\$ @jemalloc I think you were misunderstanding. Putting a CM choke is not always a bad thing, it can actually improve your communications. There are a lot more and better ways to ruin a good design than just putting a CM choke. \$\endgroup\$
    – Justme
    Commented Jan 6, 2023 at 15:41
  • \$\begingroup\$ I'm assuming PE = physical earth ground? I won't ask about "dumping it properly into a low impedance node such as the chassis or PE" here because there are already a ton of posts on this stackexchange about what to connect a shield ground to, how to make that connection and what it's relationship to signal ground should be. \$\endgroup\$
    – jemalloc
    Commented Jan 6, 2023 at 16:05

1 Answer 1

2
\$\begingroup\$

I'm having a really hard time finding references on this for some reason, but take for example page 11: High Speed USB Platform Design Guidelines - Intel

(I know I've seen documents illustrating the (dramatic!) effect of inappropriately chosen CMCs, but I cannot find it. If someone knows what I'm talking about, please don't hesitate to comment a link!)

USB is NOT a balanced, differential signaling standard: it very explicitly makes use of unbalanced symbols ('J' and 'K' in the standard's terminology) to indicate line status. The impedance also varies with mode:

  • In Full Speed mode, transmission uses plain old LVCMOS logic drivers, and the receiver is open circuit (well, a small capacitance). While a differential receiver offers a little signal quality improvement (I'm not actually sure if they really do use differential here -- I wouldn't be surprised if not, but I've certainly not seen the proprietary "secret sauce" inside such a chip), mainly it's for reduced emissions -- worthwhile given the large signal swing (3.3V) and often poor grounding of well-used connectors.
  • In High Speed mode, signaling is common-ground, with a shunt termination resistor switched in at each end (from each line to ground -- not between lines), a burst of alternating JK symbols is used to start a transaction (or calibrate the receiver or something -- I've not read the standard in a while, I've forgotten the exact function I'm afraid).

It would be nice to apply common mode filtering, but the variable impedance makes it difficult to employ any filtering at all, and we can only employ as much as the maximum mode we wish to support:

  • In Full Speed, the CM impedance can be such that the time constant is less than a bit time, when combined with the maximum line length (namely, its capacitance). In other words, giving a cutoff in the range of 30MHz. But notice it depends entirely on line length, because the receiver offers no loading (it's high impedance) by itself. We could emulate line capacitance by adding RC shunt elements at each end -- but only at expense to signal level. In short, this is at best a hack, and precludes High Speed mode.
  • In High Speed, impedance at least is well defined, but the JK symbols are accordingly faster. Only very little impedance can be used -- comparable to the CM impedance itself. Typically a 90Ω @ 100MHz part is used (if any at all). Note line length doesn't factor into the calculation because it's doubly terminated. Such a CMC nets some improvement (emissions and susceptibility) at high frequencies (>100s MHz), primarily at expense to J/K signal quality.

Note that if ZCM = 45Ω and the choke is 90Ω @ 100MHz, then (at 100MHz) we have an impedance divider giving merely 10dB attenuation. (Generally these CMCs have impedance rising with frequency around 100MHz, so the attenuation will be higher above there.)

Related: Shielding

Because USB is not strictly balanced, it cannot be ran over unshielded pair for example, and indeed shielding is a critical part of its basic function. The receiver CM range is likewise only within the supply rails, not tolerant of any external interference coupled in. (High Speed is probably even worse than that, given the resistors pulling the line near 0V -- but again, alas, I don't know what they actually use for receivers.)

This shielding mandate extends between both transceivers, from DP/DM with respect to chip GND, over any CMCs between them, and up into and through each connector. I emphasize this to highlight another common error: impedance to the shield/ground. Many application notes suggest e.g. a ferrite bead between shield ground and circuit ground, without also providing a proper RF ground-return path between circuit ground (which is driving real signal energy into the common mode!) and shield ground (the ground reference for signals in the cable). A CMC on the data pair functions similarly to impedance between circuit and shield grounds, so it is no accident that both good shielding and little CM choking are required.

What to do?

Ferrite bead on the cable -- around the shield, and thus by extension everything else inside. Simple as that!

A cable ferrite also provides CM impedance, especially resistance that dampens resonances. This doesn't improve emissions/susceptibility much by itself (ZCM of a cable through space is in the ballpark of 150Ω, while single ferrite beads are usually 30-300Ω), but does knock down the peaks (resonances) which can otherwise have an outsized effect in narrow frequency bands.

Tie the shield to circuit ground, or at worst chassis ground, with an AC path to circuit ground nearby.

Quite often, no chassis is present, and the shield can (should!) be tied into the PCB ground plane. At worst, galvanic separation can be implemented by using multiple capacitors per ground pin, spaced out around the connector housing -- this minimizes inductance between shield and GND. But I'm not aware of any USB device anywhere that doesn't connect PGND with SHIELD, so this will likely be a special case practice.

Power Lines?

They don't matter -- typically GND should still be tied with GND, and VBUS can have impedance (a series ferrite bead* or inductor) or be bypassed to GND as well. You see it both ways (or both at once i.e. a tee or pi filter!) and I don't think anyone cares what difference it makes.

*But mind that most ferrite beads saturate at low currents, even below the 500mA of un-negotiated USB; always check the bias characteristics!

What is the effect, anyway?

  • Low impedance bypass at both ends of VBUS, allows standing waves on the wire.
  • A ferrite bead offers comparable or high impedance (including resistance) which tends to dampen this mode.

There's nothing obviously coupling into this mode (DP/DM are generally screened separately from VBUS/GND), so it's really only of consequence to supply ripple. And the cutoff frequency of this equivalent LC filter can be forced low enough that you might not care.

Personally, I would prefer (proffer?) a modestly-low impedance: use a lossy bulk capacitor, like 1-10uF ceramic plus 1Ω external ESR, or a single tantalum/electrolytic of the same values.

(This also anticipates, or answers in part, your other question: USB 2.0 VBUS Filter )


Also, if you do use a CMC on each data line, do they need to share a common core?

Just to clarify -- there's no such thing as a "CMC" on a single line; that would be normal mode, i.e., a plain old (two terminal) ferrite bead or what have you. Uncoupled chokes would simply attenuate the differential signal itself, as much as common mode.

Which, considering the small values that could be used here (10s of ohms) -- you can probably get away with that, but it will reduce your maximum cable length and noise margins, i.e., the eye diagram will be strictly more closed.

Cheers!

\$\endgroup\$
3
  • \$\begingroup\$ Cable bead solves many problems. But it will be made useless if you draw supply current through the cable and return it elsewhere (e.g. a ground loop though various chassis).. So i don't see the need to suggest connecting USBGND to shield ?! (it ends up so anyway often). JK return current can and should be handled by USBGND. That it also uses the shield is an unwanted side effect IMO. \$\endgroup\$
    – tobalt
    Commented Jan 7, 2023 at 5:04
  • \$\begingroup\$ @tobalt "Unwanted" -- by whom? I would say to them, it's unavoidable; embrace it, work around it as needed. (Like I said, shield can be bypassed at AC, solving the [DC/mains] ground loop concern.) As for GND, it's just another wire inside the cable, a transmission line like the others; only the shield/screen is the reference for them all. Using GND alone for return current puts its own TL impedance in series to the shield; a messy proposition. At least, unless cables are made different than I think -- I admit I haven't dissected one in a while. \$\endgroup\$ Commented Jan 7, 2023 at 7:51
  • \$\begingroup\$ On the upside, cable-sized ferrite beads saturate much less quickly than chips do: some amperes usually, at which point I'd be concerned about cable heating. (For a single turn through a bead of given aspect ratio and material, saturation current scales proportional to diameter.) More for low-mu or accidentally gapped (snap-on style, say?) types, of course. \$\endgroup\$ Commented Jan 7, 2023 at 7:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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