0
\$\begingroup\$

I have a system (call it a DTE system). It sends me data (UART) which I receive at a DCE(LPC4337). Now, DTE transmits with 2 stop bits where-as it receives with just 1 stop bit. How is that possible. It would mean I need to interface the to 2 different UARTs in my DCE, right ? Also, supposing I go for full modem(RTS and CTS control), how would this work out ? As I would be using 2 different UARTs to communicate with the same DTE.

\$\endgroup\$
2
\$\begingroup\$

Stop bits are effectively an idle signal - sending 2 stop bits just means that the receiver will sees an extra 1 bit gap between the characters.

Serial asynchronous data format is: idle (high) start bit (low) data bits (anything) optional parity (anything) stop bit (high) idle(high)

The receiver recognises the start of a character being sent as the first low transition on an idle line (start bit). No of stop bits is irrelevant.

RTS / CTS control signals are control signals they do not have any stop bits.

\$\endgroup\$
  • \$\begingroup\$ Ok. I get the point. But, I must configure the UART of my MCU(DCE) wether to look for 1 or 2 stop bits, right ? When I receive from DTE , I will get 2 bits (so I configure my UART for 2 stop bits). But when I transmit, I must send 1 STOP bit. Its this configuration of stop bits thats confusing me. I cannot configure the same uart for 2 different STOP bits, right ? \$\endgroup\$ – Board-Man Oct 28 '15 at 12:59
  • \$\begingroup\$ You may be able to configure the UART to SEND 1 or 2 stop bits, but you won't be able to specify the number of stop bits on the receiver side. So long as you get the number of bits, parity and baud rate correct it will work. \$\endgroup\$ – Icy Oct 28 '15 at 13:01
  • \$\begingroup\$ So, let me get this right. If the DTE send s1 or 2 STOP bits, its irrelevant as long as I have the data,parity and baud rate correct. Likewise, if I send 1 bit or 2 the DTE should work fine if I have the rest of the parameters in sync. \$\endgroup\$ – Board-Man Oct 28 '15 at 13:03
  • \$\begingroup\$ Yes, the receiver synchronises on the line going from idle to the start bit, the data and parity bits are then clocked in, the stop bits are where the line returns to idle. The UART may make a check on the first stop bit to see if the line has returned to idle, if not it can raise a 'framing' error, but essentially the stop bits are ignored. The line can be idle for any period before the next character is sent, but if your sender always sends 2 stop bits there will always be a minimum 2 bit 'idle' time, if it only sends 1 there will be a minimum 1 bit 'idle' time between characters. \$\endgroup\$ – Icy Oct 28 '15 at 13:09

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.