SPI Overview & History

SPI (Serial Peripheral Interface) is a synchronous serial communication protocol invented by Motorola in the 1980s. It is widely used for high-speed communication with peripherals like ADCs, DACs, displays, and flash memory.

SPI Technical Function

SPI transfers data using **shift registers** in master and slave devices:

  1. Master sets CS low to select a slave.
  2. Master generates SCLK and shifts out data on MOSI.
  3. Slave shifts data out on MISO simultaneously (full duplex).
  4. Data is latched on the rising/falling edge of SCLK depending on mode (CPOL/CPHA).
  5. Master sets CS high to end the transaction.

SPI Diagram

SPI timing diagram with Chip Select, for both clock phases