SPI vs UART

Сравнение SPI и UART: синхронизация, скорость, линии, full-duplex, роли устройств, длина соединения и применение.

SPI

  • Синхронный обмен
  • Высокая скорость
  • Тактовая линия и CS

UART

  • Асинхронный обмен
  • TX и RX
  • Простое соединение

Таблица сравнения

ХарактеристикаSPIUART
СинхронизацияТакт SCLK формирует controllerСтороны заранее согласуют baud rate
ЛинииSCLK, MOSI, MISO и CSTX и RX
СкоростьОбычно выше на короткой платеОбычно ниже
Full-duplexДа при отдельных MOSI/MISOДа при отдельных TX/RX
Границы данныхОпределяются CS и протоколом периферииСтартовые и стоповые биты, пакеты задает приложение
Несколько устройствОтдельный CS или daisy-chainОбычно отдельный UART на соединение
ПрименениеFlash, дисплей, ADC и быстрый датчикКонсоль, GPS, модем и отладка

Что выбрать

Выбирайте SPI, если

  • Периферия находится на той же плате.
  • Нужна высокая скорость.
  • Доступны дополнительные сигнальные линии.

Выбирайте UART, если

  • Нужно соединить два устройства небольшим числом линий.
  • Общий такт неудобен.
  • Скорости UART достаточно.

SPI лучше для быстрой локальной периферии. UART удобнее для простого асинхронного канала.