This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SN65HVD73: Odd receive behavior when unterminated

Part Number: SN65HVD73

I'm working on an embedded Linux system that uses an off-the-shelf computer-on-module (COM) with a custom "baseboard" (I/O breakout and power regulation).

Our baseboard has two differential serial (RS-422) ports using the SN65HVD73 transceiver. Each transceiver is connected to a native 3.3V UART on the embedded Linux COM. The TX+/- and RX+/- pairs are unterminated. Termination was not included in the design since the driven cables are quite short (between 1ft and 6ft) so we thought it was unnecessary.

The RS-422 ports on the baseboard are wired out to panel mount connectors with about 4" of unshielded wire.

We are seeing odd behavior on one SN65HVD73, on RS-422 port A, on (only) one of 20 baseboards that were made in a proto run. (although only ~half of the 20 boards have been tested so far)

When there is no device plugged into the panel mount connector for port A, if we open the serial port in Linux and transmit anything - anything at all - then we get an endless stream of garbage characters back. This results in a RX FIFO overrun complaint from the Linux kernel.

If I disconnect the 4" cable between the baseboard and the associated panel mount port A connector, the problem goes away.

Any thoughts on why this might be happening to this lone device?

If we add termination, should the problem go away? There's a spot on the board where I can tack down a ~100 ohm resistor easily enough.

We do not observe the problem when there is a RS-422 device plugged into the panel mount connector.

  • Hi Jim,

    Do you have an oscilloscope you could use to take a look at the RX+/- input and corresponding "R" output of the problem HVD73 that is going to your UART? I'm curious what the garbage data might correspond to in terms of voltage on the line. If you don't have a scope, does the data you get back correspond to any obvious problems (line stuck low, etc.)? Or, is it possible to at least check the DC bias levels of the + and - lines using a multimeter?

    Is anything at all installed on the RX+/- lines on your board? Pull-up/pull-down resistors, etc.?

    I'm wondering if maybe you have either some noise coupling or some offset voltage forming between the + and - halves of one of the RS-422 receivers. It may be a device whose logic thresholds are at one extreme of their spec range (due to process variation), making it easier for things like this to cause toggling on the R output. If that were the case, then introducing termination could very well help since it would bias the + and - lines towards each other more strongly. You are right, though, that in general termination is not strictly required on these kinds of short-reach applications.

    Another thing you could try (although more difficult than tacking on a resistor) would be to swap the transceivers used for each port and see if the problem moves or goes away. That might help give some clue as to whether it is device-related or something else in the application.

    Regards,
    Max