SPI
Contenido
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
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.