JL
JLink Technology Semiconductor Distributor
RFQ
I²C vs SPI vs UART: Choosing an Embedded Serial Interface (Wires, Addressing, Speed)
I2CSPIUARTSerialMCUInterfaceSelection Guide

I²C vs SPI vs UART: Choosing an Embedded Serial Interface (Wires, Addressing, Speed)

Which serial interface for connecting peripherals to an MCU? Three axes decide: wire count, how many devices share the line (addressing vs one CS each), and speed. UART is two devices point-to-point (async, no clock); I²C is a row of addressable low-speed devices on two wires (needs pull-ups); SPI trades one CS per device for high speed. This guide breaks each down and maps to FMD FT24C, GigaDevice GD25Q and WIZnet WizFi360.

JL Reviewed by JLink Technology engineering team · Updated 2026-06-28

A one-line mental model + three axes

When you connect peripherals to an MCU, “which serial interface” really comes down to three axes: wire count (pin budget), how many devices share the line (addressing vs one CS each), and how fast you need to go. Start with a one-line mental model: UART is “two devices talking point-to-point” (no clock, no addressing); I²C is “a whole row of addressable low-speed devices on two wires”; SPI is “add one chip-select (CS) line for high speed — one CS per device.” Below we take each apart, then map straight to the common parts for that interface.

UART: two devices, point-to-point

UART is an asynchronous interface: just two wires (TX, RX) cross-connected, with no clock line — both ends agree on the same baud rate beforehand and align sampling with the start bit before each byte; a baud-rate mismatch yields garbage. It is fundamentally “two devices point-to-point” — no master/slave, no addressing, not a bus you can hang many devices on — and it’s full-duplex (separate TX/RX carry data both ways at once). Speed is modest (commonly 9600–115200 bps, up to the low hundreds of kbps in practice). So UART suits module-to-module links and debug consoles — for example a Wi-Fi module driven by AT commands over UART, like WIZnet’s WizFi360.

I²C: a row of addressable devices on two wires

I²C uses two wires (SDA data, SCL clock) and is a synchronous, addressable multi-drop bus: each device has its own address, and the master picks the target by address on the shared two wires — so “add devices without adding wires” is its big draw (7-bit addressing can theoretically host ~127 devices, with practical limits from bus capacitance). The costs are lower speed and half-duplex, and because SDA/SCL are open-drain they require external pull-up resistors to return the lines high (the faster the speed and heavier the load, the smaller the pull-up usually needs to be). Speed grades: Standard 100kHz, Fast 400kHz, Fast-mode Plus 1MHz, High-speed 3.4MHz. Best for: a row of slow, addressable devices on two wires — EEPROM, RTC, sensors. Matching parts: I²C EEPROM → FMD FT24C series (2-wire, 2K–1Mb, 1.8–5.5V); I²C RTC → Micro Crystal RV series (RV-3028-C7, ultra-low 45nA).

SPI: one CS per device for high speed

SPI uses four wires (MOSI master-out, MISO master-in, SCK clock, CS chip-select), is synchronous and full-duplex, and is the fastest of the three — the protocol itself defines no speed ceiling, tens of MHz is routine, and real parts run to 133MHz. It uses no addressing; instead there is “one dedicated CS per device”: MOSI/MISO/SCK are shared, and the master pulls the target’s CS low to select it. The cost is that more devices strain the CS pin budget. Best for: high speed with few devices (often just one or two) — NOR/NAND Flash, displays, fast ADCs. Matching parts: SPI NOR Flash → GigaDevice GD25Q series (single/dual/quad SPI, 2Mb–256Mb, up to 133MHz); SPI NAND → GigaDevice GD5F (Gb-class, with on-die ECC).

How to choose (mapped to parts)

The one-line decision: only two devices, or debug / a comms module → UART (just match the baud rate; Wi-Fi AT-command module WizFi360). A row of slow, addressable devices on two wires, saving pins → I²C (add devices without wires, remember the pull-ups; EEPROM FT24C, RTC RV series). High speed with few devices → SPI (one CS per device, speed traded for pins; NOR GD25Q, NAND GD5F). The three-axis trade-off in one sentence: many slow devices, save wires → I²C; need speed, few devices → SPI; only two things talking → UART. JLink Technology is an authorized distributor for GigaDevice, FMD, Micro Crystal and WIZnet, supplying the matching parts for each interface — I²C (FT24C EEPROM, RV RTC), SPI (GD25Q NOR, GD5F NAND) and UART (WizFi360 module); tell us your device types, counts and speed needs and we will help pick the interface and parts, and reply with samples, datasheets and pricing.

Products mentioned

FT24C series In Stock

FT24C Series I²C EEPROM (2K ~ 256K bit)

The FT24C series are standard I²C serial EEPROMs spanning 2K to 256K bit (FT24C02 ~ FT24C256), compatible with industry-standard pinouts, with a wide 1.8V ~ 5.5V supply — widely used to store configuration parameters, calibration data, and serial numbers.

EEPROMMemoryI²C
GD25Q128 In Stock

GD25Q128 128Mbit SPI NOR Flash

The GD25Q128 is a 128Mbit (16MB) serial SPI NOR Flash, 2.7~3.6V supply, up to 133MHz, with Dual/Quad I/O, 4KB sector and 32/64KB block erase, and 256-byte page program. In SOP8 / WSON8 with a standard JEDEC pinout and command set, it is a common second source for the Winbond W25Q128.

SPI NOR Flash128MbitQuad SPI
WizFi360 In Stock

WizFi360 Industrial-Grade Wi-Fi Module

The WizFi360 is a cost-effective industrial-grade Wi-Fi module from WIZnet, compliant with IEEE 802.11 b/g/n and supporting Station, SoftAP, and combined modes. Add Wi-Fi to any MCU over UART with AT commands; it has a built-in TCP/IP stack and an industrial -40~85°C operating range.

Wi-Fi802.11Module

Need these components or design help?

JLink Technology provides parts, datasheets, and engineering support.

Request a Quote