Comunicación SPI

12
Serial Periferial Interface (SPI) Carballo Valderrábano Karla De la Cruz Celis José de Jesús Morones Reyes Jonathan Vázquez Vázquez Cristian Zambrano Saucedo Adán

Transcript of Comunicación SPI

Page 1: Comunicación SPI

Serial Periferial Interface (SPI)

Carballo Valderrábano Karla De la Cruz Celis José de Jesús

Morones Reyes JonathanVázquez Vázquez CristianZambrano Saucedo Adán

Page 2: Comunicación SPI

SPI•Bus de tres líneas• Paquetes de información de 8 bits.• El bit más significativo (MSB) se transmite primero. •Comunicación serial full duplex. •Dispositivos conectado al bus: Master y Slave.• Emplea un registro de desplazamiento para

transmitir la información.

Page 3: Comunicación SPI

SPI• Línea de reloj (SCLK): Generada

por el maestro y sincroniza la transferencia de datos. • Línea MOSI (Master Out Slave

In): Transporta los datos del maestro hacia el esclavo. • Línea MISO (Master In Slave

Out): Transporta los datos del esclavo hacia el maestro.• Línea selectora (Chip Select o

Select Slave): Activa al esclavo (nivel lógico bajo).

Page 4: Comunicación SPI

SPI (FUNCIONAMIENTO)•Maestro configura el reloj con una f £ máx f soportada por el

esclavo.•Maestro transmite 0 lógico para seleccionar esclavo.•Cada ciclo de reloj: Transmisión de bits en líneas MOSI y MISO• 2 registros de corrimiento conectados en forma de anillo.• El primer bit transmitido es el más significativo, mientras se

transmite un nuevo bit menos significativo al mismo registro.

Page 5: Comunicación SPI

SPI (FUNCIONAMIENTO)• El maestro y esclavo cambian registros, toman los

valores y hacen algo con ellos.• Si hay más datos que cambiar, los registros de

corrimiento son cargados con el dato nuevo y el proceso se repite.•Cuando no hay más datos que transmitir, el maestro

deja de cambiar su reloj y deselecciona al esclavo.

Page 6: Comunicación SPI

SPI – MODOS DE RELOJ

• CPOL (Clock Polarity): Determina el estado Idle (inactivo) de la señal de reloj.• CPHA (Clock Phase): Determina en que flanco del reloj se

recibe/ transmite un dato.

Page 7: Comunicación SPI

MASTER SYNCHRONOUS SERIAL PORT (MSSP) MODULE

• Interfaz Serial• Modos• Serial Peripherial Interface (SPI)• Inter-Integrated Circuit (I2C)

• Registros de control• Registro de estado (SSPSTAT)• 2 registros de control(SSPCON1 y SSPCON2).

Page 8: Comunicación SPI

SPI MODE• 8 bits de datos transmitidos y

recibidos simultáneamente.• 4 modos de SPI soportados.• Pins utilizados:• Serial Data Out (SDO) – RC7/RX/DT/SDO• Serial Data In (SDI) –

RB0/AN12/INT0/FLT0/SDI/SDA• Serial Clock (SCK) –

RB1/AN10/INT1/SCK/SCL• Slave Select (SS) –

RA5/AN4/SS/HLVDIN/C2OUT

Page 9: Comunicación SPI

SPI MODE• Registro de control (SSPCON1)• Registro de estado (SSPSTAT)• Buffer serie de transmisión/recepción (SSPBUF)• Registro de desplazamiento (SSPSR) – No accesible

directamente, convierte datos en formato serial.

Page 10: Comunicación SPI

SSPSTAT

• SMP: Sample: Momento de muestreo de señal de datos (al final o a la mitad de cada bit transmitido, modo maestro)• CKE: SPI Clock Select: En qué flanco se transmiten

sincrónicamente los bits de datos • BF: Buffer Full Status bit: Estado de SSPBUF (recepción

completa o incompleta del dato)

Page 11: Comunicación SPI

SSPCON1

•WCOL: Write Collision Detect: Informa si se ha intentado escribir un dato en SSPBUF cuando aún guardaba al dato anterior• SSPOV: Receive Overflow Indicator: Indica si se ha dejado de leer

un dato recibido y depositado en SSPBUF• SSPEN: Habilita puerto serial y configura SCK, SDO, SDI y SS

como pins del puerto serial (1)• SSPM3:SSPM0: • Programan al dispositivo como maestro o esclavo• Habilita la terminal SS como control de servidor• Selecciona la frecuencia de trabajo (1/4, 1/16, 1/64 del oscilador o TMR2)

Page 12: Comunicación SPI

SPI

SSPIF -> PIR para generar una interrupción