I2C vs SPI

Сравнение I2C и SPI: число проводов, адресация, скорость, full-duplex, chip select, длина линии и применение.

I2C

  • Две сигнальные линии
  • Адресация устройств
  • Общая шина датчиков

SPI

  • Высокая скорость
  • Full-duplex
  • Отдельный chip select

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

ХарактеристикаI2CSPI
Сигнальные линииSDA и SCLSCLK, MOSI, MISO и CS
АдресацияАдрес передается по шинеОбычно отдельный CS на устройство
ОбменПолудуплекс по общей SDAОбычно full-duplex
СкоростьОбычно нижеОбычно выше
ЭлектрикаOpen-drain с подтягивающими резисторамиPush-pull линии без общей стандартизованной электрической схемы устройства
Длина линииКороткая плата, ограничение емкостью шиныКороткая плата, ограничение фронтами и согласованием
ПрименениеДатчики, RTC и конфигурацияДисплеи, Flash, ADC и быстрые потоки

Что выбрать

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

  • Нужно много медленных устройств на двух линиях.
  • Адреса не конфликтуют.
  • Емкость шины укладывается в требования.

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

  • Нужна высокая скорость.
  • Доступны отдельные линии CS.
  • Плата короткая и разводка контролируется.

I2C экономит выводы при множестве устройств. SPI выбирают ради скорости и простого синхронного обмена.