Question: Is it due to daisy chaining? The network works fine with one on one devices connected, it is faster.
I have built a Profibus dp library for Arduino (johi on youtube), so i can assure you that much higher performance is possible.
first question: how did you terminate your bus, what did you use for pullup resistors?
second question: max 485 can go into low impedance (send mode) or high impedance (receive mode), how do you control these signals? is it by protocol, start bytes, stop bytes etc, or how do you do this.
How do you address our daisy chained devices (protocol adress bytes ?).
Have you the possibility to look with an oscilloscope to your bus, do you have some kind of recorder that can display the signals (pc with RS485 card, data scope or the like?.
This can be a network specific problem. Typically 120 ohm network termination resistors placed at the ends of an RS-485 twisted-pair communications line help to eliminate data pulse signal reflections that can and will corrupt the data on the line. However on the whole the termination resistors will help network performance more often than they will hurt it. You can also use active termination. Your response time is partially based on the bit rate you are using which you did not specify nor the length of the network. When a sensor is polled, how long does it take to respond this also could be part of your problem. Another possible problem will be arbitration, can I assume it is being used. Are messages resent. There are several good on tutorials on RS485 and communication protocols in general.
Daisy chaining decreases the throughput. A common solution is a common bus system, where the master (Arduino) sends an address whereupon the addressed slave sends back its data. This way at most one node is sending, and each client knows when it's allowed to send without any further select signal and cable. An additional bit or bus line may be reserved for separation of address (command) transmission from slave response, so that no slave will try to interpret the transmission from another slave as a command.
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.