Electronic – Best way to connect a RS-485 device

adapterserial

I have to control a device with a C++ application (Windows) via RS-485. I'm wondering, which would be the best way to connect it. Should I use a USB-RS485 adapter (which would be the most flexible solution) or a RS232-RS485 adapter? Any other recommendations?

I am especially concerned about the speed, I used to work with a USB-RS232 adapter, which was very slow (OK, was also cheap).

At the moment, I'm considering buying a NI adapter. Any other recommendations?

Thanks.

Best Answer

I'm not going to give any specific device recommendations but I will offer some advice.

As you say, a USB-RS485 adapter is the best solution. Adapters which use an RS232 port are available but these have some disadvantages. First, these devices generally use the RS232 RTS line to control data direction. If the windows RS232 drivers is used, you may find timing issues (because the RTS line was not intended for this purpose) although some adapters have their own device drivers to circumvent this problem.

Other adapters claim to have 'automatic' direction control. The ones that I have seen do this by connecting the transmitted data to the data-enable line of the driver chip so that when the 485 line should be driving the line to the high state, it actually goes tri-state and relies on pull-up/pull-down resistors to 'drive' the line. This solution gives poor drive capability and slow risetimes (which may be the cause of your slow speed experience).

One other potential problem is power. Since RS232 ports do not have power as such, RS232 adapters get their power from data or flow-control lines. One adapter I know of has a curious 'bootstrapped' internal power circuit (I won't bore you with the details) which relies on some transmit data transitions to 'kick it off' so it is completely 'deaf' until some data is transmitted.