RS485 A/B line reversal in extant devices

Started by Steve at fivetrees January 4, 2005
Every time I design a product with an RS485 interface, I wind up going over
the same old ground in disbelief - and coming up with the same answer. The
A/B line-naming convention is reversed when comparing extant devices (e.g.
the venerable SN75176B, or the transceiver product line from Maxim) with the
RS485 (ok, EIA485) specification.

Perhaps this confusion stems from the definitions and interpretation of MARK
and SPACE. But even avoiding those entirely, I'm still left with the fact
that the idle state of an RS485 line involves A being low and B being high.
When using e.g. a Maxim part with failsafe inputs (which force the idle
state when disconnected) I always have to cross the A/B lines to bring them
out of the product. (With the 75176 I can either do that, or invert the
Tx/Rd UART signals. The former is easier ;).)

Yet a doubt remains - surely there should be more noise about this issue
than I've seen. Anybody feel that this a serious trap for the newbie who
doesn't have the actual RS485 spec to hand?

Steve
http://www.fivetrees.com


"Steve at fivetrees" <steve@NOSPAMTAfivetrees.com> wrote in message
news:MJqdnU36Ucmt2UbcRVn-qQ@nildram.net...
> Every time I design a product with an RS485 interface, I wind up going
over
> the same old ground in disbelief - and coming up with the same answer. The > A/B line-naming convention is reversed when comparing extant devices (e.g. > the venerable SN75176B, or the transceiver product line from Maxim) with
the
> RS485 (ok, EIA485) specification.
This is indeed weird. When I first designed some RS485 devices, they were only meant to talk to eachother, so I just followed the datasheets of the MAX485 and equivalents. But later, developing NMEA devices, I really thought that the NMEA standard defined RS-422, but with reversed A and B designators, since it has A negative from B in idle. But it turns out to be the correct way. The advantage of this is that you can sometimes connect RS-232 to RS-422 with success, which wouldn't be possible with A positive from B in idle. To add to the confusion, the EIA485 says that the A line can also be designated by a '-' and the B by a '+', while all NMEA devices, A is equivalent with '+' and B with '-'.....
> Perhaps this confusion stems from the definitions and interpretation of
MARK
> and SPACE. But even avoiding those entirely, I'm still left with the fact > that the idle state of an RS485 line involves A being low and B being
high.
> When using e.g. a Maxim part with failsafe inputs (which force the idle > state when disconnected) I always have to cross the A/B lines to bring
them
> out of the product. (With the 75176 I can either do that, or invert the > Tx/Rd UART signals. The former is easier ;).)
It seems to me that the first manufacturer got it wrong and all others just followed blindly... Meindert
"Meindert Sprang" <mhsprang@NOcustomSPAMware.nl> wrote in message
news:10tn8pmms1gai9e@corp.supernews.com...
> "Steve at fivetrees" <steve@NOSPAMTAfivetrees.com> wrote in message > news:MJqdnU36Ucmt2UbcRVn-qQ@nildram.net... > > Every time I design a product with an RS485 interface, I wind up going > over > > the same old ground in disbelief - and coming up with the same answer.
The
> > A/B line-naming convention is reversed when comparing extant devices
(e.g.
> > the venerable SN75176B, or the transceiver product line from Maxim) with > the > > RS485 (ok, EIA485) specification. > > This is indeed weird. When I first designed some RS485 devices, they were > only meant to talk to eachother, so I just followed the datasheets of the > MAX485 and equivalents.
Which is fine - it'll work, but won't comply with the spec. Or indeed talk to anything that *does* comply with the spec ;).
> But later, developing NMEA devices, I really thought that the NMEA
standard
> defined RS-422, but with reversed A and B designators, since it has A > negative from B in idle. But it turns out to be the correct way. The > advantage of this is that you can sometimes connect RS-232 to RS-422 with > success, which wouldn't be possible with A positive from B in idle.
Possible in one direction only - since one of the differential lines has to act as ground. FWIW, RS423 is the official halfway-house between RS232 and RS422/485 - basically RS232 with +/-5V swing rather than +/-12V.
> To add > to the confusion, the EIA485 says that the A line can also be designated
by
> a '-' and the B by a '+', while all NMEA devices, A is equivalent with
'+'
> and B with '-'.....
Indeed. I've seen this confusion in a lot of different places and in a lot of documents from varied sources.
> > Perhaps this confusion stems from the definitions and interpretation of > MARK > > and SPACE. But even avoiding those entirely, I'm still left with the
fact
> > that the idle state of an RS485 line involves A being low and B being > high. > > When using e.g. a Maxim part with failsafe inputs (which force the idle > > state when disconnected) I always have to cross the A/B lines to bring > them > > out of the product. (With the 75176 I can either do that, or invert the > > Tx/Rd UART signals. The former is easier ;).) > > It seems to me that the first manufacturer got it wrong and all others
just
> followed blindly...
Yes, that's my view. The first time I came across this was when the original 75176A was first introduced (mid 80s); the company I was working for had already had a lot of experience with RS422 devices and we spotted the error fairly quickly. Seems that all the later devices have essentially copied the error from there. Steve http://www.fivetrees.com