16 líneas separadas a través de USB

1

Así que permítame comenzar a disculparme si la pregunta no tiene ningún sentido en absoluto, soy un noob total y todavía no he captado la mayoría de los conceptos.

He diseñado este pequeño indicador visual, que consiste aproximadamente en dos 595 shift registers conduciendo un grupo de LEDs dispuestos en filas. Por lo tanto, las 595 salidas están configuradas para lo que la fila debe mostrar, y luego la fila se va BAJA permitiendo el flujo de corriente y activando dicha fila. Luego vuelve a ALTO, el registro de desplazamiento se establece para la siguiente fila, y así sucesivamente. Multiplexación básica (¿no es así?), Definitivamente no reinventar la rueda aquí.

Bueno, lo que me gustaría hacer es desglosar el diseño en módulos, de modo que cada fila sea opcional y apilable. En teoría, esto no debería ser nada imposible de hacer, pero estoy atascado tratando de averiguar la conexión entre cada módulo.

De todos modos, basta con la explicación, en todo caso, estoy dejando las cosas menos claras. Un esquema vale más que mil palabras, así que aquí está.

Eldearribaesunbocetoenbrutodeloquetengoahora.Acontinuaciónesdondeiréexpandiéndolo:

Como puede ver, mi interpretación actual me obliga a tener un conector de 16 pines en cada módulo de expansión, que honestamente me encantaría evitar.
Entonces, finalmente, aquí está la pregunta inicial: ¿es posible conectar nuevos módulos a través de USB, o el número limitado de cables simplemente no lo permite sin circuitos integrados adicionales? Porque bueno, honestamente, a pesar del precio bastante ridículo, NO agregaré 595 en los módulos de expansión.

Un pequeño pero apreciado extra, en caso de que mi idea sea inviable, sería un indicador para cualquiera que fabrique conectores pequeños (los encabezados de PCB simplemente no sirven) que podría usar en el proyecto. (Google no ayudó mucho en este caso, probablemente no tenga la palabra clave correcta)

NB : como puedes ver, el tablero sería reemplazado por un ATTiny, no debería hacer ninguna diferencia, pero aún así pensé que podría haber sido útil ver la imagen completa aquí. También hay un par de otros puntos que aún no he resuelto, por no mencionar las partes omitidas en los esquemas. Nuevamente, este es un aspecto muy aproximado de lo que tengo y lo estoy incluyendo solo para completar la información.

Mirando hacia adelante, tu punto sobre esto.

(extra: esta pregunta se publicó originalmente y por error en StackOverflow, ahora la estoy moviendo aquí con la esperanza de encontrar más interés en ella)

EDIT : por lo que puedo ver por las respuestas recibidas, la conclusión es que no se puede hacer a menos que esté empaquetando cada módulo con circuitos integrados adicionales. en este punto, la pregunta naturalmente se convierte en ' ¿qué conector + par de zócalos sugeriría? ' Tenía en mente algo similar al conector Lightning de Apple, que de hecho no es una opción viable debido a su costo (puede No lo encuentre por debajo de 5 €, lo cual es una locura imo).

    
pregunta nxet

2 respuestas

2

¿Ha considerado colocar un 595 en cada tablero y alimentar las tres señales de control en lugar de las 8 líneas de datos? En esta configuración, esencialmente tendría cada registro de desplazamiento en paralelo para que cada uno cargue los mismos datos. Sí, es una duplicación de hardware, pero reduce el número de cables a solo 3.

A continuación, tiene otro registro de desplazamiento para la selección de fila. Puede hacer esto usando registros discretos en lugar de 595 IC. Cada junta tendría dos registros. El primero tiene una entrada de datos de la placa anterior y su salida va a la siguiente: esto forma un registro de desplazamiento a través de cada placa. El segundo registro actúa como un latch para la señal de la fila para que no cambie mientras carga los datos.

Esto reduciría la cantidad de cables que necesita entre las tarjetas a solo 4 + de potencia. Además, permite que la cantidad de módulos se incremente de forma bastante indefinida (limitado por el tiempo que tenga que cargar los datos).

Aquí hay un diagrama de lo que estoy proponiendo:

OtraopciónparaeldiseñoseríadividirlapartedeMCUytenerunsolodiseñoparalosmódulosdeexpansiónquesepuedenconectaracualquierMCU:

El puente en la placa de expansión selecciona si los datos para la selección de fila provienen de la salida del 595 (es decir, en la primera placa), o de la selección de fila de la placa anterior (es decir, en todas las placas posteriores).

Esto podría permitirte tener múltiples pantallas que muestren lo mismo: después de 8 tableros, puedes conectar una novena tarjeta que usa la salida 595 de nuevo para reiniciar la secuencia.

Por supuesto, a partir del diagrama original supongo que está ingresando datos de selección de fila de la salida del 595. Si este no es el caso, puede omitir el puente y usar la MCU para controlar el RDAT señal (marcada como opcional).

    
respondido por el Tom Carpenter
0

AFAICT, todo lo que necesita para moverse a cada módulo son datos. Esto se puede mover en serie.

Editar:
No hay absolutamente ninguna necesidad de utilizar un conector de 16 vías.

En general, incluso puede ser más barato usar un conector pequeño (5 cables) y componentes electrónicos para mover los datos, que usar un conector de 16 vías.

Ya estás utilizando 595 registros de turnos. Utilizan tres señales: datos, reloj y habilitación. Este es un subconjunto de la Interfaz Periférica Serial (SPI), que es un protocolo síncrono, y bastante rápido en unos pocos centenares de centímetros.

En realidad, puedes comprar chips de controladores LED que implementan la misma interfaz tipo SPI que un 595.

Por ejemplo, TI fabrica muchos controladores de LED, pero uno que encontré es el TLC59025 que manejará 16 LED; Es una fuente de corriente constante, por lo que no hay necesidad de resistencias en cada LED.

El MAX7219 integrado de MAXIM también está controlado por 'SPI' (datos, reloj y habilitación). Puede manejar una matriz de 8x8 de LED, manejando la selección de fila y la propia unidad de columna.

Usando SPI, cada conector solo necesitaría tres señales más, al menos, tierra y, si no hay demasiados módulos, potencia.

Los módulos MAX7219 que incluyen 8x8 LED son "baratos como chips" en los sitios de compras. Puedes comprarlos como 'kits de bricolaje' si quieres descartar su PCB, y son incluso más baratos.

No necesitaría más procesamiento que estos tipos de chips, aunque el microcontrolador principal necesita saber cuántas unidades necesita conducir para que envíe la cantidad correcta de bits de datos.

Hay muchos conectores de PCB que funcionan. Solo necesitas tres pines de señal y tierra, más potencia. Son conectores de PCB que están 'polarizados' (solo se pueden enchufar de la manera correcta), y tienen 'bloqueo', para resistir ser destrozados.

Los ejemplos incluyen JST , Molex , también 3M, Harting, Hirose y TE. Hay muchos más. Diríjase a un gran distribuidor de productos electrónicos, como Farnell, Digikey, Miouser o RS y busque "conectores de PCB".

EDITAR:
Por ejemplo, Conectores de PCB de Farnell o Conectores RS PCB

Coloque un MAX7219 en cada 'módulo'. Puede conducir hasta 8x8 LEDs. Conecte la MCU a cada módulo mediante un 'SPI' de 5 cables (datos, reloj, habilitación) y alimentación.
Conecte cada 'módulo' juntos usando el mismo 'SPI' de 5 cables.

Trabajo hecho.

Además, puede comprar módulos listos para usar por aproximadamente $ 1 por módulo.

Si realmente quiere utilizar un conector para cada señal, mire a los distribuidores y su selección de conector de PCB. Los conectores de baja potencia vienen en paso de 0,5 mm, de doble fila, por lo que un conector de 20 patillas (un tamaño común y fácil de encontrar) tendría menos de 8 mm de ancho.

Un 74xx595 solo puede hundir o generar unos pocos 10 mA, por lo que un conector de baja potencia debería ser suficiente.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas