SPI

De ArduWiki
Revisión del 11:15 19 jun 2018 de Jopapa (Discusión | contribuciones) (Métodos)

Saltar a: navegación, buscar

Descripción

La librería permite comunicarse con dispositivos SPI, usando Arduino como elemento maestro (master) Serial Peripheral Interface (SPI) es un protocolo de de comunicación serie rápida entre dispositivos a corta distancia. Aparte de entre Arduino y periféricos, también permite comunicación entre microcontroladores. En una comunicación SPI hay siempre un maestro (master) que controla los periféricos. Típicamente hay tres líneas de control comunes a todos los elementos-

  • MISO (Master In Slave Out)- Línea para mandar datos al maestro desde el esclavo
  • MOSI (Master Out Slave IN)- Línea para mandar datos a los periféricos
  • SCK (Serial Clock)- Pulsos de reloj para sincronizar la transmisión de datos generada por el maestro a una línea específica de cada periférico.
  • SS (Slave Select)- El pin en cada periférico que el maestro activa o desactiva para que los datos lleguen al dispositivo que queremos.

Cuando el SS (Slave Select) esta bajo (low), el comunica con el maestro y lo ignora cuando esta en alto (high). Esto nos permite tener múltiples dispositivos compartiendo las mismas líneas de MISO, MOSI y CLK.

Placas aplicables

Sintaxis

Para escribir código para un dispositivo SPI hay que saber unas pocas cosas.

  • ¿Cual es la máxima velocidad del dispositivo? Esto es controlado por el primer parámetro in el SPISetting. Si se usa un chip a 15MHz, use 15000000. Arduino automaticamente usará la mejor velocidad igual o menor que esta.
  • ¿Estan los datos desplazados (shifted) en el mayor Most Significant Bit (MSB) o menor Least Significant Bit (LSB)? Esto es controlado por el segundo parámetro del SPISetting, o sea MSBFIRTS o LSBFIRTS. La mayoría de chip SPI usan el MSB.
  • ¿Esta el reloj de datos con alto o bajo? ¿Hay muestras en el borde ascendente o descendente de los pulsos de reloj? Este modo es controlado por el tercer parámetro del SPISetting.

Métodos

En términos generales, hay cuatro modos de transmisión. Estos modos controlan si los datos se desplazan hacia adentro y hacia afuera en el borde ascendente o descendente de la señal del reloj de datos (fase del reloj), y si el reloj está inactivo cuando está alto o bajo (polaridad del reloj). Los cuatro modos combinan polaridad y fase según esta tabla:

Advertencias

Tener en cuenta que el estandar para SPI no existe y su implementación varia levemente entre dispositivos. Hay que leer la hoja de datos de cada uno.

Ejemplo


Vea también

Referencias externas