1
\$\begingroup\$

I've been hunting around for RS232 converters for a little while now, trying to get my head around the way RS232 works (or at least how it's supposed to), and the way RS232-USB converters (more frequently than not, seem not to) work. Trying to understand the state of things has left me not a little confused, so I'm asking here to try and sort some of my perplexion out :P

To begin with, Wikipedia states the following about RS-232 (emphasis mine):

The RS-232 standard defines the voltage levels that correspond to logical one and logical zero levels for the data transmission and the control signal lines. Valid signals are either in the range of +3 to +15 volts or the range -3 to -15 volts with respect to the ground/common pin; consequently, the range between -3 to +3 volts is not a valid RS-232 level.  ...

The standard specifies a maximum open-circuit voltage of 25 volts: signal levels of ±5V, ±10V, ±12V, and ±15V are all commonly seen depending on the voltages available to the line driver circuit. Some RS-232 driver chips have inbuilt circuitry to produce the required voltages from a 3 or 5-volt supply. RS-232 drivers and receivers must be able to withstand indefinite short circuit to ground or to any voltage level up to ±25 volts.

A bit later on, WP also says:

Other serial signaling standards may not interoperate with standard-compliant RS-232 ports. For example, using the TTL levels of near +5 and 0V puts the mark level in the undefined area of the standard. Such levels are sometimes used with NMEA 0183-compliant GPS receivers and depth finders.

All of that makes sense. But then I enter the rabbithole...

When I search for a USB-RS232 converter module (as an alternative to the $40 stuff out there that's just pure profit) which actually follows this spec, I instead find an Internet full of converters which state their operating voltage as either 3.3V or 5V. I can't find any explicitly 10V, 12V or 15V devices anywhere. This is a little worrying, because I've gotten the impression that if the converter can only tolerate 3.3V or 5V, a "real" (?!) RS232 device with 10V or 12V signalling/output voltages has a reasonably high chance of making the converter spontaneously combust in a bad way (on top of not responding to the converter's out-of-spec 3.3V/5V inputs). Thusly, my first question is, how can I tell/find/figure out/identify/etc what converters/devices will and will not work, without an oscillioscope?

The other disturbing trend I've found is that ZT213/MAXx23x voltage level converters only seem to level-shift TX and RX, and chuck all the ancillary (but in certain situations very important) RS232 signals out the window. My second question is, what do I do if I have a "real" (?!) RS232 device using ≥10V signal levels which needs (for example) a DTR line - and all I've got is a 5V USB-RS232 converter? What level shifter can/do I use then?!

Finally, this probably isn't covered by WP's article on RS-232 because it's so out-of-spec, but my third question is this: I've found a lot of the converters out there being referred to as UARTs. I don't get whether this reference is being used with regard to the converter chipset itself, or whether the implication is that it's a USB-to-UART converter, where the UART is the target device. What's the deal with this?

\$\endgroup\$
  • \$\begingroup\$ UART is Universal Asynchronous Receiver/Transmitter, aka, a serial device. RS232 is a wiring and signalling/electrical standard. Think rs232 as the physical/mac layer of the stack, while uart is the tcp/ip layer. \$\endgroup\$ – Passerby Apr 27 '14 at 21:06
  • \$\begingroup\$ And look for a real ftdi usb to rs232 cable. FTDI makes full rs232 usb to serial adaptors, with the handshaking pins included. Usb to ttl is nomally just tx/rx 5v or similar \$\endgroup\$ – Passerby Apr 27 '14 at 21:15
  • \$\begingroup\$ Silicon Labs has a few full conversion chips as well. \$\endgroup\$ – Ignacio Vazquez-Abrams Apr 27 '14 at 21:18
  • \$\begingroup\$ I've gotten the impression that it'd might actually be better value for money to combine a cheap TTL adaptor with a separate level shifter, considering the fact that entry-level premade units run for at least $13, and LED-equipped ones (the kind I'd like) are $30-$40 (!). \$\endgroup\$ – i336_ Apr 27 '14 at 23:16
  • \$\begingroup\$ The standard MAX232/3232 has two transmitters and two receivers, so you can have two more signals in addition to TXD and RXD. If you need more you can add another MAX232. There are also other combinations, but they are rarely used and tend to be expensive (see para.maximintegrated.com/results.mvp?fam=rs232). \$\endgroup\$ – starblue Apr 28 '14 at 15:44
6
\$\begingroup\$

There are some cables that convert directly from USB to RS-232, all of these should say so and all should be (reasonably) compliant with the RS-232 specification.

However, there are also lots of cables that translate from USB to TTL asynchronous serial data, and these will be rated at either 3.3V or 5.0V. Such a cable needs a separate TTL-to-RS-232 converter such as the old MAX232 chip.

This is where the confusion begins — many people call any form of asynchronous serial data "RS-232", even though that term only properly applies to the electrical interface standard. You need to pay attention to exactly what the seller is saying about his cables.

One clue is that if the cable has a D-sub connector (DE-9 or DB-25), it probably really is RS-232. If it has a rectangular header connector, it's probably TTL. YMMV.

The term UART refers to the hardware device that generates and receives asynchronous serial data. Technically, the USB-to-TTL cable contains a chip that comprises two interfaces: a USB device interface and a UART. The chip passes data in both directions between these two interfaces.

\$\endgroup\$
  • \$\begingroup\$ "If it has a rectangular header connector, it's probably TTL", unfortunately this just isn't true, sometimes headers are full RS-232, sometimes they are 5V traditional CMOS, sometimes they are 5V TTL compatible CMOS, sometimes they are 3.3V with 5V tolerant inputs. Sometimes they are 3.3V without 5V tolerant inputs. I've even seen headers with 1.8V UART connections. You really need to check both pinout and voltage levels before connecting anything to a pin header. \$\endgroup\$ – Peter Green Oct 24 '15 at 3:06
  • \$\begingroup\$ @PeterGreen: That's why I said "YMMV" (your mileage may vary). And just to be clear, I was talking about the connector on the USB-UART adapter, not any header that might be on the target system. \$\endgroup\$ – Dave Tweed Oct 24 '15 at 11:39
1
\$\begingroup\$

Its hard to say in general. While the RS232 standard is fairly liberal, some RS232 devices are very strict. This was an issue on older laptops with built-in RS232 ports, which would only go up to ±7V or ±10V as an energy saving matter, while the RS232 device would refuse to read the devices, expecting a full ±12V or ±15V. This is the same problem some USB-RS232 adaptors have.

USB to TTL is fairly obvious. TTL is 5V or 3.3V (or other, some devices have arbitrary reference voltage, and can go down to 1.8V levels, the newest level standard for super low power devices). While most only break out the RX and TX lines, the most common ICs can do full port. FTDI, Prolific, Silicon Labs all have full rs232 level and port ICs. Some versions are TTL only, and some cables use those with RS232 Drivers like the MAX232. And then there are no-name ics, and the knockoffs and counterfeits. So there are many variations.

The only real way to know is:

  1. By reviews or asking other people in a community who can vouch for a product.
  2. Buying modules or cables where you can see the ICs, and board layout, or schematic.
  3. Buying one and taking it apart, then using a multimeter to check the levels.

An oscilloscope isn't needed, all you need to know is how high or low the pins go.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.