¿Con respecto a la selección de esclavos SPI?

0

Considera que un SPI tiene más esclavos.

Supongamos que si más de un esclavo quiere comunicarse con el Maestro simultáneamente, ¿cómo reacciona un SPI en esa situación? ¿Por prioridad o por cualquier otro medio?

Si es por medio de Prioridad, entonces lo hará Hardware o Software y ¿Cómo?

Y también, ¿SPI (Master) puede comunicarse con más de un esclavo simultáneamente?

Por favor, aclarame. Soy novato en SPI.

    
pregunta Sridhar

2 respuestas

6

Con varios esclavos en un bus SPI, solo uno puede comunicarse a la vez. El maestro es responsable de elegir qué chip es, manipulando la línea de selección de esclavos apropiada. Si tienes varios esclavos y es posible que deban enviar mensajes al maestro, tienes varias opciones:

  • Encuestar a los esclavos. El maestro recorre regularmente los esclavos, verificando si quieren comunicarse.
  • Usa otro cable. Algunos chips SPI pueden establecer una conexión por separado que no forma parte del bus SPI, pero está conectada al esclavo y al maestro. Cuando el maestro ve que esto sucede, sabe cómo contactar ese chip a través del bus SPI. Esto a veces se conoce como una interrupción, aunque puede o no desencadenar una interrupción real en el microcontrolador.

No hay un sentido de prioridad más allá de la idea básica de que se selecciona un esclavo y todos los demás ignoran el bus. Si necesita tener un sistema de prioridad, puede hacerlo en el software del maestro, pero no es parte de SPI.

Un ejemplo de un chip que he estado utilizando recientemente es el AD7730. Es un ADC, y regularmente tiene nuevos resultados de conversión para pasar al maestro. Una forma de usar este chip es conectarse mediante SPI y leer regularmente el registro de estado. Cuando uno de los bits en el registro de estado se pone alto, significa que hay una nueva medición lista, y puede leerla (también sobre SPI). Una forma alternativa de usarlo es conectar el pin RDY en el AD7730 a un pin GPIO en su maestro y, cuando la medición esté lista, ese pin va alto. El maestro puede leer el resultado a través de SPI.

    
respondido por el Jack B
4

Primero, un esclavo no puede elegir comunicarse con el maestro. Todas las transferencias son iniciadas por el maestro. Puede usar los GPIO para conectar las líneas de "interrupción" o "solicitud" de los esclavos, pero depende del software del host responder a estas y elegir el orden para atender las solicitudes.

Segundo, no, el maestro no puede comunicarse con varios esclavos simultáneamente. Solo hay un par de líneas de datos (maestro a esclavo y esclavo a maestro), por lo que es imposible realizar múltiples transferencias simultáneas. (En realidad, puede haber más de una línea en cada dirección, pero solo se usan para datos paralelos desde y hacia un solo esclavo para acelerar la transferencia.)

    
respondido por el DoxyLover

Lea otras preguntas en las etiquetas