Echo on a Modbus over RS-485 network

P

Thread Starter

Pankaj Sharma

Hi!

I have an application running on my PC which implements the Modbus protocol. This application sends standard commands to a device running Modbus over RS-485. The way the application connects to this device is through a USB to RS-485 converter. I am programming this USB to RS-485 converter. Both the application on the PC and the device on the other end are tested and work properly with a commercial USB to RS485 converter. However, with my converter, I see that the PC software is receiving an echo of whatever is being sent on the bus by it. If I put a sniffer on the bus, I don't capture any echoes. So, it seems like my converter is generating an echo. Also, if I run at higher baud rates, the data received on the PC becomes received becomes more and more incorrect. Could anybody tell me what could be wrong?
 
Sounds simple, but perhaps you have left the 485 transceiver "Receive Enable" bit ON during transmit?
 
M

Muzammal Baig

If RS485 line is too long and not terminated then you can get echoes. You must terminate long RS485 lines with 120 Ohm Resistors.

As you said the commercial converter works fine, so the fault doesn't seem to be in the line.

The higher baud rates causing more problems means that the fault is in hardware assembling or the 485 programming. Remember you must disable tx while receiving and you must disable RX while transmitting because 485 is a two wire half duplex protocol (not full duplex).

Conclusion:
1) Your microcontroller program is not disabling Rx wile transmitting which is causing Echo

2) Your circuit does not have termination resistor or it is poorly assembled so higher baud rates will surely get corrupted.

Send me the schematic (PDF or ORCAD) and I shall take time to suggest better solutions.

Muzammal Baig
Electronics Specialist
Pakistan
:)
 
B

Bruce Durdle

I came across a similar problem a few years ago, with an RS232-RS485 converter. The RS485 system was 2 wire meaning the TX and RX lines were paralleled. The "echoes" turned out to be the system reading the transmitted message as the response from the slave. The problem was solved by using CTS or RTS to disable the receive part of the converter during transmit.

Cheers,

Bruce
 
Top