En cascada de varios dispositivos SPI

4

¿Es posible conectar varios circuitos integrados diferentes en la misma línea de datos, para usar menos pines CS , al vincular la salida digital de cada uno a la entrada digital de la siguiente? Estoy familiarizado con este enfoque en dispositivos similares / iguales, pero no estoy seguro de si hay algunos problemas adicionales que debería tener en cuenta.

EDITAR: Por salida digital, pego el pin de salida que muchos dispositivos SPI proporcionan, por ejemplo. MAX395 o 74HC595 registros de cambio.

    
pregunta joaocandre

2 respuestas

7

No, no puedes hacer lo que estás pensando (si estás pensando lo que creo que estás pensando) con cualquier dispositivo SPI.

Los dispositivos a los que ha señalado no son dispositivos SPI, sino registros de desplazamiento. No funcionan de la misma manera que SPI, sin embargo, SPI puede usarse para conducirlos.

En realidad, son más parecidos a JTAG que a SPI.

En un registro de desplazamiento o dispositivo JTAG, la entrada de datos (TDI en lenguaje JTAG) se alimenta en un registro de desplazamiento simple, y la salida de bit final del registro de desplazamiento cae en la salida de datos (TDO en JTAG). No es así como funciona SPI.

En SPI, los pines SDI y SDO están completamente separados y la relación entre los datos en uno y los datos en el otro es puramente hasta los caprichos del chip. Es común registrar una ubicación de comando o registro en el pin SDI y, en el siguiente byte, el contenido de ese registro está fuera del pin SDO.

Así que no, la entrada no se "cae" en la salida como un registro de desplazamiento.

Si desea reducir el número de pines CS utilizados, entonces podría usar, por ejemplo, un decodificador 74HC154 4 a 16 para conectar 15 dispositivos a solo 4 pines CS (reserve 1 pin para "no hay dispositivo seleccionado").

Si todos sus dispositivos son registros de desplazamiento, u operan como registros de desplazamiento, y no son dispositivos SPI reales (basados en registro), es posible que pueda conectarlos en cascada si todos funcionan de la misma manera. Eso, por supuesto, no está garantizado a menos que sean todos el mismo dispositivo.

    
respondido por el Majenko
5

Hay varios dispositivos (especialmente ADC) que tienen un pin de salida de datos y el "encadenamiento" es una práctica común. En efecto, si desea hablar con 3 dispositivos, debe copiar los datos a través del primer y segundo dispositivo para llegar al tercero. Si esto no causa un problema, entonces sí, funcionará: -

Esperequeeldiagramatengasentido-notequehayunalíneaCScomúnquealimentalostresdispositivos.Paradiferentesdispositivos,debentenerunasalidadedatoscompatibleyalgunosrequierenunarecuperacióndelosdatos,peronoveoporquénosepuedelograr.Aquíhayunaimagenmásgeneral:-

Sobre esto, realmente puede leer de nuevo en el maestro lo que ha "eliminado". Lo bueno de esto es que puede verificar cuántas transiciones de bits se necesitan para completar la matriz de registros de desplazamiento distribuidos en el esclavo. chips.

Wiki también puede ser muy útil

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas