Help with RS485 network design

Hello there.

I'm working on a home automation project that will consist of nodes that communicate with each other in a Master / Slave design via a RS-485 network.

The PCBs are almost final, but I'm having problems on what is really necessary for a good RS-485 network.

Basically I've got 3 main doubts:

  • I've read that to avoid data loss, pull-up/pull-down resistors should be used. Is it a good choice? Should I put them only at one point of the network?

  • Regarding network protection, it seems that it's a good idea to use TVS diodes. Is it necessary? What are the risks of not using them? And should I put them on every node or just at one point, like the pull-up/down resistors?

  • I'm looking for the best cost efective chip option. I want a 8 PDIP package, and I'm thinking of using the MAX487E chip, because it has ESD protection (removing the need for the TVS diode?), slew rate limit (less data loss?), supports 128 nodes in the network and I think I can get a good price on them (waiting for the quote). Is this a good choice? Do you have any other suggestion?

Thanks in advance!

LegendBR:

  • I've read that to avoid data loss, pull-up/pull-down resistors should be used. Is it a good choice? Should I put them only at one point of the network?

120R termination at both/all physical ends.
1K pull-up/down only at one place in the network -- typically one of the ends.

I believe pull-up/down are only really necessary if you need to have a set logic level appear when no stations are transmitting. If you can guaranty that some station is always transmitting, for example, it's not needed. And if it's okay for the bus to be "don't care" then it's not required, I don't believe.

Slew-rate controlled parts are only really going to be critical at high bit rates and with long buses. How long is your 485 network? How fast do you need to operate it? I would say that if your network is ~100m and you stay under 10KBit/s, you should be able to use any old part with no trouble.

Your network should contain a ground conductor to level out common mode voltage differences between stations. I am unsure what the spec is for common-mode interference rejection is, but common-mode voltages outside GND...V+ could well be problematic.

This App Note from Maxim has a lot of good info on RS485 and terminations.

If you go to www.maxim-ic.com and search for RS485, and then select the App Notes tab, you can find others as well.
I think this is one of the better ones tho.

Thank you both for your replies. To make it better to understand what I’m aiming, I’ve attached an image of the eagle file for my PCB.

The PCB was designed to work on a daisy chain topology (nodes are connected with cables, a pair for 12v/GND and a pair for A/B). In that way, all the GNDs are connected, and on the first/last node I just need to add a 120 ohms resistor between A/B to terminate communication lines.

The communication protocol is master/slave, and for every cycle the master queries all the slaves regarding their status. The messages between the nodes are not long (15 bytes, if I remember correctly), but I kind of need the messages to be fail safe, because if I start having communication errors, the time to query all the slaves about their status will increase. That is why I’m willing to use pull-up/down resistors.

What I understood from the MAX487E datasheet is that Slew-Rate-Limited drivers have a slower rate transmission (maximum 250 kbps) in exchange for being less sensitive for improperly terminated cables (terminating resistors not being exactly the impedance of the twisted cables).

I’ve also read that using TVS diodes on the A/B cables is a good way to avoid damage to the circuit. Here is an example of places I’ve read about it. But in the MAX487E datasheet it says it is “±15kV ESD-Protected”. So should a TVS diode still be necessary?

CrossRoads, that App Note is great, I read it before coming to the daisy chain design, but unfortunately it doesn’t say anything about protection. Maybe because this protection is not needed?

Protection would depend on the environment.
Will your cables be running near anything causing high levels of interference?

Industrial and instrumentation applications (I&I):

In I&I applications, lightning strikes, power source fluctuations,
inductive switching, and electrostatic discharge can cause
damage to RS-485 transceivers by generating large transient
voltages.

How likely are you to see these in your home automation application? I would say not likely and that E (enhanced) parts would be sufficient.
Elektor Magazine did a great series of articles over the course of a year, ending about a year ago, discussing all kinds of things that would come up in a home network. I don't recall them needing TVS diodes.

Great, that's what I thought. The "E" MAX would be more than enough.

One more question: on the operating circuit from MAX487E datasheet (page 8 ), the VCC is connected to the GND through a capacitor. I know the question sounds stupid, since the datasheet says to do so, but is it really the way to go? I think it is kind of strange, not connecting 5v to that pin (as they are rated for 5v), am I missing something?

You are misreading that. The pin connects to +5V, and there is a capacitor in parallel from the pin to Gnd - this is known as a power supply decoupling cap, it acts as a little local power source to provide power during fast transients inside the chip.

So that is what "Bypass the VCC pin with 0.1?F" means? Connect both +5v and the capactor? Sorry, I'm starting with eletronics (although I know a little of the basics).