Spi
Spi
Spi
Protocolo
INGENIERIA EN MICROCONTROLADORES
Teora y Aplicaciones
INGENIERA EN MICROCONTROLADORES
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
Capitulo 1
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
Cada esclavo es seleccionado por un nivel lgico bajo (0) a travs de la lnea (CS = Chip Select o SS Slave Select ). Los datos sobre este bus pueden ser transmitidos a una razn de casi cero bits /segundo hasta 1 Mbits/ segundo. Los datos son transferidos en bloques de 8 bits, en donde el bits mas significativo (MSB) se transmite primero.
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
Existen cuatro modos de reloj definidos por el protocolo SPI, estos modos son : Modo A Modo B Modo C Modo D Estos determinan el valor de la polaridad del reloj (CPOL = Clock Polarity) y el bit de fase del reloj (CPHA = Clock Phase). La mayora de los dispositivos SPI pueden soportar al menos 2 modos de los 4 antes mencionados. Los diferentes modos son ilustrados a continuacin. El BIT de Polaridad del reloj determina el nivel del estado de Idle del reloj y el BIT de Fase de reloj determina que flanco recibe un nuevo dato sobre el bus. El modo requerido para una determinada aplicacin, esta dado por el dispositivo esclavo. La capacidad de multi-modo combinada con un simple registro de desplazamiento hace que el bus SPI sea muy verstil.
Polaridad del reloj (CPOL=Clock Polarity) Si CPOL esta en un 0 lgico y ningn dato esta siendo transferido (Estado Idle), el maestro mantiene la lnea SCLK en bajo. Si CPOL esta en un 1 lgico, el maestro desocupa la lnea SCLK alta.
Fase Del Reloj (CPHA) CPHA, conjuntamente con CPOL, controlan cuando los nuevos datos son colocados en el bus. Si CPHA es igual a un 1 lgico, los datos son desplazados sobre la lnea MOSI segn lo determinado por el valor de CPOL.
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
Para CPHA = 1: Si CPOL = 1, los nuevos datos se colocados sobre la lnea cuando el flanco del reloj es descendente y se leen cuando el flanco del reloj es ascendente . Si CPOL = 0, los nuevos datos se ponen en la lnea cuando el flanco del reloj es ascendente y se leen cuando el reloj tiene un flanco descendente. Si CPHA = 0, el reloj de cambio es la OR de SCLK con la terminal Chip Select. Tan pronto como el terminal Chip Select se coloca en un nivel lgico 0, los nuevos datos se ponen en la lnea y el primer filo de del reloj se leen los datos. Si CPOL se activa a un nivel lgico 1, el primer borde de reloj baja y los bits de datos subsecuentes se leen en cada filo de bajada sobre la lnea de reloj. Cada nuevo bit se pone en la lnea cuando el reloj tiene un flanco ascendente de Reloj. Si CPOL es cero, el primer filo de reloj ascendente y los bits de datos subsecuentes se leen en cada filo ascendente de reloj. Cada nuevo bit se coloca en la lnea cuando el filo del reloj baja.
En resumen, Si CPHA=1, la transferencia (datos vlidos ledos por el receptor) comienza en el segundo filo de reloj. Si CPHA=0, la transferencia comienza en el primer filo de reloj. Todas las transferencias subsecuentes dentro del byte ocurren en cada filo de reloj. Vase las siguiente figuras, en todos los casos, los datos se leen a la mitad del ciclo de reloj despus de que se ponen en la lnea de datos.
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
Figura 1: Modo A
Figura 2: Modo B
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
Figura 3: Modo C
Figura 4: Modo D
( S E R I A L
P E R I P H E R I C A L
I N T E R F A C E )
S P I
PROTOCOLO SPI