Para la comunicacion se requieren basicamente de tres pines:
- SDO (Serial Data Out) - RC5
- SDI (Serial Data In) - RC4
- SCK (Serial Clock) - RC3
Registros.
Los registros a usar son:
- SSPCON1 - Control Register
- SSPSTAT - Status Register
- SSPBUF - Buffer Register
- SSPSR - Shift Register (no implementado fisicamente, pero se puede direccionar)
SSPCON1. Este es el registro de controla para la comunicacion SPI, nos idica si hay una colision de informacion, Overflow, habilita el SSPI, polaridad del reloj, y otras configuraciones como Master o Slave, y velocidad de transmision.
Inicio de operacion.
Para inciar la operacion 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
En la recepcion conforme el SSPSR recibe los 8 bits, los va pasando uno a uno al SSPBUF, cuando temina de enviar el byte, se pone en uno el bit BF (Buffer Full) y la bandera de interrupcion SSPIF.
Todos los registros asociados con la transmision SPI:
Conexion tipica SPI:
.
2 comentarios:
Es muy practico para entender mejor la comuncacion SPI
Hola.
Muy buena información. Estoy intentando comunicar un PIC16F73 con el AD420 y espero que esto me sea de gran ayuda.
Gracias
Publicar un comentario