Está en la página 1de 24

MICROCONTROLADORES

PIC 16F877

18 DE JULIO DE 2012
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP

Master Synchronous Serial Port proporciona una


excelente interfaz de comunicación de los
microcontroladores con otros microcontroladores y
diversos periféricos como: memorias EEPROM
serie, conversores A/D, controladores de displays,
etc.
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP

Master Synchronous Serial Port admite dos de las


alternativas más usadas en la comunicación serie
síncrona:

 SPI ( Serial Peripheral Interface )


 I2C ( Inter – Integrated Circuit )
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP

 SPI : Comunicación serie utilizada principalmente por


memorias RAM y EEPROM.

 I2C : Actualmente existe una variedad de periféricos


capaces de trabajar con este protocolo: memorias,
controladores, relojes, conversores, etc.
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP
En el módulo MSSP se encuentran los siguientes dos
registros:

 SSPSR:Registro de desplazamiento que transforma la


información serie en paralelo y viceversa.

 SSPBUF: Registro que actúa como búffer de la


información que recibe o transmite.
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP
FUNCIONAMIENTO DEL MÓDULO MSSP

 TRANSMISION: El byte a transmitir se carga en el


registro SSPBUF a través del bus de datos interno y
automáticamente se traspasa al registro SSPSR, que va
desplazando bit a bit el dato, sacándolo
ordenadamente al exterior al ritmo de los impulsos de
reloj.
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP
FUNCIONAMIENTO DEL MÓDULO MSSP

 RECEPCION: Los bits van ingresando al ritmo de


reloj por un pin y se van desplazando en el registro
SSPSR hasta que lo llenan, en cuyo momento la
información se traspasa al SSPBUF, donde queda
lista para su lectura.
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP
MODULO DE COMUNICACIÓN
SERIE SINCRONA - MSSP

FUNCIONAMIENTO DEL MÓDULO MSSP

 RECEPCION: Al recibir los 8 bits en SSPSR, se


traspasa dicha información a SSPBUF, luego el bit
BF (Buffer Full) se coloca a “1”, al igual que la
bandera de interrupción SSPIF.
Cualquier escritura en el SSPBUF se ignora durante
una transferencia de información y se señala
colocando a “1” el bit WCOL.
MODO SPI
Permite la transferencia de datos de 8 bits en serie, que
pueden ser transmitidos y recibidos de forma síncrona y
simultánea.

Se utilizan tres líneas para la comunicación:

 SDO(Serial Data Out): Salida de datos en serie -- RC3.


 SDI(Serial Data In): Entrada de datos en serie – RC4.
 SCK(Serial clock): Reloj de sincronización – RC5.
MODO SPI
SS SS

PIC MAESTRO RA5/SS# RA5/SS#


PIC esclavo 1 PIC esclavo 2
PIC 16F87X SDI SDO CLK SDI SDO CLK

RC3/SDO SDO
RC4/SDI SDI
RC5/SCK SCK

Comunicación SPI entre un PIC maestro y otros dos


esclavos.
MODO SPI
 La conexión habitual del PIC maestro se suele
realizar con circuitos de memoria con el objeto de
ampliar su capacidad.
 Cuando el PIC trabaja como maestro hay que
programar la línea RC5/SDO como salida, la línea
RC4/SDI como entrada y la línea RC3/SCK
también como salida.
 Si actuase como esclavo, la línea RC3/SCK debería
configurarse como entrada y la RA5/SS# debería
conectarse a tierra.
MODO SPI
REGISTROS

El módulo MSSP tiene cuatro registros para la


operación en modo SPI. Estos son:

 Registro de control MSSP (SSPCON y SSPCON2)


 Registro estado MSSP (SSPSTAT)
 Registro Búffer de transmisión y recepción serial
(SSPBUF)
 Registro de desplazamiento MSSP (SSPSR)
MODO SPI
REGISTROS
Los registros SSPCON y SSPSTAT son registros de
control y estado en el modo de operación SPI.

El Registro SSPCON es de escritura y lectura.


El uso de éstos registros (SSPCON y SSPCON2) y sus
configuraciones individuales de los bits difieren
significativamente, dependiendo sí el MSSP es operado en
modo SPI ó I2C.

Los seis bits más bajos del registro SSPSTAT son de sólo
lectura y los dos más altos de lectura/escritura.
REGISTRO SSPSTAT

SMP: Bit de muestra


SPI en modo máster:
1: El dato de entrada se muestrea al final del impulso de reloj
0: El dato de entrada se muestrea en la mitad del impulso de reloj

SPI en modo esclavo:


SMP debe ser clareado cuando SPI es usado en modo esclavo.
REGISTRO SSPSTAT
CKE: Bit de selección del reloj del SPI
1: La transmisión ocurre en la transición del estado
activo al estado en reposo del reloj.
0: La transmisión ocurre en la transición del estado
en reposo al estado activo del reloj.
Nota: La polaridad del estado del reloj fijado por
el bit CKP (SSPCON1<4>)

D/A: Data/Dirección del bit


Usado sólo en el modo I2C.
REGISTRO SSPSTAT
P: Bit de stop
Usado sólo en el modo I2C. Este bit es clareado
cuando el módulo MSSP es deshabilitado, SSPEN
es clareado.

S: Bit de start
Usado sólo en el modo I2C.

R/W: Lectura/escritura bit de información


Usado sólo en el modo I2C.
REGISTRO SSPSTAT
UA: Bit de actualización de la dirección
Usado sólo en el modo I2C.

BF: Bit de estado de Búffer lleno (Sólo en el modo


de recepción)
1: Recepción completa, SSPBUF esta lleno.
0: Recepción incompleta, SSPBUF está vaciía.
REGISTRO SSPCON1

WCOL: Bit que detecta la colisión en la escritura


(Sólo en el modo de transmisión)
1: El registro SSPBUF esta siendo escrito mientras
se sigue transmitiendo la palabra anterior.
0: No hay colisión.
REGISTRO SSPCON1
SSPOV: Bit indicador de sobreflujo en la recepción.
SPI en modo esclavo:
1: Un nuevo byte es recibido mientras el registro
SSPBUF aún mantiene el dato anterior. En caso
de sobreflujo, la data en SSPSR se pierde. El
sobreflujo puede ocurrir sólo en modo esclavo. El
usuario debe leer el SSPBUF si sólo esta
transmitiendo datos, para evitar el desbordamiento
de ajuste (Debe ser clareado por software).
0: No hay sobreflujo.
REGISTRO SSPCON1
Nota: En el modo maestro el bit de desbordamiento no
se ha establecido ya que cada nueva recepción (y
transmisión) es inicializada escribiendo en el
registro SSPBUF.

SSPEN: Bit que habilita el puerto serial síncrono.


1: Habilita el puerto serial y configura SCK, SDO,
SDI y SS como pines de puerto serial.
0: Deshabilita el puerto serial y configura estos pines
como pines de I/O.
Nota: Cuando son habilitados, hay que configurarlos
como entradas o salidas.
REGISTRO SSPCON1
CKP: Bit que selecciona la polaridad del reloj.
1: El estado de reposo para el reloj es el nivel alto.
0: El estado de reposo para el reloj es el nivel bajo.

SSPM3:SSPM0: Bit de selección del modo del


puerto serial síncrono.
MANEJO Y
PROGRAMACION
EN EL MODO SPI

También podría gustarte