USB – RS232/TTL/485 adapter

I had purchased a handy little USB-serial adapter with multiple outputs some months ago, and although it checked out on delivery, the next time I wanted to use it, it just didn't work at all.

USB-485Above, a view of the internals. It uses an FTDI FT232RL chip, and MAX232 and Max 485 for the RS-232 and RS-485 outputs.

It turned out that the fault was intermittent, and pressing on the PCB in different places could induce or clear the fault. Since it affected all modes, it seemed to be in the region of the FT232RL, so all the pins were re-soldered (no solder added, just reflowed with a hot clean iron).

DS1Z_QucikPrint27

That fixed it, above are the waveforms on the RS-485 + and – inputs at 921kbps. The character shown is 0x33 (LSB first), the first single element MARK transition is setting idle condition (RS-485 transmitter enabled by the FT232RL), the next is the START (SPACE polarity) then two bits MARK two bits SPACE for 3, and again two bits MARK two bits SPACE for 3, a STOP element (MARK polarity) and then the driver is disabled.

The line is fail-safe biased to about 500mV. and has 120Ω terminations at both end of 50m of twisted pair (25m of Cat5e in loopback). The small blips at ~500ns after the bit transitions hints the length of the cable, and the quality (or otherwise) of the termination, the reflection coefficient is about 0.4/3.8 or around 0.1… not a bad match at all.

USB-485-10

Above is the other end of the test link, a $6 USB-RS485 adapter off eBay. This one has a 120Ω termination resistor on board, and the two 470Ω resistors soldered on top connect + to VCC and – to GND to provide fail-safe bias which ensures that the link is idle (MARK) when no drivers are enabled.