Please enable JavaScript.
Coggle requires JavaScript to display documents.
Protocolo de Comunicación SPI (Serial Peripheral Interface) - Coggle…
Protocolo de Comunicación SPI (Serial Peripheral Interface)
DEFINICIÓN Y NATURALEZA
Concepto: Es un estándar de comunicación de datos síncrono que opera en modo full-duplex (envío y recepción simultáneos).
Arquitectura: Se basa en una relación Maestro-Esclavo (Master-Slave). El dispositivo "Maestro" (generalmente un microcontrolador) controla el reloj y la temporización, mientras que los periféricos (sensores, memorias) actúan como "Esclavos".
Propósito: Diseñado para distancias cortas y alta velocidad dentro de una misma placa de circuito impreso (PCB).
TOPOLOGÍAS DE CONEXIÓN
Configuración Independiente (Estándar):
Descripción: Todos comparten SCK, MOSI y MISO, pero cada esclavo tiene su propia línea SS directa al maestro.
Detalle: Requiere más pines en el microcontrolador (uno extra por cada esclavo).
Daisy Chain (Cadena de Margarita):
Descripción: La salida de un esclavo se conecta a la entrada del siguiente. Comparten una sola línea SS.
Detalle: Ahorra pines, pero es más lento y complejo de programar (los datos deben atravesar todos los dispositivos).
LÍNEAS DE COMUNICACIÓN (BUS SPI)
SCK (Serial Clock):
Descripción: Pulso de reloj generado exclusivamente por el Maestro.
Función: Sincroniza la transmisión de bits. Cada pulso marca el envío/lectura de un bit.
MOSI (Master Out / Slave In):
Descripción: Línea de salida del Maestro y entrada al Esclavo.
Función: Canal por donde el Maestro envía instrucciones o datos al periférico.
MISO (Master In / Slave Out):
Descripción: Línea de entrada al Maestro y salida del Esclavo.
Función: Canal por donde el Esclavo responde o envía datos (ej. lecturas de un sensor) al Maestro.
MODOS DE TRANSMISIÓN (POLARIDAD Y FASE)
La comunicación depende de cómo se configura el reloj. Existen 4 modos basados en dos parámetros:
CPOL (Clock Polarity): Define el estado del reloj cuando está en reposo (Idle).
CPOL=0: Reposo en Bajo (Low).
CPOL=1: Reposo en Alto (High).
CPHA (Clock Phase): Define en qué borde del pulso de reloj se capturan los datos.
CPHA=0: Muestreo en el primer borde (subida o bajada según CPOL).
CPHA=1: Muestreo en el segundo borde (bajada o subida tras el pulso).