0
\$\begingroup\$

I have created an RS485 communication network as shown below.

{PC}->[FT232->RS485](120 ohm)<----twisted pair(2 wires)------>(120 ohm)[RS485 -> MSP430]

Here PC acts as Master and sends the data towards MSP430.Data is a single 8 bit character. I am using CBUS pins to put the RS485 chips in Receive mode and transmit mode by using the CBUS bitbang mode. After which I just send the character in serial format.

PC puts the RS485 chip in Transmit mode and sends the data.

On the MSP430 side, MSP430 puts the chip in Receive mode and waits for the character to receive.

On both sides I am using 120R termination resistor.

Now if I am using SP485 chip from EXAR (similar to MAX485) on both sides system works beautifully. No issues.

{PC}->[FT232->SP485](120 ohm)<----twisted pair(2 wires)------>(120 ohm)[SP485 -> MSP430]

Transmission of the character happens fine.

On the other hand if I am using SP485 on the PC side and MAX485 on the MSP430 side, the system just fails to receive the character.

{PC}->[FT232->SP485](120 ohm)<----twisted pair(2 wires)------>(120 ohm)[MAX485 -> MSP430]

Please note that I haven't changed the circuit a bit , I have just dropped in MAX485 instead of SP485. The length of the transmission line is about 1.5 meters and I'm using termination resistors of 120 ohm on both sides. I don't have any oscilloscope so I have connected an LED to the RO pin of MAX485 on the MSP430 side to check for reception of character. When I send the character from the PC side the LED on the RO pin lights up indicating some data is coming but microcontroller refuses to acknowledge it. I have also changed the MAX485 chip twice to check wheter it is the ic's problem.

Does any body have a solution for this ?

\$\endgroup\$
  • \$\begingroup\$ What's the characteristic impedance of your interconnect cable? What data rate are you using? How much time after activating the transmit do you force the first data bit? What does "just fails to receive the character" mean? \$\endgroup\$ – Andy aka Aug 27 '14 at 9:19
  • \$\begingroup\$ Can you borrow an oscilloscope? The RO LED test does not indicate dynamic signal switching or show if there are loading or slew rate effects. Does your RO LED test pass when use Exar SP485 on both sides? \$\endgroup\$ – MarkU Aug 28 '14 at 3:11
  • \$\begingroup\$ What data rate are you using -- Exar SP485 claims 5MBps data rate, Maxim MAX485 only claims 2.5MBps data rate. Maxim MAX485 or MAX485E? (The MAX485E has higher ESD protection, but is slew-rate limited). Did you try Linear Technology LTC485 (Maxim MAX485 directly replacement equivalent)? \$\endgroup\$ – MarkU Aug 28 '14 at 3:12
  • \$\begingroup\$ @ Andy aka -I am using a general purpose 1.5 meter wire stranded Cable. "just fails to receive the character" means that no recieve interrupt is detected on the MSP40G2553 side. \$\endgroup\$ – rohkumarj Aug 28 '14 at 17:41
  • \$\begingroup\$ No i dont know anybody who owns a scope right now.I am running the FT232RL UART @9600bps and transmitting a single character.When using SP485 no problems are observed i am able to recieve the data perfectly.Please note that i am on a tight budget and the parts u mentioned are not available in the local market. \$\endgroup\$ – rohkumarj Aug 28 '14 at 17:49
1
\$\begingroup\$

Do you have pull-up/pull-down bias resistors on the lines? These bias resistors set the state of the line when it is idle, i.e. no devices are driving it. The behavior of the driver chips is undefined by the standard if the lines are allowed to both float to zero volts. Some drivers implement a feature called 'fail-safe' such as the MAX485, with this feature bias resistors are not required.

See Failsafe Bias Resistors section in this application note.

\$\endgroup\$
0
\$\begingroup\$

Have a look at your grounds. For RS485 to work correctly the grounds of the transceiver need to be connected. More information about RS485 grounds: http://www.chipkin.com/rs485-cables-why-you-need-3-wires-for-2-two-wire-rs485/

\$\endgroup\$
  • \$\begingroup\$ ...but only at one end, or you'll have a ground loop problem. \$\endgroup\$ – TDHofstetter Aug 27 '14 at 13:50
  • \$\begingroup\$ you get a ground loop if you have more than one ground connection. but you need to have that one ground connection, without it weird things are going to start happening. \$\endgroup\$ – user25093 Aug 27 '14 at 13:54
  • \$\begingroup\$ for example, if two devices have their grounds connected at the power supply and their RS485 grounds aren't isolated, then a separate ground connection isn't required. but if 2 devices are connected with only the RS485 A and B signals (as it seems to be described in the question), then a ground connection is required. \$\endgroup\$ – user25093 Aug 27 '14 at 14:01
  • \$\begingroup\$ I should have clarified - the cable shield (if used) should only be connected at one end. In certain applications, if there's a risk of common-mode voltage out of range, a third (common, or ground) wire is necessary. \$\endgroup\$ – TDHofstetter Aug 27 '14 at 14:22
  • 2
    \$\begingroup\$ I won't downvote as I'm sure you're technically correct, but a heck of a lot of the world's CCTV and other equipment uses "floating" RS485, either by design or by lazy installation, usually without issue. \$\endgroup\$ – John U Aug 27 '14 at 18:16

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.