SPI Chip Select para diferentes esclavos

2

1) Necesito diseñar hardware para la comunicación SPI con 2 esclavos diferentes. El pin de GPIO (salida del puerto) del maestro extrae el pin de selección de chip de los esclavos de alto a bajo. Pero en el diseño de hardware, solo me queda un pin de puerto. ¿Se puede usar el mismo pin de puerto para habilitar / deshabilitar el pin de selección de chip de ambos esclavos? La respuesta de ambos esclavos se obtiene a diferentes tiempos. Ambos esclavos no son idénticos. El reloj para ambos esclavos se deriva del reloj del sistema. La conexión es como se muestra a continuación (Fig. 1). ¿Es posible este diseño para la comunicación SPI? Tambiénpuedealguiendecirquédiseño(comosemuestraacontinuación)serecomienda.Fig2oFig3 ¿Es necesario que un esclavo diferente tenga su propia unidad SPI?
2) ¿Qué factor decide si la comunicación SPI tipo margarita es posible o no? Debido a que en la hoja de datos de ambos esclavos se especifica, no se admite la comunicación SPI de tipo margarita. ¿El esclavo decide acerca de la posibilidad de comunicación SPI tipo margarita en cadena? ¿Alguien puede explicar cómo ocurre la comunicación en cadena margarita?

Gracias

    
pregunta xyz101

3 respuestas

1

El arreglo habitual es compartir MOSI y MISO entre los esclavos, y tener un CS separado para cada esclavo.

simular este circuito : esquema creado usando CircuitLab

Esto funciona si, como la mayoría de los dispositivos SPI, sus esclavos están diseñados para no responder a las entradas o controlar sus salidas MISO cuando no se afirma CS.

Si la Fig. 1 es su configuración actual, cambiar a esta disposición en realidad liberaría las líneas GPIO.

    
respondido por el The Photon
1

1) Ponga un no-compuerta construida con un transistor (salida tomada del colector) impulsado desde el pin del puerto restante. Use la salida de esta puerta para una CS y use la salida del puerto para la otra.

Tenga en cuenta que no podrá anular la selección de ambos chips. Lo que significa que, si deselecciona uno, se seleccionará el otro.

    
respondido por el Rohat Kılıç
1

Puede usar un solo pin de E / S para controlar dos selecciones de chip, enrutando el nivel del pin de E / S directamente a / CS1 y, a través de un inversor, a / CS2. Significa que un dispositivo siempre está seleccionado y depende de los dispositivos SPI que tenga para saber si les gustará. Algunos dispositivos SPI comunican comandos / datos cuando se valida / CS y luego ejecutan esos comandos / datos cuando se niega / CS. Tendrás que evaluar los dispositivos que tienes tú mismo. En general, evítelo si es posible, complica su software.

El beneficio de cada dispositivo SPI en su propio maestro SPI frente a un bus SPI compartido depende de la aplicación.

Prefieres un bus SPI compartido cuando solo tienes un maestro o cuando el PCB es muy denso y quieres enrutar menos pistas.

Usted preferiría un SPI maestro por dispositivo SPI cuando el bus se dirija a un conector de PCB, lo que provocaría una larga longitud de bus que también podría cortocircuitarse en la PCB y matar a todo el bus. O cuando sus dispositivos SPI necesitan transferencias o transferencias rápidas a intervalos de tiempo precisos que le impiden alternar entre dispositivos.

    
respondido por el TonyM

Lea otras preguntas en las etiquetas