connecting lots of T3's: rs485? udp? fairy dust?

Status
Not open for further replies.

virtualdave

Well-known member
Hi all,
Need some advice. I have a project I've been working on that will eventually require at least 32 T3's to be connected to a single CPU for some collective processing. Although each T3 works independently, together they work as part of one "show". There's 2 way communication between each T3 and the CPU (but not between each T3). Right now about 15-20 bytes back and forth to each, ~50 times/sec. Distance between nodes and the CPU could be several meters. I have a couple mocked up, but am looking for some advice on how best to connect each. Here are the options I'm looking at:

1. UDP packets via WIZ820io: so far this is working pretty well. Like the idea of using an established network protocol that can handle packet collisions, buffering, etc. (with a relatively smart switch at the center as well). My biggest issue at the moment is form factor. The RJ45 socket is really too big for my application, so I've been looking into other options. I've even explored the possibility of removing the rj45 connector from the WIZ820io board, but I think there is quite a bit of magic that might happen in that mag-safe connector.

2. RS485. I just started reading up on RS485 and picked up a couple IC's to play with. I don't have much experience with this protocol and am not sure how well it could handle 32 nodes at such a high sampling rate. I'd basically have to send a packet to one node, wait for a reply packet, then move on to the next node. I love the idea that my connector is 4 wires (power, gnd, com*2) and can run over very long distances, but am afraid I don't understand enough to figure out if I could send and receive a packet from each node within 50ms. I've been able to do 921600 baud on serial1, so might be possible!?! Any RS485 experts out there?

Or perhaps something else? Anyone else tried networking a bunch of micros together? Any options for replacing an RJ45 connector? ;)

Thanks in advance for any advice!

Cheers,
David
 
I'd go with RS485. 20 bytes times 32 messages times 20 Hz is 12800 bytes/sec. That should easily fit at 230400 baud. It's pretty simple, when one device transmits, all the others hear it. If you have only 1 device sending commands to all the others, it's very easy.

Things get a little trickier if every device can transmit. Then you need some sort of a protocol where each device knows when its turn is to drive the line. The most common is a master device that tells each slave device when it's able to talk. More complex ways are also possible. But it's really, really simple if you only have one device transmitting and all the others only listen.

There are some slew rate limited chips, like the MAX487, which at limited to 250000 baud. The nice thing about those chips is they are much less sensitive to signal problems due to long wire without proper termination resistors.

Also, some chips have 1/2 or 1/4 load. Normally standard load devices allow 32 to be connected to one line, which puts you right at the limit. With 1/2 load devices, you can have 64 connected.
 
Is there anything you don't know, Paul? :)
Thanks for the input!! I've been leaning towards RS485 so perhaps now is the time.

For future planning, let's say I did want to stick with 921600 baud just in case my sample rates increased and/or transmitted data got larger. Is there an issue using chips with higher slew rates? For example this is one of the ones I have from TI:
http://www.mouser.com/ds/2/405/slls505m-267203.pdf
I have a few of the the SN65HVD11D chips. Seems OK if I don't go over 10m or so. I think. That chip also allows 1/8 load, too...just in case.

I guess the next question would be if you could add the hidden DE pin control feature from the t2 to the t3? it looks like that has/does causes quite a few headaches...knowing exactly when to toggle the pin (i.e. knowing when the t3 had sent its last byte before toggling the pin).

Thanks as always, Paul!

David
 
Status
Not open for further replies.
Back
Top