📌 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)
- Не стандартизован на уровне верхнего протокола (разные устройства могут иметь несовместимые форматы)