I'm currently trying to make a USB device with the ATMega16U2.

On page 187 of the datasheet, there are unspecified resistors between the USB port and the pins of the microcontroller

The Arduino Uno (R3) similarly uses these resistors in its design, with a value of 22 Ohms.

What are these for, and why are they needed with such low values?

Bonus question: The wiring between UDP, UDM, D+ and D- in the figure on page 187 is a mistake, right? On the next page, they are reversed.

  • \$\begingroup\$ Reversed? I see that they are same in the USB connections. \$\endgroup\$
    – diverger
    Nov 25, 2014 at 3:15
  • \$\begingroup\$ UDP connected to D- on that page, but D+ on the following page, and so on for UDM. Looking at other datasheets, this appears to be wrong. \$\endgroup\$
    – Andrew Mao
    Nov 25, 2014 at 3:29
  • \$\begingroup\$ Oh, you mean figure 20-4 and figure 20-5, right? Yes, figure 20-4 is wrong. But they in the same page :). \$\endgroup\$
    – diverger
    Nov 25, 2014 at 3:35
  • \$\begingroup\$ Yeah, both 20-3 (previous page) and 20-4 seem to be wrong. \$\endgroup\$
    – Andrew Mao
    Nov 25, 2014 at 3:36
  • \$\begingroup\$ You are right, so many typos. \$\endgroup\$
    – diverger
    Nov 25, 2014 at 3:38

1 Answer 1


They are "termination" resistors. for impedance matching purpose.

Per USB 2.0 standard, when using a full speed (12Mbps) buffer in a USB 2.0 compliant system, it is necessary to place a series resistor on the D+ and D− pins external to the transceiver. This placement is a result of the need to properly match the impedance of the specified transmission line having a differential characteristic impedance (\$Z_{O}\$) of 90Ω and a single ended impedance of 45Ω. To match this load, it requires that the full speed transceiver output impedance must be in the range 28Ω to 44Ω. So if the transceiver has a output impedance less than this (many output drivers has a low output impedance), you may need a external termination resistor.


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.