Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to make two RS485 signal crash together?

Status
Not open for further replies.
There seems to be a fundamental stubbornness or just a complete lack of understanding in this thread. If you have two outputs connected together, and they are trying to drive different voltages, the result will PROBABLY be some intermediate value dependent on the actual circuitry involved. The receiver MAY interpret this intermediate value as a logic 1 or logic 0. If the outputs are the same, then the receiver won't know how many drivers are active

thats what the op wants..

By 'mixture' I meant data from the packets...I have seen this happen with some of my RS 485 projects. In many cases the packet has the correct address but fails the checksum test (so checksum is essential for RS 485 transmission).
 

A small delay may be introduced in one of the slaves, which will result in rubbish data..
 

A small delay may be introduced in one of the slaves, which will result in rubbish data..

The OP keeps maintaining that the slaves are identical. Thus, you can't introduce a small delay in just one of the slaves. Further, you would need more than just "a small delay", you would need an entire bit delay.

The only way to have multiple IDENTICAL slaves on the network and be able to deal with the situation where more than one slave erroneously have the same address is to use a daisy-chain.
 

The problem with RS485 is that there is a problem to see collisions, from the slave side in this case, since one slave's driver will be stronger than the other slave. The master will see the scrambles data, but the slaves will only see what they are transmitting themselves.
I tried to implement a mulitmaster protocol some years ago on RS485, but had to give up since I couldn't detect collisions, when transmitting.

To check for duplicate addresses in a master/slave environment, like the OP want, there is several approaches.
A simple one is to let the master send a command request to all units to generate a random number, that can be used as an 'emergency delay' before answering, and let the slave listen in this interval and restart the delay, and not transmit if the line is busy. This way you should spread all devices over a certain period, and receive data without collisions.

If you base the random number calculation on the units address and a freerunning clock you can read, there should be only a tiny chance that the delay will be exactly the same.
 
Last edited:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top