SPI (Serial Peripheral Interface) to szybki, synchroniczny protokół komunikacyjny, wykorzystywany do przesyłania danych między mikrokontrolerami a urządzeniami peryferyjnymi na krótkie odległości. Wykorzystuje cztery główne linie:
- MOSI (Master Out Slave In) – linia danych wysyłanych od mastera do slave’a.
- MISO (Master In Slave Out) – linia danych zwrotnych od slave’a do mastera.
- SCK (Serial Clock) – sygnał zegarowy generowany przez mastera.
- SS/CS (Slave Select/Chip Select) – linia wyboru urządzenia slave (aktywna w stanie niskim).
W SPI dane są przesyłane bit po bicie, a komunikacja odbywa się w pełnym dupleksie (jednoczesna transmisja i odbiór). Może pracować z jednym lub wieloma urządzeniami slave, gdzie każde ma swój własny pin CS. Standardowe prędkości transmisji wynoszą od kilku kHz do kilkudziesięciu MHz, co sprawia, że SPI jest znacznie szybszy niż I²C. Jest szeroko stosowany w wyświetlaczach TFT, kartach SD, pamięciach FLASH, przetwornikach ADC/DAC i czujnikach. W porównaniu do I²C, wymaga większej liczby przewodów, ale zapewnia wyższą prędkość i stabilność transmisji. Popularny w systemach Arduino, ESP32, STM32 oraz w urządzeniach wbudowanych wymagających szybkiej komunikacji.