2
\$\begingroup\$

I'm planning on setting up a sensor network around my house using a Cat5 Cable as both the power source and the signal line for the sensors, I'm planning on using RS-485 Transceivers and and Arduino's for the sensors.

From reading through many application notes and whatnot from TI and Maxim they all talk about having a failsafe so an Idle Bus goes to a known state.

If I use a master/slave setup why is this needed? If the master assumes that no slave will transmit unless requested to, and the slaves are constantly listening for their own address. It seems like this could be expanded for quite a bit of redundancy, without worrying about the state of the line when it's turned on.

Is there something I'm missing?

\$\endgroup\$
3
\$\begingroup\$

Normally the master device controls the bus, and has its output driver enabled so it can drive the bus to an "idle" state when there is no traffic. When the master sends a request to a slave it must immediately release the bus (by turning off its output driver) so the slave can reply. It will take the slave a finite time before it can enable its output driver, which may be just microseconds or milliseconds. During this time the bus could float to levels which look like a logic 0, ie a start bit, which may confuse the master which is looking for a start bit. By having failsafe biasing of the bus you eliminate this possibility since the bus is always pulled to voltages which represent an idle condition.

Note: a lot of newer RS485 transceivers have the failsafe biasing built in.

\$\endgroup\$
  • \$\begingroup\$ Ahhh, What if I had really weak pullup/down resistors and always left the bus in a known state? \$\endgroup\$ – HilarieAK Jan 27 '16 at 16:51
  • 2
    \$\begingroup\$ @HilarieAK it depends if you are using termination resistors across the bus. Without termination resistors then weak pull-ups will make the bus failsafe (I'm not sure how weak is weak). But as soon as you terminate the bus with typically 120 Ohm resistors at both ends the failsafe resistors need to be much lower values to pull the bus to a failsafe condition. In this case they are usually calculated to be around 720 Ohms. This apps note explains it: st.com/web/en/resource/technical/document/application_note/… \$\endgroup\$ – Steve G Jan 27 '16 at 17:07
  • \$\begingroup\$ It all halfway makes sense. I think what I'll end up doing is using trim pots everywhere as the Spec requires them to be short tolerant so I really shouldn't be able to mess things up. \$\endgroup\$ – HilarieAK Jan 27 '16 at 18:19

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.