6
\$\begingroup\$

Whenever I come across a PIC or even a FPGA project that is communicating over the serial port with a PC; only Rx, Tx and power are connected on the 9 pin connector and the other pins/signals are apparently never used.

The RS232 has several more signals that cover all 9 pins. Are they even used at all nowadays? I don't see PIC microcontrollers having these other signals. Even the MAX232 does not have them.

\$\endgroup\$
  • 3
    \$\begingroup\$ Yes, they are used. For example in the very popular serial-to-BT RN42 modules. \$\endgroup\$ – Eugene Sh. May 6 '16 at 13:10
  • 7
    \$\begingroup\$ Your are effectively mistaken in saying that the MAX232 doesn't have them - it has two transmitters and two receivers, so unless you are trying to support two independent ports with one chip, that gives you a control or status signal in each direction alongside the data lines. \$\endgroup\$ – Chris Stratton May 6 '16 at 13:21
  • \$\begingroup\$ Microcontrolers mostly dont use RS232. They use UART. Please note that RS232 protocol defines voltage levels and those are pretty specific. UART protocol doesn't specify voltage levels. The advantage of RS232 is because it uses NRZ called Non Return to Zero. Please note this actually is very useful in noisy environments. a simple UART channel which doesn't use NRZ cannnot survive a noisy environment. \$\endgroup\$ – Denis May 6 '16 at 13:53
  • \$\begingroup\$ Notice that the other signals are mostly software generated anyway, so any GPIO can be used. \$\endgroup\$ – JimmyB May 6 '16 at 14:09
  • \$\begingroup\$ 0 volts can be quite useful \$\endgroup\$ – Andy aka May 6 '16 at 14:48
7
\$\begingroup\$

Quite a lot of RS232 is now transported over USB, and so is often not RS232 signal levels where it is used, but 5V or 3.3V. The signals from a USB-UART might be buried in a PCB. So it might not be as easy to see which signals are used as it was when looking at an RS232 cable.

The move to USB, away from RS232, or a 'TTL' signal level of RS232, on the host PC caused a lot of RS232 devices and applications to move to USB. However, the RS232 signals are still supported.

(USB sockets are more compact than RS232, probably cheaper, USB signal levels are more 'PC friendly', USB was faster from the start, and supported many different applications over a common socket and cable system, with the application complexity in software rather than hardware. So it was reasonable for PC manufacturers to move to USB in preference to a plethora of different communication standards and sockets)

FTDI have been supplying USB-UARTs for many years which support several levels of RS232-derived signals. A 'basic' UART supports RTS (Request to Send) and CTS (Clear To Send), and more complex devices supporting RTS, CTS, DTR, DSR, DCD and RI.

Many Arduino's, connected to a host PC via a USB-UART, still use the DTR signal (Data Terminal Ready) to enable the host PC to force a RESET of the Arduino's microcontroller. The DTR signal is brought out from the FTDI USB-UART and connected to the microcontrollers RESET pin.

Host operating systems' serial-over-USB drivers still support 'out-of-band signalling' using those legacy RS232 signals. So the host can open the USB device as a serial stream, then use ioctl on that stream to manipulate the legacy RS232 signals.

Microchips MCP2200 USB-UART supports RTS and CTS.

Prolific offer the PL2303TA a Tx/Rx only device, but also the PL2303SA supporting RTS, CTS, DTR, DSR, DCD, and RI.

Though it is circumstantial evidence, there are several manufacturers supporting more than Rx and Tx, and having been doing for several years. So it is reasonable to assume their are uses for more than Tx/Rx. However, because the transport is USB, and not RS232 cables, plugs and sockets, it might be hard to see specific evidence.

\$\endgroup\$
  • \$\begingroup\$ The question which was asked was about actual serial connections, not USB. If someone wanted to use a USB adapter to talk to an actual serial device, they would hook up the control and status signals if it used them, or perhaps not bother if it didn't, just as with any other serial endpoint. \$\endgroup\$ – Chris Stratton May 6 '16 at 14:14
  • 1
    \$\begingroup\$ I believe I understand your point. However, parts of RS232 are still being used for serial connections. Products have replaced the RS232 cables yet retained the software and RS232 signalling, especially in FPGA and microcontroller development boards. I believe USB-UART has replaced much of the traditional RS232 cabling without other change. So, I think my answer explains the points. My view is you can't deduce whether or not only RS232 Tx/Rx are still being used in serial comms. just by looking at RS232 sockets. \$\endgroup\$ – gbulmer May 6 '16 at 14:42
  • \$\begingroup\$ UART to USB cables show up as virtual COM ports on the PC side, and you can manipulate the control lines on these virtual ports the same as if they were pins on a physical COM ports (which are seldom seen on PC's anymore). \$\endgroup\$ – tcrosley May 7 '16 at 1:06
  • \$\begingroup\$ @tcrosley - yes, exactly. The meaning of RS232 is available, supported and used. Focusing only on the plugs and sockets of RS232 is like looking at the Internet by looking at RJ45 and CAT5 cable. \$\endgroup\$ – gbulmer May 7 '16 at 2:00
3
\$\begingroup\$

The RTS (Ready to Send) or DTR (Data Terminal Ready) control signal is used by many microcontroller programming gadgets (Arduino et.al.) to reset the microcontroller in preparation for downloading the new code.

\$\endgroup\$
  • 1
    \$\begingroup\$ I like how they did that with the Arduino bootloader - software toggling the DTR pin through a capacitor to the reset of the target makes it pulse the MCU reset, and as long as the timing is good, the bootloader will be ready when the data is sent. geniuses \$\endgroup\$ – KyranF May 6 '16 at 16:08

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.