6
\$\begingroup\$

Many guides instruct that digital signals should have a series resistor placed by the driver, whose resistance is equal to the line impedance (Z0) minus the driver impedance (Zd). Here is one such guide.

However, I can't find output impedance specs for any microcontrollers. I've looked in the datasheets for the Renesas and PIC MCUs I use, and it's not even mentioned.

The situation I'm currently facing is a Renesas MCU talking to an SD card via 21cm-long traces, at 33MHz I think. (Some of the signals are bidirectional, but that's another story.) In order to avoid ringing and EMI emissions, which seem like they could be a problem with such long traces and high frequency, I want to terminate correctly.

Possible solutions - would it be likely that the driver impedance is really low, like only 1 ohm or so? I can calculate my line impedance, and if the driver impedance is far smaller, perhaps I could just neglect it?

Or, could I possibly attempt to detect the EMI caused by the ringing by (don't laugh) holding an AM radio next to the transmission lines, and try different termination resistor values until the ringing is minimized? Is there any better way to do this at home?

\$\endgroup\$
  • \$\begingroup\$ Usually there is a series resitor placed in between, not sure if it has to do with impedance matching, more likely there are for EMI. You can take a look of similar schematics. \$\endgroup\$ – Marko Buršič Jul 20 '16 at 7:14
  • \$\begingroup\$ Here is a good example: nxp.com/documents/application_note/AN10911.pdf \$\endgroup\$ – Marko Buršič Jul 20 '16 at 7:31
7
\$\begingroup\$

It's not the frequency of the signal that's sent down a PCB trace, but the risetime that's important.

A 21cm PCB trace is about 30cm 'air equivalent', and as the speed of light is 1nS/ft (in units convenient for the engineer), that's about 2nS round trip. If the output gate risetime is longer than this, and most modern 'low speed' MCUs and SoCs will have either slow drivers, or drivers that can be selected slow/fast for just this reason, then there is no need to add extra series termination.

A 33MHz signal has a 30nS period, or 15nS high and low. A signal of this rate could get away with >2nS risetimes, as long as the receiver could cope with that and meet tsu and th times. Check the documentation of your MCU to see if risetime or drive strength (selectable low output current) is specified.

Even if the output impedance is not specified, it may be possible to infer it from drive current/voltage graphs, or output voltage specified at multiple currents in the electrical characteristics tables. Failing that, you could measure it by loading an output with various resistors and measuring the output voltage drop.

The usual assumption about driver output impedances is 'around 10 ohms'. It's difficult to make them much less, and much more and they won't meet dynamic high/lows for logic. In the absence of more information, a series termination resistor of 'several tens of ohms', so 33 or 47 ohms is not uncommon. If you you err, erring lower rather than higher is probably better. The board trace Z0 is unlikely to be lower than 50 ohms or higher than 100.

Once you have a series resistor there, the best way to tune it is to use an oscilloscope, but it will need to be a fast one, you need to be able to see <2nS features. A scope this fast will have a 50 ohm input impedance, and you'd use a 1k resistor tapped onto the line as a probe. This gives you a nice pot down into the scope, and very low capacitance tap point to measure with.

Bear in mind that a series resistor can only be used for single-point receiver at the end of the line. If the several receivers are spread out down a trace, a series resistor is the worst thing you can do, this configuration needs a low impedance driver, and a matched termination at the far end of the line.

\$\endgroup\$
  • \$\begingroup\$ SSTL (DDRx) drivers can be as high as 60 ohms (DDR1) and are selectable in DDR2 (40 and 60 as I recall) and 3 (20 and 40). The best way to find out is to grab the IBIS model for the part (if available) and compute V/I at 2V out (for a 3.3V device). \$\endgroup\$ – Peter Smith Jul 20 '16 at 8:05
  • \$\begingroup\$ @PeterSmith Absolutely. If you have the information, use it. If you don't, make sensible guesses. \$\endgroup\$ – Neil_UK Jul 20 '16 at 8:57
2
\$\begingroup\$

Conventional wisdom on transmission lines tells us that you need to match driver to line and line to termination. However, this conventional wisdom creates a problem with logic circuits because a 50 ohm parallel load at the receiver means it won't work i.e. logic levels are mutilated too much.

If the driver alone has a series resistance (equal to the transmission line impedance), the voltage sent down the line gets halved at the sending end due to driver impedance and line impedance being equal but, at the receiving end the open circuit creates a voltage that is double thus restoring your logic levels. Here's an overview of the techniques you can use with (a) being the series termination in the question: -

enter image description here

There are a few caveats when using series termination such as making sure the line isn't massively long with losses that are too high and also making sure input capacitance is carefully reduced by choice of appropriate receive devices.

Of the four methods above, circuit (b) won't usually work with CMOS driving CMOS because of the DC loading. The Thevenin termination does work because the two resistors drive the receive level to the mid-rail point and that means the signal received (although significantly attenuated) will be big enough p-p for most devices (except schmitt inputs).

This document from Fairchild (App note 610) is a useful reference on these techniques and shows real waveforms too. This document from TI (app note 903) is also useful for differential driving and covers the main issues related to the four types of driving methods as well.

10 ohms driver impedance is a standard value to assume so if your t-line is 50 ohms you need to add 40 ohms to the sending end.

In order to avoid ringing and EMI emissions, which seem like they could be a problem with such long traces and high frequency, I want to terminate correctly

  • It's not ringing - it may look like it but a badly terminated line produces signal reflections that can look like "stepped" ringing.
  • Commonly, of the EMI problems you can get will be direct emission from the t-line and this might only be slightly reduced by correct termination.
\$\endgroup\$

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.