📌 SPI (Serial Peripheral Interface)
SPI (Serial Peripheral Interface) — это синхронный последовательный протокол, предназначенный для высокоскоростной передачи данных между CPU (или микроконтроллером) и периферийными устройствами. Разработан Motorola.
Используется в системах с ограниченными ресурсами: сенсоры, дисплеи, флэш-память, FPGA и др.
🧠 Как работает
Обмен данными по SPI осуществляется по 4 линиям:
- MOSI (Master Out Slave In) — данные от ведущего к ведомому
 - MISO (Master In Slave Out) — данные от ведомого к ведущему
 - SCLK — тактовый сигнал, формируемый ведущим
 - SS или CS (Slave Select / Chip Select) — выбор ведомого устройства
 
Режим синхронизации определяется:
- CPOL (Clock Polarity)
 - CPHA (Clock Phase)
 
Всего 4 режима SPI: 0, 1, 2, 3
⚙️ Где применяется
- Дисплеи (OLED, TFT)
 - Flash Memory, EEPROM, SD-карты
 - АЦП/ЦАП
 - Сенсоры (IMU, температурные и т.п.)
 - Между MCU и FPGA
 
✅ Преимущества
- Высокая скорость передачи (до десятков МГц)
 - Простота реализации
 - Поддержка full-duplex
 - Гибкая структура с множеством ведомых
 
❌ Недостатки
- Нет встроенной адресации (требует выделенного пина CS для каждого ведомого)
 - Не поддерживает hot-swap и acknowledgment (в отличие от I2C)
 - Не стандартизован на уровне верхнего протокола (разные устройства могут иметь несовместимые форматы)