5 votos

¿Es posible que un esclavo SPI hable con otros esclavos?

Estoy desarrollando un dispositivo que tendrá un chip flash y un RTC en el mismo bus SPI, seleccionados por medio de dos diferentes de seleccionar las líneas. También tengo un panel frontal de este dispositivo que necesita para tener acceso a estos dispositivos y actualmente está conectado a una UART, pero estoy pensando en hacer también un SPI dispositivo para no tener que usar los pines extras.

Mi pregunta básica es esta - podría, de alguna manera, con el panel frontal de la MCU, que será un SPI esclavo, hable con los otros dispositivos esclavos en el bus de alguna manera? Si no, ¿cómo iba yo a ser capaz de lograr esto? Estoy pensando en hacer esto mediante la re-inicializar el bus SPI, causando una interrupción en mi principal MCU, pero prefiero primero ver si aquí alguien sabe si puedo hacer esclavo a esclavo SPI comms.

Gracias por la ayuda.

5voto

aryeh Puntos 1594

Un "esclavo" SPI dispositivo que controla otro esclavo se convierte en un maestro, por definición.

Si el panel frontal del software es capaz de implementar, ya sea esclavo o maestro de roles en diferentes momentos no hay nada para que deje de hacerlo, siempre que el hardware puede acomodar el necesario flujo de la señal y la "normal" SPI maestro no interferir o "confundido" por la acción. es decir

  • Sus maestros necesitan cooperar físicamente: Si a dos amos a tratar de trabajar a la vez, o si un maestro afirma una línea de señal (por ejemplo, reloj) que afecta a la capacidad de la otra maestra para el control de la misma línea cuando se desee, a continuación, "habrá problemas".

  • Sus maestros necesitan cooperar de forma lógica: Si un maestro "piensa" que está controlando el autobús, pero el otro también es la alteración del reloj o líneas de datos "habrá problemas".

A partir de la UART y SPI IC del punto de vista de la identidad física del dispositivo maestro no es importante mientras los niveles de señal y el flujo de la señal se produce correctamente.

3voto

user4245 Puntos 324

La única diferencia entre un maestro y un esclavo es que el maestro genera el reloj y las señales SS y el esclavo los escucha.

Si bien el panel frontal no es un maestro activo, no hay problema con él para escuchar una señal SS entrante y trabajar como esclavo. Una interrupción sería ideal para esto.

La comunicación directa de esclavo a esclavo es imposible ya que no habría reloj.

0voto

Alex Andronov Puntos 178

Una de las ventajas de SPI es que no hay una comunicación bidireccional líneas. Esto permite cosas como los amplificadores o repetidores que no tienen que seguir la pista de cualquier estado. Desafortunadamente, esto también significa que los SPI no está bien equipado internamente para manejar múltiples maestros y la negociación entre ellos. Si la velocidad y restricciones de funcionamiento permiso, me permito sugerir la presencia de un maestro para todas las comunicaciones, y de que el otro dispositivo que quiere para el intercambio de información con un esclavo preguntar al maestro para recibir asistencia. Eléctricamente, la forma más sencilla sería que el maestro a enviar a la otra micro "¿qué desea enviar y recibir mensajes de obtener una respuesta, enviar los datos de salida del bus SPI, obtener la respuesta, y enviar esa información a la otra micro. Si el maestro y otros micro adecuadamente-de e/S reconfigurable, puede ser posible para que el otro dispositivo para pedir que el maestro envíe un cierto número de bytes valor de reloj sin salida de datos, y el otro dispositivo de suministro de los datos. Que podría mejorar el rendimiento de los datos, pero añaden la complejidad eléctrica.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X