Autor Tema: Integrados menejo de matrices de LED  (Leído 5230 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 733
    • www.muchotrasto.com
Integrados menejo de matrices de LED
« en: 08 de Febrero de 2010, 06:29:12 »
Hola compañeros:

Después del buen tema que dejamos hace unos dias sobre integrados para el manejo de led RGB del cual me ha servido para ver como funciona el mundo de los RGB, he visto que me gustaría empezar con algo más sencillo como el manejo de matrices de led, para lo cual estoy buscando un integrado que lo haga, pero que me permita dibujar lo que yo quiera, es decir que me permita pintar los leds a mi antojo. He visto integrados como el MAX6953 que permite escribir caracteres ASCII de forma sencilla y fácil pero no permite pintar los led que yo quiera para pintar lineas o gráficos. En este caso sólo quiero manejar una matriz de 7x12 por lo que no es mucho. he visto proyectos del foro muy buenos para el manejo de matrices de led con un PIC, pero me gustaría un integrado para hacerlo de forma rápida y si no es mucho pedir con comunicación por I2C  :D

Por otro lado algunos de los proyectos mencionamos con matrices de led con PIC son los sigiuentes, aunque seguro que me olvido de alguno.
Letrero electrónico de Cryn
el espectacular PIC-Tengu jfmateos2
Matriz 8x8 aitopes
Programa Animatrix de Todopic

Un saludete y como siempre mil gracias compañeros.

Desconectado jacrmr

  • PIC10
  • *
  • Mensajes: 16
Re: Integrados menejo de matrices de LED
« Respuesta #1 en: 09 de Febrero de 2010, 04:12:49 »
Aparte del integrado que mencionas, y de otros 3 ó 5 muy parecidos pero de fabricantes chinos especializados, no encontrarás un integrado a la medida con el que puedas sólo conectar tu matriz de leds y "hacer una pantalla". Las razones son obvias pero el problema principal es el "enfoque" que tiene el diseño profesional de pantallas de leds. Si haces una búsqueda exhaustiva en internet no encontrarás información que valga la pena sobre cómo diseñar pantallas con capacidades mayores. Todo lo que encontrarás serán publiks sencillos generalmente multiplexados y unilínea por lo general. Dentro de estas limitaciones el concepto que tienes en mente de "pintar los leds a mi antojo" sería lo ideal, pero no es así como funciona el diseño de pantallas de leds. Existen 3 graves errores que el diseñador principiante encuentra cuando quiere diseñar una pantalla de leds:

1) Querer que un microcontrolador haga todo el trabajo. Aunque esto puede ser válido para una pantalla multilínea, los problemas son evidentes cuando se quiere hacer una expansión hacia una matriz más amplia. Por ejemplo, un módulo de pantalla monocromático de 16 x 16 pixeles lleva como mínimo: 16 drivers de leds, y uno, o ningún microprocesador. Si es RGB todo se triplica. El trabajo del microcontrolador no consiste precisamente en recibir información, o en refrescar las líneas,  y mucho menos con formatos lentos como I2C u otros. Generalmente se usan comunicaciones propietarias paralelas a alta velocidad.

2) Querer que los caracteres estén almacenados en firmware o en EEPROM. Las pantallas comerciales no reconocen ningún caracter en realidad. Es decir, no hay ninguna tabla de datos que tenga los bits para tal o cual caracter. Lo que visualizan es la información que se les manda. El proceso es rápido y más sencillo que estar leyendo tablas para un determinado juego de caracteres. De esta forma una pantalla puede tener todos los tipos de letra que deseemos sin necesitar ocupar ni un sólo bit de memoria en EEPROM o en tablas.

3) Querer implementar formatos vectoriales para la información. Contrariamente a lo que se puede pensar, que sería más eficiente enviar la información vectorial para "pintar" en la pantalla, la información de mapas de bits es la única que se utiliza en las pantallas profesionales. Las razones son las mismas explicada en el inciso anterior. Los módulos de pantallas no son "inteligentes". Se limitan a refrescar a alta velocidad la información que se les manda. No tienen "tiempo" de reconocer ni letras, ni vectores, ni ninguna otra información.

El diagrama de bloques de una pantalla típica es muy común y consiste de interface de entrada (por lo general paralela, a alta velocidad), memoria multipuerto, CPLD para generar el envío serial a los drivers de leds, y finalmente los drivers de leds. Si la pantalla es con niveles de grises, el CPLD incluye la función de PWM, y si es RGB, simplemente es cuestión de triplicar cada uno de los módulos. Para abaratar costos la memoria multipuerto puede formar parte de una FPGA en vez del CPLD.

El software también es una pieza clave, y es en realidad lo que permite "pintar los leds a mi antojo". Sin un software (propietario por supuesto porque no hay ninguno comercial) que permita manipular individualmente cada pixel se tendrá una pantalla muy limitada en sus prestaciones. Generalmente al final se usa en la pantalla una PC single-board-computer miniatura con un sistema muy mínimo (Windows XP Embedded es muy común) y la información puede pasarse a la pantalla a través de USB, puerto paralelo, o mejor aún a través del conector VGA. Los integrados están ampliamente disponibles con TI ó Analog Devices, y entregan una salida ya codificada en 4:2:2 lista para alimentar a la memoria multipuerto de la pantalla.

Por supuesto que también es posible "estirar" los recursos de un integrado o dispositivo en particular al máximo. Espero en la próxima semana subir un video de una pantalla de 80 x 32 pixeles monocromática en la que puedes desde el software "pintar a tu antojo" sin restricciones. El core de la pantalla es un PIC de la gama más elemental que hay (incluso sin periféricos avanzados): un PIC16F57.