SPI (Serial Peripheral Interface) bus was originally developed by Motorola for use with their microcontrollers. Due to the simplicity of the bus, other manufacturers adopted it and it has become widely available in components used in embedded system designs. It is commonly used for chip-to-chip communications between a CPU and keyboard, display, ADCs and DACs, real-time clocks, EEPROM, SD and other memory devices.
SPI is a synchronous bus with four lines: Data - master output/slave input (MOSI) and master input/slave output (MISO), clock (SCLK), and slave select (SS or CS). SPI is a full duplex standard, meaning signals can be transmitted in both directions simultaneously, with data rates from a few Mb/s to tens of Mb/s.
Devices communicate using a master-slave architecture with a single master. The master device initiates the frame for reading and writing. Multiple slave devices can be addressed with individual slave select lines.
SPI waveforms can be decoded with PicoScope: From the Tools menu select Serial Decoding then Create and select SPI from the list of available protocols.