The I²C bus was developed in 1982; its original purpose was to provide an easy way to connect a
CPU to peripherals chips in a TV set. Peripheral devices in embedded systems are often
connected to the microcontroller as memory-mapped I/O devices. One common way to do this is
connecting the peripherals to the microcontroller parallel address and data busses. This results in
lots of wiring on the PCB (printed circuit board) and additional ‘glue logic’ to decode the address
It seems the Serial Peripheral Protocol (SPI) was first introduced with the first microcontroller
deriving from the same architecture as the popular Motorola 68000 microprocessor, announced
in 1979. SPI defined the external microcontroller bus, used to connect the microcontroller
peripherals with 4 wires. Unlike I²C, it is hard to find a formal separate ‘specification’ of the SPI
bus – for a detailed ‘official’ description, one has to read the microcontrollers data sheets and
associated application notes.