¿cuáles son las diferencias entre el expansor de E / S, el demultiplexador, el decodificador y el registro de bits?

1

Newbie, nuestro profesor nos había planteado un gran problema (me refiero a la tarea) sobre cómo conectar varios SPI mediante 1 microcontrolador. Pero sus requisitos son bastante exagerados:

1 microcontrolador interconectado en 90 dispositivos spi (¡¿como qué ?!) y debería simplificarse, ya que solo se deben usar pines de 3-8 gpio para acceder a todos esos.

Dijo que enviarlo en un papel considerando que 1 microcontrolador tiene 2 autobuses SPI. Bueno, acepté el desafío ya que esto se hará de forma demultiplexada (¿verdad? Ya que los pines ss de los dispositivos SPI solo necesitaban alguna señal activa de BAJA / ALTA, aunque no provenga directamente del microcontrolador, como digamos la señal de una fuente de voltaje / salida del regulador para activarlo).

Ahora lienzo para elegir multiplexores, de 3 a 8, de 4 a 16 bits, de 5 a 32 (en cascada) me encuentro viendo estos circuitos integrados de expansión de E / S de 10 bits en los que al leer y ver cómo se utilizará, es como un poco de cambio de velocidades utilizando SPI solamente. Planeo usar estos 10 puertos de E / S como 10 cs para los ss del dispositivo 10 SPI. Pensé que esto sería bueno. Luego, al ver el decodificador, etc., encuentro que estoy usando varios expansores de E / S de 10 bits para conectarme a estos 90 dispositivos spi porque creo que es una combinación / en cascada, etc. Con estos 4 IC diferentes, creo que es bueno pegarlos usando múltiples 1 IC solo para reducir costos y complejidad.

¿Lo entiendo bien, especialmente estos 4 circuitos integrados diferentes? ¿Cuál es exactamente su diferencia y aplicación? ¿Estoy enfrentando un problema si hago este tipo de enfoque?

    
pregunta Mheruian

1 respuesta

1

SPI normalmente solo necesita 4 cables para comunicaciones seriales. Se emiten CLK y CS, al igual que DO. DI es tu única entrada. Así que mire en el 74HC154 x3 para las salidas (1 de 16 puede ser bajo, o una salida de datos invertida), y un 74150 para la entrada (1 de 16 entradas puede estar activa). Si 74150 no está disponible, puede usar un CD4051 que selecciona 1 de 8 entradas. Use 4 pines MPU para la selección inicial de 1 de 16 entradas.

Puede ver dónde puede usar algunos de los pines MPU para expandir en los 16 puertos SPI que tiene ahora. Si los expandió utilizando 4 bits de dirección más usando un 74HC154 como decodificador de dirección, ahora puede manejar hasta 256 puertos SPI.

Al ver que solo necesitas 90, no compras ni dibujas lo que no necesitas. Además, el CD4051 solo le da 8 entradas, por lo que cuanto menos IC sea, mejor.

Entonces, usaste 4 pines para el puerto SPI principal, 4 pines más para expandir a 16 puertos y 4 pines más para 256 puertos, o solo 3 pines para 128 puertos.

Para aclarar las descripciones de las piezas, el 74HC154 es 1 de 16 decodificadores, que utiliza 4 líneas de selección para seleccionar 1 de 16 salidas . El 74C150 es un codificador de 16 a 1, que utiliza 4 líneas de selección para seleccionar 1 0f 16 entradas. El CD4051 es un codificador de 8 a 1 (bidireccional), que utiliza 3 líneas de selección para elegir 1 de las 8 entradas.

No se necesita un registro, ya que la MPU puede bloquear cualquier pin de E / S, que es lo que hace un registro: "guarda" los datos o los datos de control para definir si un puerto es una entrada o salida. Las 7 u 8 líneas de dirección están descodificadas para seleccionar 1 de los 90 puertos SPI.

EDITAR: Debido a los pines comunes de la unidad, se puede usar un búfer 74AC541 para aumentar las líneas CLK y DO para conexiones paralelas. La DI para cada puerto SPI se puede conectar a una serie de 8 puertas NOR o NAND de entrada para sumarlas. Esto deja solo el pin CS que debe ser multiplexado a 90 pines CS en los 90 puertos. En algunos lugares, se pueden necesitar inversores de datos.

Este es un ejercicio absurdo, ya que no es racional expandir el SPI en gran medida.

Dibujaría esto para ti, pero tomaría muchas páginas para duplicar básicamente lo mismo. Eso está en el corazón de la multiplexación / des-multiplexación.

    
respondido por el Sparky256

Lea otras preguntas en las etiquetas