Você está na página 1de 4

Comunicacin SPI - PIC 16F877A

El modo de comunicacin serial SPI, permite el envi y recepcin simultanea de 8 bit. Existen
cuatro modos de configuracin que dependen de la polaridad y fase del reloj (CKP y CKE), los
cuatro modos son soportados por el PIC 16F877A. Para la comunicacin se requieren bsicamente
de tres pines:
SDO (Serial Data Out) - RC5
SDI (Serial Data In) - RC4
SCK (Serial Clock) - RC3
Adicionalmente para la operacin en modo de Esclavo, se usa la terminal, Slave Select (SS') -
RA5.
Registros.
Los registros a usar son:
SSPCON1 - Control Register
SSPSTAT - Status Register
SSPBUF - Buffer Register
SSPSR - Shift Register (no implementado fsicamente, pero se puede direccionar)
SSPSTAT. Muestra el Status de la transmisin, el bit BF nos indica cuando la transmisin del dato
esta completa, los bits que no estn indicados en la figura no se usan en modo SPI.


SSPCON1. Este es el registro de controla para la comunicacin SPI, nos indica si hay una colisin
de informacin, Overflow, habilita el SSPI, polaridad del reloj, y otras configuraciones como Master
o Slave, y velocidad de transmisin.


Inicio de operacion.
Para iniciar la operacin SPI, varias opciones deben ser seleccionadas, tales son:
Master Mode - SCK es salida
Slave Mode - SCK es entrada
Clock Polarity - Polaridad del Clock
Sample Phase Data Input - Al inicio o final del tiempo de salida
Clock Edge - Salida de info al subir o bajar SCK
Clock Rate - Solo Para Master Mode
Slave Select Mode - Solo Para Slave Mode
La informacin a transmitir es escrita en el registro SSPBUF, y pasa al SSPSR. El SSPSR
transmite el byte mandando primero al bit MSb. Si mientras est enviando se trata de escribir otro
byte a SSPBUF, se pone en uno el bit WCOL indicando una colisin de informacin (limpiar por
software)
En la recepcin conforme el SSPSR recibe los 8 bits, los va pasando uno a uno al SSPBUF,
cuando termina de enviar el byte, se pone en uno el bit BF (Buffer Full) y la bandera de interrupcin
SSPIF.
Todos los registros asociados con la transmisin SPI:

Conexin tpica SPI:


Modulo MSSP del PIC 16F877A
El microcontrolador PIC 16F877A tiene un modulo llamado MSSP (Master Synchronous Serial
Port) que puede ser configurado para trabajar en dos modos de comunicacin: SPI (Serial
Peripheral Interfase) e I2C (Inter-Integrated Circuit).
Ambos modos pueden usarse para comunicarse con otros dispositivos compatibles con estos
protocolos de comunicacin, como pueden ser EEPROMs, Shift registers, Convertidores A/D, otros
microcontroladores, etc.
El modulo MSSP tiene asociados tres registros: Status Register (SSPSTAT), y dos registros de
control (SSPCON1 y SSPCON2), el uso de cada registro y su configuracin individual depende del
modo de comunicacin que se est empleando (SPI o I2C).
Diagrama a Bloques del modulo MSSP.

Como se puede ver en la imagen, el MSSP toma como base de tiempo el Timer 2, las terminales
SDI y SDO van directamente sobre el Shift Register SSPSR, lo que permite la comunicacin serial.

Você também pode gostar