Even for RS-232, it's good to plan for the possibility that your Tx and Rx are mixed up.
I once designed a RS-485 system with automatic polarity detection and swapping, because the installation guys were never consistent. Just monitor the idle line and see if it is idling high or low, and invert as appropriate. It made connecting the system /much/ easier.
Yes, but i think, the reason is something different.
I am not so good in english, so i try to explain: If both, the master and the slave have a connection to the GND-level, there may be a difference in the voltage level. This will probably cause the problems you mentioned. To prevent this, you can have the devices on a floating level at least at the rs485 inputs.
In such a case, when there is a level difference, an additional gnd-line would cause a current on the ground wire which can also lead to problems.
Even if they're floating, you still need a signal ground conneciton.
I've seen optically isolated RS485 interfaces on industrial control systems that were floating fail without a signal ground. They would fail intermittently as the signal ground on one end floated in and out of the allowed 7V common-mode range for the other end. Maybe there was something wrong with the isolation, but without a signal ground it didn't work, and with a signal ground they did.
If both ends connect signal ground to earth ground and the two earths differ by more than 7V, then it's just not going to work -- period. You bought equipment designed by idiots and you're paying the price for that.
--
Grant Edwards grant.b.edwards Yow! I want to kill
at everyone here with a cute
gmail.com colorful Hydrogen Bomb!!
Hmm. When I replied to your message, the link remained intact. However, if I copy and paste the link, I get:
(Broken into two lines on my screen).
I'm using MicroPlanet Gravity 3.0. I'll check to see if there is a setting that can be changed.
Perhaps the link will be restored to one line when the message is sent.
The saving graces of both RS-232 and RS-485 are that getting the lines mixed up doesn't let the smoke out of the usual driver chips an you have a 50% probability of getting it right the first time! ;-)
Nope. But, as you say, there may be a configuration setting that will retain long links. Or, it's a great excuse to diddle with the source...
So true. It's a PITA for the field service crew, though. If you aren't seeing the expected $GPGLL is it because A/B are swapped? Or the sender is at 38400? You forgot to enable that port altogether? Or you just grabbed the wrong pair? Life is too short! ;-)
Hey, I can see some potential sales for a small (DVM-size) box to which you connect the two wires. A pushbutton would cycle through the possibilities of A/B and baud rate. An LCD would show decoded text. when you recogize the data, the box would tell you which is A and which is B and the baud rate. For known data formats ( GPS, etc.) the box could auto-search. Shouldn't take anything more than a few receiver chips, a small MPU and a display. If you put a USB interface on it, you could program it to recognize custom protocols. I'd pay $25 for one of those.
Actually, I had one of those designed and ready to go, with autobaud, auto-polarity, and 232/422 recognition as well. But we're tuned for low volume and high cost, so the Powers That Be pulled the plug.
Besides, as Grant pointed out, even after you've identified what the per-spec A and B ends of the cable are, odds are 50-50 that what it is connecting to got it backwards... ;-)
Ah well. It would seem a logical product for B&B, and I'm sure their engineers could design it. Perhaps the problem you noted would make it less useful if you couldn't force both ends of the circuit to speak on command.
Setting up an RS-485 network is not that hard as long as each device has some kind of RxData LED and at least one device can be configured with "fail safe termination" i.e. pull up/down resistors.
Power up a device which is configured for "fail safe termination".
Connect the next station to the network. If the RxData LED burns continuously, swap A and B. The RxData LED should be constantly off if no polling is used.
Connect the next station to the network and observe the RxData LED and repeat the procedure above.
The 2 wire RS-485 system is quite easy to set up, but the 4 wire RS-422 is a bit more problematic, with typically 4 or even 5 badly marked conductors, which wire is A/B/A'/B'/C (signal ground) ?
The (common mode) impedance of a RS485 transceiver is rather high, especially the fractional load types. This high impedance isn't sufficient to keep the isolated circuit in the operating region with lots of (CM) noise.
Example: 100pF and 10kOhms yields 160kHz corner frequency...
Isolation _plus_ a reference conductor is the correct solution in this case.
Oliver
--
Oliver Betz, Munich
despammed.com is broken, use Reply-To:
Yes. It's a not uncommon misconception that "RS485 is two-wire differential" and therefore doesn't need a ground. Just look back in this thread a bit. :)
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.