Interfaz de periféricos serie AVR® (SPI)

El protocolo Serial Peripheral Interface (SPI) en los dispositivos AVR® permitirá que su microcontrolador AVR se comunique con otros muchos dispositivos al mismo tiempo. Use el bus SPI para comunicarse entre un dispositivo maestro y uno o múltiples dispositivos esclavos. SPI utiliza las líneas Master In Slave Out (MISO) y Master Out Slave In (MOSI) para comunicarse entre dispositivos, el Serial Clock (SCK) para mantener un reloj constante entre dispositivos y la línea Slave Select (SS) para seleccionar qué dispositivo periférico es comunicarse con el dispositivo maestro.

Sistema SPI

El sistema consta de dos registros de desplazamiento y un generador de reloj maestro. El maestro SPI inicia el ciclo de comunicación cuando tira hacia abajo del pin SS del esclavo deseado. Master y Slave preparan los datos que se enviarán en sus respectivos registros de desplazamiento, y el Master genera los pulsos de reloj requeridos en la línea SCK para intercambiar datos. Los datos siempre se cambian de Maestro a Esclavo en la línea MOSI, y de Esclavo a Maestro en la línea MISO. Después de cada paquete de datos, el maestro sincronizará el esclavo tirando de la línea SS hacia arriba.


Modo maestro

Cuando se configura como maestro, la interfaz SPI no tiene control automático de la línea SS. Esto debe ser manejado por el software del usuario antes de que la comunicación pueda comenzar. Cuando se hace esto, escribir un byte en el registro de datos SPI inicia el generador de reloj SPI, y el hardware cambia los ocho bits al esclavo. Después de cambiar un byte, el generador de reloj SPI se detiene, configurando el final de la bandera de transmisión (SPIF). Si se establece el bit de habilitación de interrupción de SPI (SPIE) en el registro de SPCR, se solicita una interrupción. El Maestro puede continuar desplazando el siguiente byte escribiéndolo en SPDR o señalando el final del paquete tirando hacia arriba de la línea Slave Select, SS. El último byte entrante se mantendrá en el Registro de almacenamiento intermedio para su uso posterior.

Modo esclavo

Cuando se configura como un Esclavo, la interfaz SPI seguirá durmiendo con MISO tri-declarado, siempre y cuando el pin SS se conduzca alto. En este estado, el software puede actualizar el contenido del SPI Data Register, SPDR, pero los datos no se desplazarán por los pulsos de reloj entrantes en el pin SCK hasta que el pin SS se accione poco. Como un byte se ha desplazado por completo, se establece el final de la bandera de transmisión (SPIF). Si se establece el bit de habilitación de interrupción SPI (SPIE) en el Registro de SPCR, se solicita una interrupción.

Fuente: AVR® Serial Peripheral Interface (SPI)

Comentarios

Entradas más populares de este blog

Resistencias

Guía de introducción de XC8