Tutorials

Learn More

UART stands for Universal Asynchronous Receiver/Transmitter. It is a simple serial communication mechanism used to send data one bit at a time between two endpoints. In digital design terms, a UART converts parallel data into a timed serial bit stream on transmit and converts a received serial bit stream back into parallel data on receive.

UART is called asynchronous because the transmitter does not send a separate clock along with the data. Both endpoints agree ahead of time on the data rate and frame format. The receiver then uses the start bit of each frame to align its sampling point.

Why UART Is Used

UART is popular because it needs very little wiring and is easy to debug with an oscilloscope, logic analyzer, USB-to-UART adapter, or FPGA testbench.

Common uses:

  • Debug console
  • Bootloader interface
  • FPGA-to-PC communication
  • Sensor/module communication
  • Board bring-up
  • Low-speed chip-to-chip links
  • Simple SoC peripheral communication

UART is not ideal for every interface. It has no built-in addressing, arbitration, packet retry, or shared-clock timing. Higher-level software or surrounding hardware must add those features when needed.

Generic UART Connection

A basic full-duplex UART connection is simple: each device’s TX pin connects to the other device’s RX pin.

UARTconnections
Signal Direction Purpose
TX Output Serial transmit data
RX Input Serial receive data

Note: TX connects to the other side’s RX. Connecting TX-to-TX and RX-to-RX is a common wiring mistake.

UART, USART, RS-232, SPI, and I2C

UART describes the asynchronous transmit/receive function and frame timing. It does not, by itself, define a board connector or a universal voltage standard.

Interface Clock line? Typical wires Addressing Duplex Main idea
UART No TX, RX, GND No Full duplex with separate TX/RX Asynchronous serial character frames
USART Optional Depends on mode No Depends on mode UART-like async plus possible synchronous modes
SPI Yes SCLK, MOSI, MISO, CS Chip-select based Full duplex Synchronous controller/peripheral shifting
I2C Yes, shared SCL, SDA, GND Yes Half duplex Multi-drop two-wire bus
RS-232 No separate clock TX, RX, GND/control No Usually full duplex Physical/electrical serial interface often carrying UART-style frames

UART vs RS-232: UART-level signals are commonly logic-level signals inside a board or chip. RS-232 is a physical/electrical interface with different voltage levels and inverted signaling relative to many logic-level UART connections. A transceiver is normally used between logic-level UART pins and an RS-232 connector.