¿Cuál es la necesidad de los modos de transmisión en la interfaz periférica en serie?

Estoy pasando por la transmisión SPI para implementar en FPGA, mientras investigo, en algunos artículos como
https://en.wikipedia.org/wiki/Serial_Peripheral_Interface y este https://web.archive.org/web/20150413003534/http: //www.ee.nmt.edu/~teare/ee308l/datasheets/S12SPIV3.pdf Que dice en la Sección 4.4.1

Utilizando dos bits en el registro de control SPI1, el software selecciona una de las cuatro combinaciones de fase y polaridad del reloj en serie.

El bit de control de polaridad del reloj CPOL especifica un reloj alto o bajo activo y no tiene un efecto significativo en el formato de transmisión.

El bit de control de fase de reloj CPHA selecciona uno de dos formatos de transmisión fundamentalmente diferentes. La fase y la polaridad del reloj deben ser idénticas para el dispositivo SPI maestro y el dispositivo esclavo que se comunica. En algunos casos, la fase y la polaridad se cambian entre transmisiones para permitir que un dispositivo maestro se comunique con esclavos periféricos que tienen diferentes requisitos.

Mi pregunta es ¿Cuál es la necesidad de especificar los diferentes modos en SCK? Aunque la última línea intenta razonar, suena vaga y no especifica la razón real. ¿Cuál es la razón real para especificar la polaridad y la fase de SCK
? se determina el modo.
Gracias.

La respuesta corta es que no existe un estándar SPI "oficial" como el que existe para muchas otras interfaces (como I2C). Diferentes dispositivos SPI tienen diferentes requisitos de temporización.
Hmm, eso lo explica un poco, pero espero una respuesta que elabore su punto, por ejemplo, cómo la asignación eléctrica de diferentes modos de lectura resolverá los requisitos de tiempo, perdóneme si no puedo medir que soy nuevo en esto.
Sí, está de acuerdo con Caleb Reister, incluso esos modos y puntos de muestreo se modifican según el fabricante para obtener velocidades de datos más altas en el bus SPI.

Respuestas (1)

El módulo SPI en un microcontrolador se puede usar para hablar con varios chips esclavos que pueden usar diferentes modos. Por ejemplo, un chip puede requerir flancos de reloj ascendentes para cargar datos, y otro chip puede requerir flancos descendentes de reloj para cargar datos. La comunicación tiene que usar la configuración correcta para cada chip o no puede transferir datos de manera confiable, por lo que es necesario seleccionar qué configuración usar. Entonces, la última línea con la que está confundido solo significa que una configuración se usa con un chip y entre transmisiones, la configuración se puede cambiar para que otra configuración se pueda usar con otro chip.