Presentación desarrollada para la materia de Desarrollo de Sistemas basados en Microcontroladores y DSPs de la carrera de Ingeniería en Mecatrónica en la Benemérita Universidad Autónoma de Puebla acerca del protocolo de comunicación SPI (Serial Periferial Interface)
2. 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.
3. 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).
4. 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.
5. 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.
6. 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.
7. 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).
8. 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
9. 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.
10. 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)
11. 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