Hi,
Just discovered this forum, and am very excited to have a new place to learn!
I currently have a setup where I am sending TTL serial data from a Raspberry Pi to an Arduino, over around 25 ft, using two SN75176s to transmit/receive over the distance. I have limited understanding of the mechanism the SN75176s use, but I understand they utilize a current loop by sending inverse signals to transmit the data. In my setup I am using two 200ohm resistors bridging the data pairs on either side, but I must admit I am a little unclear on their purpose!
My goal is to use a similar setup to allow the Raspberry Pi to send an identical signal to many Arduinos, (maybe ~30 for my long-term goal for this project). From the datasheet, this component can handle outputting 60mA, so I assume simply splitting the data lines to put many receivers in parallel will violate this restriction. There is probably a simple solution to the problem, but I'm not sure where to turn at this point. Perhaps this component isn't a good fit, or there is a concept I am missing here, so any help would be awesome!
Edit: Here's a link to the datasheet just in case that makes it easier
http://www.ti.com/lit/ds/symlink/sn75176a.pdfThanks!
- Eric
Do a Google search for RS485 and multidrop in particular.
RS485 works best when you loop in/out of each node (chain) instead of a radial (star) topology, but depending on the data rate you can get away with quite a bit.
It is not a current loop. The resistors are to terminate the ends of the line to reduce reflections, and should be at each end of the line, not at each node. You should also have biasing resistors to make sure that the line stays in an idle state when not driven - e.g. 1k from d+ to +5v and 1K from D- to 0V. Again only at one point, not at each node.
Standard RS485 transceivers are designed to drive about 32 nodes plus the termination, but you can get ones with lower receiver load to allow larger node counts