Your Arduino talks to an SD card at millions of bits per second. A TFT display refreshes 320×240 pixels of colour data in milliseconds. A 16-bit ADC streams 1 million samples per second. These all use SPI — the speed champion of short-range embedded communication.
SPI is a synchronous serial protocol using four wires: MOSI (master out), MISO (master in), SCLK (clock), and CS/SS (chip select). Unlike I²C, SPI has no addressing — you select a device by pulling its CS pin LOW.
MOSI carries data from master to slave. MISO carries data from slave to master. SCLK is the clock generated by the master. CS (active LOW) selects which slave is active — you need one CS line per device.
Four SPI modes (0–3) define whether data is sampled on the rising or falling clock edge, and whether the clock idles HIGH or LOW. Most sensors use Mode 0 (CPOL=0, CPHA=0); check your datasheet.
Read the full guide on MakersDeck.