Serial Peripheral Interface
| Type | Serial communication bus | ||
|---|---|---|---|
| Production history | |||
| Designer | Motorola | ||
| Designed | Around early 1980s | ||
| Manufacturer | Various | ||
| Daisy chain | Depends on devices | ||
| Connector | Unspecified | ||
| Electrical | |||
| Max. voltage | Unspecified | ||
| Max. current | Unspecified | ||
| Data | |||
| Width | 1 bit (bidirectional) | ||
| Max. devices | Multidrop limited by slave selects. Daisy chaining unlimited. | ||
| Protocol | Full-duplex serial | ||
| Pinout | |||
| MOSI | Master Out Slave In | ||
| MISO | Master In Slave Out | ||
| SCLK | Serial Clock | ||
| SS | Slave Select (one or more) | ||
| (pins may have alternative names) | |||
Serial Peripheral Interface (SPI) is a de facto standard (with many variants) for synchronous serial communication, used primarily in embedded systems for short-distance wired communication between integrated circuits.
SPI follows a master–slave architecture, where a device (variously called master, leader, controller, main...) orchestrates communication with one or more devices (variously called slave, follower, target, sub...) by driving the clock and chip select signals. As there is no formal standard, some manufacturers introduce devices with the ability to change their roles on the fly.
Motorola's original specification (from the early 1980s) uses four logic signals, aka lines or wires, to support full duplex communication. It is sometimes called a four-wire serial bus to contrast with three-wire variants which are half duplex, and with the two-wire I²C and 1-Wire serial buses.
Typical applications include interfacing microcontrollers with peripheral chips for Secure Digital cards, liquid crystal displays, analog-to-digital and digital-to-analog converters, flash and EEPROM memory, and various communication chips.
Although SPI is a synchronous serial interface, it is different from Synchronous Serial Interface (SSI). SSI employs differential signaling and provides only a single simplex communication channel.