Bus SPI

El SPI es un protocolo de comunicación síncrona de 4 hilos, entre dispositivos electrónicos presentado por Motorola en 1982, es un sistema de comunicación de muy corta distancia, normalmente dentro la placa de circuito impreso.
Es un protocolo de transmisión que permite alcanzar velocidades muy altas y que se diseñó pensando en comunicar un micro controlador con distintos periféricos y que funciona a full dúplex
 
SPI utiliza una solución síncrona, porque utiliza unas líneas diferentes para los datos y el Clock. El Clock es una señal que indica al que escucha exactamente cuándo leer las líneas de datos, con lo que el problema de perdida de sincronía se elimina de raíz.
Por eso mismo, no se necesita pactar la velocidad de transmisión, ya que será el Clock quien fije la velocidad y puede ser variable a lo largo de la comunicación sin que sea un problema
En el caso de que tengamos varios dispositivos:
 
Por cada dispositivo, necesitamos una linea de selección.
 
 
Comparación entre SPI e I2C
Ventajas del Bus SPI
  • Comunicación Full Duplex. Envía y recibe a la vez lo que aumenta la velocidad.
  • Más rápido que el I2C y que el puerto Serie asíncrono norma.
  • El tamaño de los mensajes puede ser arbitrariamente grande
  • Se requiere un hardware sencillo
  • Requiere un menor consumo y menor electrónica de conexión que el I2C
  • Como el Clock lo proporciona el master, los esclavos no necesitan osciladores
Las desventajas son:
  • Necesita más pines que el I2C o el Puerto serie normal.
  • Las comunicaciones tiene que estar perfectamente establecidas de antemano. No puedes enviar mensajes de diferentes longitudes cuando te convenga.
  • No hay señal de conforme del esclavo, se espera que obedezca y punto.
  • Master único y casi sin posibilidad de master múltiple
  • Funciona solo en distancias muy cortas
  • Normalmente necesita un pin adicional por cada esclavo.
Pines en el arduino
MOSI 51, ICSP-4
MISO 50, ICSP-1
SCK  52, ICSP-3
SS    53