SPI bus
The serial peripheral interface bus, most commonly known as SPI, provides a different approach, based on master/slave communication. As the name suggests, the interface was initially designed to control peripherals. This reflects on the design, as all the communication is always initiated by the master on the bus. Thanks to the full-duplex pin configuration and the synchronized clock, it may be much faster than asynchronous communication, due to the better robustness to clock skews between the systems sharing the bus. SPI is widely used as a communication protocol for a number of different devices, due to its simple logic and the flexibility given by the fact that the slave does not have to be preconfigured to communicate at a predefined speed that matches the one on the master. Multiple peripherals can share the same bus, as long as media access strategies are defined. A common way for a master to control one peripheral at a time is by using separate GPIO lines to control the slave...