I am trying to interface an RS422 to the UART on my MCU. Now, RS422 is differential. So, I understand that I need to have a differential to single ended converter IC. This is followed by a voltage level shifter to match Voh,Vol,Vih and Vil voltage levels of the MCU UART.

Other than this do I need any buffers or protocol convertyers ? The data is sent at standard baud rates of 460800, 230400, 115200, 57600, 38400, 19200, 9600, 4800 bps. Also, the UART standard rates are in baud, right ? How will it impact the bps. Because baud means symbols. For eg 9600baud = 9600x8bps.

  • \$\begingroup\$ 9600 baud is 9600 bits per second i.e. 9600 x 1 bit. It also includes the start, stop and parity bits so character rate on a 9600 baud interface with 8 bit characters + parity + start + 2 stop bits will be 9600/12 = 800 characters per second maximum \$\endgroup\$ – Icy Oct 28 '15 at 13:15
  • \$\begingroup\$ Ok. But what is baud ? Symbols,right? Now to transmit each symbol we need a min of 1 start and 1 stop bit. So, A symbol sent is a total of 10 bits. This means if 9600 baud wld mean 96000bps. \$\endgroup\$ – Board-Man Oct 28 '15 at 13:19
  • 2
    \$\begingroup\$ No, its the other way round 9600 bits per second / 10 bits = 960 characters per second. Baud = bps \$\endgroup\$ – Icy Oct 28 '15 at 13:23

For an RS422 link you just need the components you describe - usually just a differential line driver and receiver. The data format is identical to RS232 asynchronous format just sent over a differential pair instead of a single wire and earth.

Baud rate is bits per second or bps - character rate is: baud / no of bits per character (including start, parity and stop bis) so an 8 bit character (or symbol) sent with a start bit and a stop bit - no parity will require 8 bits to transmit, so at 9600 baud we can only send 960 characters per second.

  • 2
    \$\begingroup\$ Just a nitpick, but RS422 is a physical layer standard only. So you really can use any data standard you want with it. The data format can be entirely determined by the endpoints. \$\endgroup\$ – Ian Oct 28 '15 at 14:37
  • \$\begingroup\$ Close, but bps != Baud. Often this is true, but bps = n × Baud is more accurate, where n ≥ 1. tldp.org/HOWTO/Modem-HOWTO-23.html \$\endgroup\$ – jippie Oct 30 '15 at 18:25
  • \$\begingroup\$ I stand corrected, but for the RS422 physical layer, baud = bps \$\endgroup\$ – Icy Oct 30 '15 at 22:44

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.