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\$
6
  • \$\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
    Commented Aug 27, 2014 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
    Commented Aug 28, 2014 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
    Commented Aug 28, 2014 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
    Commented Aug 28, 2014 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
    Commented Aug 28, 2014 at 17:49

2 Answers 2

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\$
5
  • \$\begingroup\$ ...but only at one end, or you'll have a ground loop problem. \$\endgroup\$ Commented Aug 27, 2014 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
    Commented Aug 27, 2014 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
    Commented Aug 27, 2014 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\$ Commented Aug 27, 2014 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
    Commented Aug 27, 2014 at 18:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.