¿Es posible comunicar un esclavo SPI único con dos maestros SPI?

2

Estoy usando dos microcontroladores STM8 como maestros SPI. Master-1 está configurado en modo full duplex . Y el Master-2 está configurado en modo Receive-only . Las líneas CS, MISO, MOSI y SCLK de Master-1 están conectadas al esclavo. Las líneas CS, MISO y SCLK de Master-2 están conectadas al esclavo. Cuando Master-1 solicita datos del esclavo. Master-1 y Master-2 deben recibir los datos del esclavo al mismo tiempo. Y los datos deben ser los mismos. Configuré dos maestros con la misma velocidad en baudios, CPOL y CPHA.

Cuando me estoy comunicando con un maestro único, podría recibir los datos correctamente del esclavo. Pero cuando involucro al segundo maestro en la comunicación, los datos recibidos de ambos maestros están dañados. Y en el osciloscopio, pude ver las variaciones de SCLK en el esclavo.

¿Cuáles son las cosas que debo tener en cuenta al comunicar un esclavo con dos amos al mismo tiempo?

    
pregunta Abdul Gafoor

1 respuesta

5

Como ya han dicho otros en los comentarios a su pregunta, no puede tener 2 maestros en un bus SPI simultáneamente. Simplemente no funciona de esa manera.
Pero la configuración que describe (ignorando la terminología de maestro / esclavo) podría funcionar.
Sólo tu Master-1 sigue siendo un maestro. Su esclavo existente permanece como esclavo, y su Master-2 se convierte en esclavo, pero conecta sus líneas de datos como si fuera un maestro.
Entonces:

simular este circuito : esquema creado usando CircuitLab

Su Master-1 seleccionará tanto Slave-1 como amp; New-Slave-2 (Old-Master-2) al mismo tiempo, y luego cuando Slave-1 envía datos en su MISO, Master-1 los recibirá en su MISO (como se espera), y también New-Slave-2 en su MOSI.

    
respondido por el brhans

Lea otras preguntas en las etiquetas