alternativa al contador de décadas 4017 para iterar sobre columnas de matriz

NOTA: He realizado algunos cambios desde la pregunta original, el número de columnas es 114, no 45, esto puede afectar algunas de las respuestas a continuación.

Estoy trabajando en un proyecto con una gran matriz de LED que estoy haciendo. Estoy usando 114 columnas de LED y necesito una forma de iterar sobre las columnas de tal manera que pueda usar una cantidad mínima de pines de mi AVR.

Cuando estaba en la escuela, recuerdo que solíamos usar contadores de décadas, el 4017, me parece leer ahora que estos están obsoletos y parecen haber sido reemplazados por contadores bcd. Eso está muy bien, pero necesito pines, no eficiencia, la salida bcd de 4 bits no me ayuda, necesito más de 114 conexiones que pueda iterar.

Entonces, ¿qué uso? Necesito algo a lo largo de la columna para cambiarlos en secuencia.

A continuación se muestra un esquema SPICE rápido que preparé sobre cómo quiero configurar esto, la diferencia es que mi proyecto real tendrá 28 LED en cada columna y 114 columnas, R1-R28 y C1-C114.

Tengo registros de desplazamiento de 8 bits 74HC595 en las filas, registrando datos, todo lo que necesito es un dispositivo adecuado para cambiar alto los 114 transistores que hunden la corriente.

ingrese la descripción de la imagen aquí

El 4017 no está obsoleto, es uno de los chips más populares que existen y basar los circuitos en la lógica estándar de gominolas significa que se podrá mantener en el futuro y sus esquemas no se volverán obsoletos.

Respuestas (5)

El MM5450 puede hacer lo que quieras.

34 salidas, alimentadas en serie, encadenables.
En teoría, 3 pines para controlar (reloj, datos, pestillo), pero se puede controlar con 1 pin si es necesario. Digikey $4.39/1 Este en DIP-40 pero también disponible en LCC.

si esto no se ajusta a sus necesidades, debe proporcionar una descripción más completa de su requerimiento.

Las salidas son de drenaje abierto, es decir, encendido = bajo o apagado = flotación o circuito abierto.

ingrese la descripción de la imagen aquí

Esto parece una opción muy prometedora, sin embargo, la salida no parece ser de tres estados, ¿cómo debo deshabilitar las columnas que no quiero que se enciendan? ¿Tendría que generar una salida alta en ellos para no dar ninguna diferencia potencial en ellos?
@Hamid: no parecen deletrearlo, pero son salidas de drenaje abierto, es decir, circuito abierto o bajo. Ver actualización para responder.
Ah, sí, ciertamente parecería así desde el diagrama. Cogeré algunos de estos y los probaré.

Si el 4017 hace lo que quieres, adelante, úsalo. Está en producción activa por varias empresas: Texas Instruments , On Semiconductor , NXP (HEF4017B) , NXP (74HC4017) . Cuando un chip está en producción activa por más de una empresa (múltiples fuentes), creo que es mucho menos probable que se vuelva obsoleto que los chips fabricados por una sola empresa.

¿Alguno de los chips enumerados en Qué chip SIPO es mejor, 74HC4094 o 74HC595 u otro? también funcionaría en su aplicación: todos esos chips, como el MM5450 que mencionó Russell McMahon, usan 3 pines para conducir (reloj, datos, pestillo).

  • el 74HC595 (también disponible de varios fabricantes) es popular para controlar LED en pantallas POV. Esos 3 pines de su microcontrolador impulsarían una cadena de 6 de los chips 74HC595 de 8 salidas para impulsar 48 salidas.
  • El TLC5925 de TI le permite configurar la corriente de sumidero. Esos 3 pines de su microcontrolador impulsarían una cadena de 3 de los chips TLC5925 de 16 salidas para impulsar 48 salidas.
Gracias por la respuesta detallada. De hecho, no planeo hundir la corriente a través de los chips, ellos cambiarán algunos transistores de alta potencia que hundirán la corriente. Como quiero una lógica alta en la columna activa, y mis columnas son de cátodo común, esta es la configuración más lógica. Ya estoy usando el 74HC595 para cambiar los datos de cada columna antes de iterar sobre ellos, parecen un poco excesivos para cambiar un montón de salidas a su vez. aunque todos podrían funcionar, supongo que estoy buscando la opción más "moderna", menos exagerada y potencialmente más barata.

Una de las razones por las que el MM5450 de Russell está limitado al número impar de 34 salidas es que no es un dispositivo multiplexado. El MAX7219 está multiplexado y puede controlar 64 LED. Tiene control de brillo por software y decodificadores de 7 segmentos seleccionables. Y puede ser demasiado caro :-(, incluso más de dos MM5450.

Pero no todo esta perdido. El CD4017 puede estar obsoleto, pero varios dispositivos de la serie CD4000 se han relanzado como un dispositivo HCMOS, para el CD4017 ese es el 74HC4017 , por lo que aún puede seguir ese camino.

Es casi seguro que un registro de desplazamiento como el 74HC164 o el 74HC595 funcionará mejor para usted que el contador de décadas. Cualquiera de los anteriores le dará ocho salidas cada uno, y se pueden conectar fácilmente en cascada a cualquier número de dispositivos sin lógica de control adicional. Si usa el 74HC595, puede cambiar los datos a los dispositivos sin que aparezcan en sus salidas hasta que llegue a una señal de "reloj de registro" que copiará todos los datos cambiados a las salidas simultáneamente. Sin embargo, para su escenario particular, eso probablemente no sea necesario.

La razón por la que estaba considerando el 4017 es porque solo tengo una salida activa a la vez, para las columnas ya estoy usando las 595 porque necesito algunas o todas (o ninguna) activa, pero parece exagerado para una sola salida alta en las filas ¿Sigue siendo la mejor opción?
@Hamid: si necesita hacer cumplir el requisito de que no más de una fila puede estar activa a la vez, puede usar chips decodificadores de 3 a 8 o de 4 a 16 y generar una dirección en binario (usando un contador o registro de desplazamiento para generar la dirección). Puede convertir una dirección de 8 bits en 192 decodificaciones usando un 74HC138 por cada ocho, más uno más; agregar un par de inversores le permitiría convertir nueve bits de dirección en 512 decodificaciones; agregar otro 74HC138 sin los inversores le permitiría convertir once direcciones en 1536 decodificados; con los inversores, 12 bits de dirección producen 4096 decodificaciones.
@Hamid: Sin embargo, si va a generar sus filas secuencialmente y no le importa que el hardware imponga un requisito de una fila a la vez, un diseño de tablero que use registros de desplazamiento será más fácil que un diseño de tablero usando decodificadores de direcciones. Además, existen algunos chips que combinan registros de desplazamiento con controladores de alta corriente; No conozco ninguno que combine un decodificador con controladores de alta corriente.
Otra noción que podría funcionar para sus cuarenta y cinco filas sería usar un selector de uno de cinco para encender uno de los cinco transistores de potencia maestros, cada uno de los cuales alimenta a otros nueve, y luego tener cada salida de uno de -nueve selectores se conectan a uno de los nueve transistores de los cinco transistores maestros. Eso reduciría ligeramente la cantidad de chips digitales necesarios, aunque un chip digital por 8 filas realmente no está tan mal.
Gracias por la respuesta, como probablemente pueda ver con una mirada detallada a la pregunta, he aumentado un poco mis números, hay 114 columnas, no 45. Supongo que son restos de cuando escribí la pregunta por primera vez. Entiendo tus ideas, los transistores en cascada son una buena idea. Echaré un vistazo a los selectores hte también. Gracias.
@Hamid: Sugeriría usar selectores si le importa imponer un comportamiento de uno en uno, o cambiadores si no lo hace. Esperaría que agregar más chips fuera más práctico que agregar la capa en cascada de transistores de accionamiento, y ofrecí esa sugerencia principalmente para completar, pero si la suya es una de las situaciones en las que los transistores en cascada funcionan bien, bien por usted.
Realmente quiero hacer cumplir uno a la vez, un simple problema podría causar problemas si se activan varios y, por alguna razón, intenta encender varias columnas de LED a la vez, consumiendo cantidades tontas de corriente. Estaré empujando el suministro como es, me imagino.
@Hamid: si solo va a encender una columna a la vez, puede reemplazar R1-R8 con una sola resistencia. Si se intentara energizar más de una columna a la vez, fluiría aproximadamente la misma cantidad de corriente total que si una columna estuviera encendida, dividida arbitrariamente entre las columnas activadas. Asimismo, energizar cualquier número de filas haría que la corriente de las columnas activadas (cuya cantidad total es fija, independientemente de cuántas filas estén activadas) se divida entre los LED de las filas activadas.
Muy cierto, me aseguraré de que se haga de esa manera, gracias. Solo necesito determinar el mejor método para cambiar las columnas una a la vez, ya que no tengo una respuesta definitiva sobre la que siento que puedo tomar una decisión todavía.

¿Proyecto de hobby o producto comercial? En este último caso, comprueba si realmente merece la pena añadir fichas adicionales. Probablemente esté disponible una versión de su AVR con más pines y el costo adicional podría ser sorprendentemente bajo.

¿Necesita un controlador entre la salida lógica y los LED? Si es así revisa el TPIC6A595, es como un 74HC595 con salidas de potencia.

Si aún no coincide, es probable que tenga un proyecto de hobby de baja corriente. Cualquier medio de generar un solo bit en una secuencia de pines servirá. Davidcary ha vinculado algunos. Agrego el MCP23017 y MCP23S17.

Es un proyecto de pasatiempo, sí, el AVR tiene suficientes pines pero no quiero "desperdiciarlos" haciendo algo tan simple como iterar más de 45 columnas, una cadena de contadores tipo década haría el trabajo y significa que puedo usar solo 3 de los pines. Así tengo margen para ampliar el proyecto en el futuro, que es mi intención. Si no he perdido la trama, todo lo que necesito es una lógica de potencia estándar para cambiar mis transistores de hundimiento actuales a su vez según sea necesario. Publicaré mi esquema SPICE una vez que llegue a casa. También miraré las fichas que mencionas, gracias.
La primera alinea se aplicó principalmente a productos comerciales. Para un proyecto de pasatiempo, es posible que ya haya reparado el chip, y un TQPF de 80 pines posiblemente esté fuera de discusión, aunque tendría más sentido en términos de costos.
Desafortunadamente, sí, mi AVR es parte de una placa de circuito impreso, en resumen, es una placa Arduino desechable.