ChipNet
ЭЛЕКТРОННЫЕ КОМПОНЕНТЫ
Технические обзоры

Сравнение I2C, SPI и UART

I2C, SPI и UART — три основных интерфейса связи микроконтроллеров с периферией. Каждый имеет преимущества и недостатки. Разберём, какой выбрать для датчиков, дисплеев, памяти.

UART — самый простой

UART: 2 провода (TX, RX), до 4Мбит/с, точка-точка. Преимущества: минимум проводов, простота. Недостатки: только 2 устройства. Применение: отладка, GPS, Bluetooth.

I2C — множество датчиков

I2C: 2 провода (SDA, SCL), до 3.4Мбит/с, 127 устройств. Преимущества: 2 провода для многих устройств, адресация. Недостатки: полудуплекс, до 1м. Применение: BMP280, SHT30, EEPROM, OLED.

SPI — самый быстрый

SPI: 4+ провода (MOSI, MISO, SCK, CS), до 50+Мбит/с. Преимущества: максимальная скорость, полнодуплекс. Недостатки: 4 провода, нет ACK. Применение: SD-карты, Flash, дисплеи.

Сравнение

Провода: UART 2, I2C 2, SPI 4+. Скорость: UART 4М, I2C 3.4М, SPI 50+М. Устройств: UART 2, I2C 127, SPI не ограничено. Датчики — I2C, память/дисплеи — SPI, отладка — UART.

Часто задаваемые вопросы

Какой интерфейс для датчика?
I2C — оптимальный (BMP280, SHT30, LM75). 2 провода, много устройств, достаточная скорость.
Сколько SPI устройств?
Нужен отдельный CS для каждого. 3 устройства = 7 проводов. I2C для 3 устройств = 2 провода.
Максимальная длина I2C?
До 1м при 400кГц. Для больших — I2C-удлинители (PCA9600) или RS-485.
UART для программирования?
Да, ESP32, STM32, Arduino загружаются через UART. Также для отладки.