The SPI interface
There is another type of serial communication interface named the Serial Peripheral Interface (SPI). This interface has to be enabled via raspi-config
(this is similar to enabling serial port interface earlier in this chapter). Using the SPI interface is similar to that of I2C interface and the serial port.
Typically, an SPI interface consists of a clock line, data-in, data-out, and a Slave Select (SS) line. Unlike I2C communication (where we could connect multiple masters), there can be only one master (the Raspberry Pi Zero), but multiple slaves on the same bus. The SS pin enables selecting a specific sensor that the Raspberry Pi Zero is reading/writing data when there are multiple sensors connected to the same bus.
Example 4 – writing to external memory chip
Let's review an example where we write to a flash memory chip on the Sensorian add-on hardware via the SPI interface. The drivers for the SPI interface and the memory chip are available from the same GitHub repository...