especificaciones SPI

1

Necesito programar (en Verilog) un controlador periférico conectado a un FPGA a través de 4 pines SPI estándar. He estado tratando de encontrar una fuente autorizada que especifique claramente los diagramas de tiempo para las solicitudes de lectura y escritura, pero en ninguna parte encontré lo que quería.

¿Dónde puedo encontrar los diagramas de tiempo necesarios para programar un controlador conectado a un FPGA a través de pines SPI?

[ Aquí está la hoja de datos del periférico con el que me gustaría comunicarme SPI. Los pines SPI permiten el acceso a los registros de configuración, en este caso.]

    
pregunta Randomblue

2 respuestas

11

He tenido el mismo problema en el pasado. Parece que no hay ninguna especificación pública disponible. En cambio, Motorola (el creador de SPI) tenía diagramas de tiempo en hojas de datos para los controladores que soportan SPI. Por ejemplo, la hoja de datos 68HC11 tiene información de tiempo SPI en la sección 10.17, en la página 171. General Descripción de SPI en la página 119 ff.

editar

  

"El bus SPI es ampliamente aceptado porque tiene pocos o ningún problema de patentes. Esto se debe en parte a que Motorola, su creador, no proporciona ninguna especificación o soporte central. Los que aplican SPI pueden crear soluciones de hardware y software sin problemas de patentes , pero también sin soporte o definición de protocolos de soporte ". ( fuente )

    
respondido por el stevenvh
1

El término "SPI" se aplica a una variedad de protocolos. Un sistema SPI típico tendrá un dispositivo "maestro" y uno o más esclavos. Cada dispositivo esclavo tendrá una entrada de reloj, una entrada de datos, una salida de datos y, por lo general, un cable de selección de chip. Un dispositivo maestro tendrá salida de reloj, salida de datos y entrada de datos, y usualmente utilizará una E / S de propósito general para conducir los cables de selección de chips de los esclavos. En general, la máquina de estado de comunicaciones de un dispositivo esclavo se mantendrá restablecida cada vez que se desestime su cable de selección de chip.

Hay tantas variaciones que simplemente saber que algo es "SPI" no dice mucho al respecto. Es útil saber que "MOSI" (master-out-slave-in) es un término usado para describir tanto la salida de datos del maestro como la entrada de datos del esclavo, y "MISO" (master-in-slave-out) es un término utilizado para describir tanto la salida de datos del esclavo como la entrada de datos del maestro. De lo contrario, sin embargo, uno realmente debe consultar la hoja de datos de un dispositivo SPI para saber cómo tendrá que comunicarse con él. La mayoría de los periféricos SPI que se encuentran en los microcontroladores pueden admitir las variaciones más comunes, pero no todos los controladores soportan todas las variaciones. Por ejemplo, aunque la mayoría de los dispositivos envían y reciben los datos con el bit más significativo primero, algunos dispositivos envían y reciben los datos con el bit menos significativo primero (y pueden tener razones de hardware para hacerlo).

    
respondido por el supercat

Lea otras preguntas en las etiquetas