Comparison

Synchronous vs Asynchronous Data Transmission

A UART module on a microcontroller sends one byte at a time with a start bit and stop bit, waking the receiver only when data arrives — that is asynchronous. An SPI bus running at 10 MHz clocks every bit in lockstep between master and slave with a shared clock line — that is synchronous. The choice between them determines PCB trace count, maximum speed, and how far two chips can talk before timing drift kills the link.

ECE, EI

Side-by-side comparison

ParameterSynchronousAsynchronous Data Transmission
Clock sourceShared clock line between transmitter and receiverEach device has its own clock; no shared clock wire
FramingData sent in continuous frames or blocks (HDLC, SPI)Each character framed with start bit (0) and stop bit(s) (1)
Overhead per characterLow — preamble only at block start2–3 bits per 8-bit character (~20–27% overhead)
Maximum practical speedSPI: up to 50 MHz; I2S: 12.288 MHz audioUART: typically up to 115200 baud to 921600 baud
Clock recoveryNot needed — clock supplied externallyReceiver PLL or oversampling (16× in UART) for recovery
Wire countMore lines — SPI needs MOSI, MISO, SCK, CSMinimum two wires — Tx and Rx (UART)
Error detectionCRC in block protocols (HDLC uses CRC-16)Parity bit optional; framing error if stop bit missing
Idle line stateClock runs continuouslyLine idles HIGH (mark state); start bit is LOW edge
Real IC exampleSPI: STM32 SPI peripheral; I2C: 400 kHz Fast Mode8251 USART, 16550 UART, ESP32 UART0 at 115200 baud
Typical applicationOn-board chip-to-chip, SD cards, ADC readoutPC serial port, GPS module, Bluetooth AT commands

Key differences

Asynchronous UART adds a start bit and one or two stop bits to every 8-bit character — that is 10 bits on the wire for 8 bits of data, creating 20% overhead. At 115200 baud that limits throughput to ~92 kbps of useful data. Synchronous SPI has no per-character overhead once a frame starts; an STM32 SPI port at 45 MHz can transfer a full 320×240 display frame in under 2 ms. The absence of a shared clock in asynchronous systems requires the receiver to oversample at 16× to find bit centres, which limits distance and speed. For multi-device buses, I2C (synchronous, 400 kHz Fast Mode) requires only two wires regardless of device count.

When to use Synchronous

Use synchronous transmission for high-speed on-board communication between ICs — for example, SPI at 10 MHz to read a 12-bit ADC like the MCP3204 in a data acquisition system.

When to use Asynchronous Data Transmission

Use asynchronous transmission for low-speed, point-to-point links where simplicity matters more than speed — for example, a GPS module like the NEO-6M sending NMEA sentences at 9600 baud to a microcontroller UART.

Recommendation

For most embedded system exam problems, choose synchronous (SPI or I2C) for on-chip sensor interfaces and asynchronous (UART) for terminal or modem-style links. The wire count and speed requirement usually make the right choice obvious.

Exam tip: Examiners ask you to draw the UART frame for the ASCII character 'A' (0x41 = 01000001) showing start bit, 8 data bits LSB first, and stop bit — practise drawing this waveform with correct logic levels.

Interview tip: Interviewers at embedded companies (Texas Instruments, STMicroelectronics hiring) ask you to compare SPI and I2C in one sentence — say: SPI is faster and full-duplex but needs one CS line per slave; I2C is slower (400 kHz) but two-wire and supports 127 devices with addressing.

More Communication Systems comparisons