diseño de matriz LED

1

Estoy buscando hacer 16 (columnas) x 14 (filas) matriz de LED . Los cátodos están conectados a las columnas y los ánodos están conectados a las filas.

Quiero conducir filas (ánodos) con el expansor de entrada de E / S MCP23017 que es el controlador a través de I2C. No estoy usando el registro de desplazamiento porque necesito pines GPIO del microcontrolador para otros propósitos. MCP23017 tiene 16 pines IO, que 14 usaría como salidas para matriz LED.

Después de MCP conectaría el controlador fuente TLC59213 (LED). Lo interesante de TLC59213 es que está conectado a un flip-flop D que requiere señal de reloj ascendente para actualizar las señales. No estoy seguro de cómo abordaría esto. Necesito actualizaciones constantes ya que esta es la matriz de LED. ¿Debería escribir una función pequeña en el código que crearía un pulso pequeño y conectaría un pin IO al pin del reloj TLC59213? Entonces llama a esa función todo el tiempo. ¿O debería crear un circuito pequeño (tal vez con 555 o similar) que haga pulsos constantemente y lo conecte al pin del reloj? ¿Cuál de esos es el mejor (lo mejor aquí significa que la actualización es rápida y no se nota solo con mirarla)? ¿Hay una tercera opción, mejor,?

En el lado de las columnas (cátodos), quiero colocar el controlador del fregadero ULN2003 justo al principio de la columna. Finalmente, hay un controlador de receptor PWM LED TLC5940 . Estoy poniendo ULN2003 porque TLC solo puede hundir 120 mA. Teniendo en cuenta que todos los LED de una columna podrían estar encendidos en cierto momento (16 x 15mA = 240mA), agregué ULN2003.

Aquí tengo problemas para entender si necesito ULN2003 o no. ¿Es posible que el TLC5940 sea capaz de hundir pequeñas ráfagas de corriente para que no le haga daño?

Además, el sistema funciona con 5V, mientras que el voltaje del LED es de 3.3V. Si todos los 16 LED se encendieran, necesitaría 240mA. Según la ley de Ohm: R = U / I = (5 - 3.3) / 0.24 = 7ohm. Entonces, la resistencia de 7 ohmios caerá 1.7V cuando la corriente sea de 240mA. Pero cuando solo se enciende un LED, la resistencia cae solo U = I * R = 0.02 * 7 = 0.14V, por lo que el LED debe caer 4.86V. ¡No es tan bueno! ¿Cómo debo abordar esto ya que la corriente se puede cambiar constantemente?

EDIT:

Después de recibir una respuesta y analizar otra vez, elijo reemplazar TLC59213 con solo el regulador PMOS y ULN2003 con NMOS. Más sencillo, amplio disponible, incluso más barato. El problema de la resistencia permanece inmóvil.

    
pregunta davaradijator

1 respuesta

1

Varias sugerencias aquí.

  1. Para la temporización del TLC59213 use uno de los bits de salida del expansor de puerto I2C que no está en uso. Cada vez que emita un comando en el bus I2C para actualizar los 14 bits de datos de la fila, simplemente establezca ese bit adicional en '0'. Inmediatamente siga con un segundo comando I2C con los mismos datos de fila pero con el bit adicional establecido en '1'. Esto proporciona el "reloj" para usted, que solo es necesario cuando los datos de la fila cambian.

  2. Para el problema con la resistencia y la caída de voltaje variable, la solución más sencilla es colocar una resistencia en serie adecuada para cada LED en la matriz. Haga que los controladores de la fila solo generen la corriente sin limitación de corriente y los controladores de columna consuman la corriente sin la limitación de corriente. De esta manera, cada LED tiene su propia limitación de corriente y elimina el problema que ha citado.

  3. Usted menciona que se ejecuta todo esto en un suministro de 5V. Es posible que desee reconsiderar la tensión de alimentación si tiene la intención de seguir usando el TLC59213 para un controlador de fila. Sus salidas caerán tanto como 2V o más cuando se obtenga mucha corriente debido a la estructura de salida de tipo Darlington en el dispositivo. Tenga en cuenta que los transistores PNP o P-FET discretos pueden ser una mejor opción. O busque matrices de dicho componente en un solo paquete si desea minimizar los discretos. Pero a la larga, los discretos pueden incluso ser más baratos. El uso de P-FET sería ventajoso porque se pueden usar sin resistencias adicionales, como se requeriría alrededor de los transistores PNP. Los componentes discretos deben ser capaces de proporcionar una operación como un controlador saturado a la fila con muy poca caída de voltaje del riel de la fuente de alimentación.

  4. Debe descartar el uso de la pieza TLC5940. Está diseñado con capacidades de sumidero de corriente ajustables que no tienen aplicabilidad a los LED configurados en matriz. Le recomendaría que simplemente considere reemplazar esa parte con otro de los expansores de puerto MCP23017 como controles de unidad para las columnas de LED.

  5. Puede usar el UL2003 como sumideros de corriente para las columnas de la matriz de LED, pero tenga en cuenta que estas son piezas del tipo Darlington y que tendrán una caída de voltio o más en la salida cuando se estén hundiendo mucho corriente. Esto afectará significativamente al presupuesto de suministro de 5 V que tiene para la matriz de LED. Tenga en cuenta que puede tener sentido utilizar transistores NPN o N-MOS discretos como los sumideros actuales. El uso de N-MOS FET puede ser muy conveniente porque se pueden aplicar en este circuito sin necesidad de resistencias de polarización, como sería necesario para los transistores bipolares NPN. Los controladores discretos saturados tendrán una caída de voltaje muy baja.

respondido por el Michael Karas

Lea otras preguntas en las etiquetas