SPI vs. UART: Similarities and Differences

SPI Protocol

The Serial Peripheral Interface bus or SPI bus is a serial communication protocol for controlling and communicating with almost any digital electronic device that accepts a clocked serial stream of bits. SPI is typically used for short distance communication and most commonly found in embedded devices.

SPI devices communicate in full duplex mode, meaning communication can travel in two directions – in this case, Master-slave.

This Master-slave architecture enables a single master to control multiple slaves via slave select lines in its four-wire serial bus.

Additionally, this powerful protocol doesn’t take up much board real estate when compared to parallel I/O ports and provides space savings for chip and FPGA designs as well. When dealing with boards, chips etc. space savings is equal to money savings.

Computer screen showing generic code

UART

UART or Universal Asynchronous Receiver/Transmitter is a computer microchip used for translation between parallel and serial data. It is usually an integrated circuit used for serial communication over a computer or peripheral device serial port.

UARTs are also commonly used in many microcontrollers. UARTs use shift registers, which is a fundamental method for converting serial and parallel forms.

Like SPI, all operations of UART hardware are controlled by a clock signal, which typically runs at 8 times the bit rate.

When this distance becomes several kilometers, the expense of wires also becomes large. To reduce this expense of long communication, data bits are sent sequentially instead of parallel, i.e. one after another using a UART that converts the transmitted bits between sequential and parallel form at each end of the link.

The Similarities and Differences between SPI vs UART

Similarities

SPI and UART have been both designed for use in short-distance applications. They both operate using a clock and can run full duplex, but that’s about where the similarities end.

Let’s look at the longer list of differences.

Differences

SPI and UART have more differences from each other than similarities. UART is hardware while SPI is a communication protocol. UART needs two pins, comes with good speed, can be implemented easily and requires the same clocks at both sides. While SPI needs 4 pins (more for additional slaves), is faster than UART and simple to implement even with low CPU time overhead.

Let’s compare SPI and UART in terms of following metrics in order to get a deeper understanding:

  1. Pins: UART needs just 2 pins for communication and it is easy to handle while SPI requires at least 4 pins, possibly more for additional slaves. Thus, SPI is preferred only when there are additional free pins available.
  2. Speed: Speed is very important as protocol overhead grows proportionately as the amount of data that needs to be sent increases. In terms of speed, SPI is very fast and it can be up to 3 times faster than UART.
  3. Difficulty: Managing physical wires, writing code, doing pin counts, and managing actual communications can be made very easy with the right choice.
  4. Devices: It is also very important to keep track of the number of devices that you can communicate with over SPI and UART. SPI is because you can connect more slaves devices than with UART.
  5. Cost: Considering cost is also very crucial in this regard. SPI is comparatively cheaper as compared to UART and is easily available in the market.
Standard Tx Type No. of Wires Data Rate @ Distance Approximate Cost
($$$$$)
Scalability Use Cases
UART Asynchronous 2 20 kbps @ 15m $$$ Low
(point-to-point)
Diagnostic display
SPI Synchronous 4+ 250 Mbps @ .1m $ Medium (chip select) High speed chip to chip link

Recommendations

Overall, this depends on what you are trying to accomplish.

If you can, go for SPI. It will cost you less and you will be able to do more. On the other hand, if the number of pins is a bottleneck in your project and you want to keep things simpler, UART would be a good choice for you.

We hope this article will help you make the right choice for your project. Good luck, and let us know if we can help.

If you have any questions about our protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com.

Leave a Reply