The Serial Peripheral Interface (SPI) is a synchronous serial data interface, developed by Motorola. It is used for connecting various peripheral devices. SPI operates either in full-duplex or in half-duplex mode and can transfer data over short distances at high speeds. During data transfer devices can work either in master or in slave mode. The source of synchronization is the system clock, which is generated by the master. The SPI interface allows to connect one or more slave devices to a single master device via the same bus.
SPI Key Features
- Read, write and full-duplex (simultaneous read/write) data transactions;
- SPI master and SPI slave configuration;
- Configurable SPI bus clock polarity, phase and frequency;
- Configurable number of bits to transfer;
- Communication with serial external devices (ADC and DAC, RTC, temperature and pressure sensors, LCD controller, etc.).
- SPI is considered the fastest synchronous serial data transfer interface;
- SPI is a very simple communication protocol;
- Supports full-duplex communication;
- Requires more traces on the board (X + 3, where X is the number of slave devices);
- No hardware flow control;
- No slave acknowledgment;
- May prone to noise spikes causing faulty communication.