Autor Tema: Proyecto: Cartel RGB 16x256px a 8 colores  (Leído 57894 veces)

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

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Proyecto: Cartel RGB 16x256px a 8 colores
« en: 30 de Octubre de 2014, 14:07:39 »
Bueno, quería compartir uno de los proyectos en los que estoy trabajando. Si bien el mismo es con fines comerciales y alguna que otra parte no voy a poder publicar, creo que la base electrónica puedo presentarla por completo y puede servirle a otro de base para su proyecto.

Estoy diseñando y tengo que fabricar unos carteles de led RGB de 256 columnas x 16 filas, pitch 10. El mismo NO es FULL COLOR, es decir, no controlo con PWM cada color de cada led. Puedo obtener solo 8 colores (acorde a las especificaciones que me pidieron) R, G, B, RG, RB, BG, W y B.

El proyecto lo estoy armando y aprendiendo sobre la marcha, fundamentalmente guiado (por no decir empujado) por BrunoF y tomando partes de otros proyectos (como los drive de mosfet P de Picuino). En retribucion a ellos y las demás personas que me han estado ayudando en este y otros proyectos, es que he decidido tomarme el tiempo de ir subiendo los avances.

El control de la matriz estará resuelta en un micro ARM, muy probablemente el nuevo Cortex M0+ de NXP LPC11U67 (http://www.nxp.com/documents/data_sheet/LPC11U6X.pdf). Las características que me llevan hacia este micro es la memoria flash que trae 128K, los canales DMA aplicables al SPI, el módulo USB, con drivers y API en ROM, el DFU por USB tambien en ROM y alguna que otra caracteristica más. No quiero usar un PIC ya que he decidido no pasar a ARM cualquier proyecto que normalmente resolvería con un 18F o más.

Bien, sin más paso a mostrar algunas cosas que ya tengo en esquemático.

Arranquemos por la matriz de led. He decidido hacer PCB de 16x16 LED's. Para manejar las filas me he decidido por los TLC5952 (http://www.ti.com/product/tlc5952). no conozco la linea de Linear, ni de maxim ni de otro fabricante, solo conozco los de TI y aprovechando las muestras gratis puedo testearlos y por eso me vuelco a TI. Cada TLC maneja 24 salidas en 3 grupos de 8. Cada grupo esta pensado para ser un color, por lo que podríamos manejar hasta 8 LED por TLC y en el módulo que estoy diseñando tendré 2 TLC.
Estas son imágenes del esquemático del modulo LED:

los 256 LED del módulo:



detalles del conexionado matricial:



drive de los LED:



PCB:



El esquemático de los LED es inmanejable. Estoy viendo de hacerme un ratito para transformarlo en estructura jerárquica con los Sheet Symbol y demás, pero por ahora es lo que hay y está bien.

El PCB intentaré hacerlo simple faz, reemplazando los típicos puentes por resistencias de 0ohm TH, las cuales puedo preformar (doblar y cortar "patas") con una máquina.

Como el cartel es de 2.5 mts y la señal de del SPI rondará los 1.5MHz, he decidido (por sugerencia de Bruno) colocar inversores schmitt en las señales CLK, DATA y LATCH para reacondicionar las mismas. La idea es hacer los módulos standar, por lo que en el módulo habrá lugar para los inversores y estará la posibilidad de bypass de ellos, para colocarlos en 4 o 5 módulos.

Ahora estoy trabajando en el sistema de control de las filas, luego subiré lo que voy diseñando.

Saludos!
« Última modificación: 30 de Octubre de 2014, 16:41:39 por elgarbe »
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #1 en: 30 de Octubre de 2014, 15:02:10 »



Toda esa tremenda complejidad, se queda en nada, si usas leds digitales, solo necesitas el micro y los leds, eso es todo, ni chips controladores, ni transistores, ni mosfet.

Yo antes también usaba chips de ese tipo, en concreto el TLC5940, pero ya hace tiempo que rediseñé todas mis placas, y son unas cuantas, para usar leds digitales, lo simples que se me han quedado todos los diseños es espectacular, además con los leds digitales puedes controlar individualmente cada led tanto su brillo como su color (más de 16 millones de colores), sin necesidad de refrescar constantemente todos los leds, salvo que alguno cambie su estado.

Lo interesante es que no hace falta ninguna electrónica de potencia, y todo se controla con un solo hilo para datos, más masa y positivo. Si necesitas añadir más leds, simplemente los conectas en cadena al último y a funcionar.

Supongo que el problema será la dificultad para conseguir este tipo de leds en Argentina, creo que ya lo comentaste una vez, pero si los puedes conseguir vale la pena, yo hace ya tiempo que dejé de usar la configuración típica de TLC + transistores de potencia, para controlar leds en matriz, y te ahorras mucho tiempo en los diseños, ensamblaje y programación.




Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #2 en: 30 de Octubre de 2014, 15:38:21 »



Toda esa tremenda complejidad, se queda en nada, si usas leds digitales, solo necesitas el micro y los leds, eso es todo, ni chips controladores, ni transistores, ni mosfet.

Yo antes también usaba chips de ese tipo, en concreto el TLC5940, pero ya hace tiempo que rediseñé todas mis placas, y son unas cuantas, para usar leds digitales, lo simples que se me han quedado todos los diseños es espectacular, además con los leds digitales puedes controlar individualmente cada led tanto su brillo como su color (más de 16 millones de colores), sin necesidad de refrescar constantemente todos los leds, salvo que alguno cambie su estado.

Lo interesante es que no hace falta ninguna electrónica de potencia, y todo se controla con un solo hilo para datos, más masa y positivo. Si necesitas añadir más leds, simplemente los conectas en cadena al último y a funcionar.

Supongo que el problema será la dificultad para conseguir este tipo de leds en Argentina, creo que ya lo comentaste una vez, pero si los puedes conseguir vale la pena, yo hace ya tiempo que dejé de usar la configuración típica de TLC + transistores de potencia, para controlar leds en matriz, y te ahorras mucho tiempo en los diseños, ensamblaje y programación.


Si, son muy dificiles de conseguir por acá. Tambien tengo entendido que solo los hay en formato 5050, con 120º de apertura. En este caso, el cartel debe poder ser visto desde unos 30-50mts en un ambiente industrial (con polucion) por lo que usamos led bastante cerrados.
Desde que me comentaste de esos led (en el post del POV) que estoy tratando de conseguir algunos para testearlos y no lo estoy consiguiendo...

Saludos!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #3 en: 30 de Octubre de 2014, 15:41:54 »
Una pregunta que me causa curiosidad y viene de mi ignorancia, el otro dia estaba viendo estos integrados TLC, y me encontre  con que exactamente eran 8 canales RGB o 16 canales on/off o habia mas y me ponia a pensar la cantidad inmensa de esos necesario para hacer algo, ahora veo y creo que lo multiplexa linea a linea. No baja demasiado el brillo del led ?, Ya que el controlador lo hace a traves de un PWM + el barrido de filas debe quedar bajito :/.

Y a los leds digitales te referis a estos ?
http://www.mikrocontroller.net/attachment/180459/WS2812B_preliminary.pdf

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #4 en: 30 de Octubre de 2014, 16:09:10 »
Una pregunta que me causa curiosidad y viene de mi ignorancia, el otro dia estaba viendo estos integrados TLC, y me encontre  con que exactamente eran 8 canales RGB o 16 canales on/off o habia mas y me ponia a pensar la cantidad inmensa de esos necesario para hacer algo, ahora veo y creo que lo multiplexa linea a linea. No baja demasiado el brillo del led ?, Ya que el controlador lo hace a traves de un PWM + el barrido de filas debe quedar bajito :/.

Y a los leds digitales te referis a estos ?
http://www.mikrocontroller.net/attachment/180459/WS2812B_preliminary.pdf

El multiplexado es 1 en 16 por lo que el brillo baja un poco. En este caso no hay PWM, como dije al principio solo 8 colores.

Esos son los led digitales.
No comprendo bien el tema de las velocidades. En mi caso son 4096 LED, que refresco se consigue con estos led's? porque veo que dice 800Kbps, en mi caso serían 72bits por led * 256 LED por fila = 18432bits. Si 800.000 bits necesitan 1seg, 18.432 necesitan 23mseg o sea 43Hz. Saco bien las cuentas?

Saludos
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #5 en: 30 de Octubre de 2014, 16:24:18 »
Son 24 bits por led en el caso ese , en esos 24 bits estan los 8bit de cada color.
Para tus 256 leds = 6144 bits

7.68mS por fila  ( 6144 bits / 800000 bits/s ). Taza de refrezco (1/7.68mS ) = 130.2Hz por fila

o

0.12s (7.68mS * 16) todo el cartel. Taza de refrezco (1/0.12s) 8.1Hz ?

Estaba pensando que depende el tema ese de la tasa de refresco, depende si mandas por un solo canal o por mas, la placa de desarrollo que compre de TI tiene un TM4C1294NCDPT (no recuerdo los ultimas letras muy bien) y hay una opcion SPI que te permite mandar de a 4 datos al mismo tiempo si son todos configurados como salidas (QSSI creo q le llaman). Con lo cual la taza de refresco del cartel/tablero se multiplicaria por 4 con un solo modulo SSI (SPI), si usas mas modulos se vuelve aun mas rapido. + DMA y entonces tenes el micro libre para hacer mas nada xD

Ahora si se quema un solo led te deja toda la linea sin leds ? xD

Con el TLC vi que tiene una velocidad maxima de 35Mhz  (Data shift clock frequency).
« Última modificación: 30 de Octubre de 2014, 16:30:48 por KILLERJC »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #6 en: 30 de Octubre de 2014, 16:41:17 »
Son 24 bits por led en el caso ese , en esos 24 bits estan los 8bit de cada color.
Para tus 256 leds = 6144 bits

7.68mS por fila  ( 6144 bits / 800000 bits/s ). Taza de refrezco (1/7.68mS ) = 130.2Hz por fila

o

0.12s (7.68mS * 16) todo el cartel. Taza de refrezco (1/0.12s) 8.1Hz ?

Bien, por eso digo, es una frecuencia muy pero muy pobre....

Ahora si se quema un solo led te deja toda la linea sin leds ? xD

ese es el talon de aquiles, se quema un chip y fuiste, a no ser que sean chips de marca no sé si los pondría en un producto final.

Abría que ver que resultados les dio a Planeta99999999999 y en que ambiente los usó....

Saludos!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #7 en: 30 de Octubre de 2014, 20:18:53 »
Bueno, sigamos con el cartel "tradicional".
Estos son los cálculos de velocidad y ancho de banda necesarios:
El tlc5925 tiene 24 salidas para manejar 8 led rgb sin pwm. Entonces son 8led x tlc. Son 256 led, con lo que necesito 32 tlc. Cada tlc necesita 25 bits de datos (1 bit indica si es dato o control). Por lo que tengo 800bits por fila. Son 16 filas por lo que necesitamos 12800 bits para llenar el cartel. Si quiero un refresco de 100hz serán 1.280.000 bits por segundo. Poniendo el spi a 1.28MHz tendria los tiempos bien.

Veamos que pasa con la activacion de las filas. Como los TLC son sink, los led tienen que ser de ánodo común y necesitamos un mosfet P para cada fila. En el peor de los casos, si todos los led de la fila estan encendidos tendremos 256 x 3 x 0.02mA = 15.36A. Por lo que el mosfet debe poder manejar esa corriente. En cuanto a la potencia, cada mosfet estará encendido 1/16 del tiempo total. Si elijo un IRF9540, que tiene una Rds=0.117 ohm, tendremos una potencia de 15.36 * 15.36 * 0.117 / 16 = 1.72W El encapsulado TO-220 generalmente llega a 2W con un pequeño disipador, por lo que estaríamos bien. Pondremos una tira de aluminio a modo de disipador uniendo todos los mosfet.

El circuito del drive del gate de cada mosfet es el sugerido por picuino, con el agregado de la R de gate para probar la mejor condicion, con R=0 o con R=a algun valor bajo.
Este es el esquema:



Ese esquema es el nivel bajo de un sistema jerárquico. Ver que tiene 3 ports, los cuales permitiran conexiones individuales al momento de repetir el circuito.

La idea para barrer las filas es usar otro registro de desplazamiento, un 74hc595 para usar solo 3 pines del micro y no 16 para encender uno a uno los mosfet.
Entonces esa parte del circuito quedará de la siguiente forma:



Aqui, entonces, he usado la funcion Place -> Sheet symbol y eligiendo la hoja donde esta el drive. Luego usando el comando REPEAT en los port podemos definir la cantidad de repeticiones que queremos del drive, en este caso 16.
En este esqumático tengo los 595, cada salida conectada a una entrada de un drive. Ambos estan conectados en cascada y con las señales CLK, DATA y LATCH los podemos manejar.

En el nivel superior de la estructura tengo el esquemático donde está el uC, en este caso un LPC11U67 (aunque no descarto usar un 1347). El esquemático de esta parte la estoy trabajando, y hasta ahora es esto:



Bueno, veamos un poco la parte de ruteo. Un punto importante de usar sheet symbol es que en el PCB se agrega un room por cada repeticion que hayamos configurado y acomodando y ruteando 1 solo room luego podemos copiar las propiedades y pegarlas en cada uno de los otros room:



Bueno, por ahora eso es lo que tengo.

Saludos!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #8 en: 30 de Octubre de 2014, 20:54:25 »
En los 74hc595

Pense que ibas a unir ambos clocks, tendrias el dato retrasado en 1, es decir mostrarias en el pulso de reloj 17 y de ahi en adelante en 16, o si mandas un 0 y luego en 16.
Asi tenes 2 pines nomas:

1pin para la señal de CLK (ambos)
1pin para Datos

A no ser que quieras que sea posible el mantener fija la salida. igual sigo atento al proyecto :)
Y solo aporto dudas xD
« Última modificación: 30 de Octubre de 2014, 20:57:05 por KILLERJC »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #9 en: 30 de Octubre de 2014, 21:10:59 »
Esa parte no la pense demaciado aún. Lo del latch lo pense por que al dar energía no sé si el estado de los registros de deslpazamiento estan bien determinados o pueden tomar cualquier valor. Si al arrancar son siempre 0, entonces podría dejar activada LATCH. Tambien podría dejarla activada y lo más rápido posible llenar de 0's los registros. Luego meto un 1 en data, doy un clk y ahi ya solo manejo la señal de clk 16 veces... El LATCH me da un poco más de seguridad al manejarlo yo.

Toda duda, crítica y aporte es bien venida, ya que es el primer cartel que diseño.

Saludos!
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #10 en: 31 de Octubre de 2014, 12:13:57 »
Ahora si se quema un solo led te deja toda la linea sin leds ? xD

ese es el talon de aquiles, se quema un chip y fuiste, a no ser que sean chips de marca no sé si los pondría en un producto final.
Abría que ver que resultados les dio a Planeta99999999999 y en que ambiente los usó....
Saludos!


A mi me han funcionado bien, no he tenido ningún problema, solo es recomendable conectar una resistencia de 1K entre el PIC y el primer led, y colocar los condensadores de desacoplo, al menos uno cada 3-4 leds, no es necesario conectar uno por led, salvo que estuvieran muy alejados entre si.

Obviamente, como van conectados en cascada, si cae un led, todos los que van a continuación dejan de funcionar.



Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #11 en: 31 de Octubre de 2014, 13:13:50 »
A mi me han funcionado bien, no he tenido ningún problema, solo es recomendable conectar una resistencia de 1K entre el PIC y el primer led, y colocar los condensadores de desacoplo, al menos uno cada 3-4 leds, no es necesario conectar uno por led, salvo que estuvieran muy alejados entre si.

Y con el tema del resfrezco de los leds ? es aceptable ?
Al menos veo que con el micro que tengo si uso las 4 salidas de cada uno de los 4 modulos SPI, estaria refrescandolos a 130Hz el tablero, pero si voy a un solo SPI de los que tienen 1 salida ya cae a 8.1Hz :/

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #12 en: 31 de Octubre de 2014, 14:03:49 »
A mi me han funcionado bien, no he tenido ningún problema, solo es recomendable conectar una resistencia de 1K entre el PIC y el primer led, y colocar los condensadores de desacoplo, al menos uno cada 3-4 leds, no es necesario conectar uno por led, salvo que estuvieran muy alejados entre si.

Y con el tema del resfrezco de los leds ? es aceptable ?
Al menos veo que con el micro que tengo si uso las 4 salidas de cada uno de los 4 modulos SPI, estaria refrescandolos a 130Hz el tablero, pero si voy a un solo SPI de los que tienen 1 salida ya cae a 8.1Hz :/

130HZ es mas que aceptable. 8.1Hz no sirve.
No se bien como hace para sacar diferentes datos por los 4 pines del SPI... abría que ver qué se puede hacer con pines comunes. Porque fijate que no son datos de SPI (clock + dato) son datos series de 1 wire, habria que ver si el micro se puede configurar para tener varias salidas con ese protocolo...
Quien sabe planeta como los ha manejado y que cantidad ha puesto...

Saludos!
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #13 en: 31 de Octubre de 2014, 14:21:21 »
A mi me han funcionado bien, no he tenido ningún problema, solo es recomendable conectar una resistencia de 1K entre el PIC y el primer led, y colocar los condensadores de desacoplo, al menos uno cada 3-4 leds, no es necesario conectar uno por led, salvo que estuvieran muy alejados entre si.

Y con el tema del resfrezco de los leds ? es aceptable ?
Al menos veo que con el micro que tengo si uso las 4 salidas de cada uno de los 4 modulos SPI, estaria refrescandolos a 130Hz el tablero, pero si voy a un solo SPI de los que tienen 1 salida ya cae a 8.1Hz :/


Depende de lo que entiendas por refresco, estos leds mantienen su estado sin necesidad de refrescarlos cada x tiempo, a diferencia de las matrices que si tienes que refrescar a cierta velocidad para que no parpadeen y se mantenga el efecto de persistencia. Los leds digitales SOLO tienes que recargarlos cuando necesites que alguno de ellos cambie su estado, mientras se mantienen encendidos con los niveles RGB que les hayas cargado.

No he tenido necesidad de gestionar miles de leds, tengo placas con 49 y 132 leds, y otro diseño con leds montados en placa cada una con su controlador WS2811 (que es el mismo que llevan los WS2812B dentro). Con esta cantidad de leds y un solo puerto SPI no hay problemas para generar efectos a una velocidad razonable, no he calculado cuantos frames por segundo porque no he visto que me den problemas en ese aspecto.

En mi placa controladora tengo 2 salidas SPI y una tercera con puertos normales que se podrían usar con leds de 4 hilos, que requieren señal de reloj.



« Última modificación: 31 de Octubre de 2014, 14:28:52 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #14 en: 31 de Octubre de 2014, 14:28:02 »
No se bien como hace para sacar diferentes datos por los 4 pines del SPI... abría que ver qué se puede hacer con pines comunes. Porque fijate que no son datos de SPI (clock + dato) son datos series de 1 wire, habria que ver si el micro se puede configurar para tener varias salidas con ese protocolo...
Quien sabe planeta como los ha manejado y que cantidad ha puesto...

Saludos!


No he probado todavía con varios puertos SPI, pero toda la gestión de los datos la hace DMA, el micro queda libre para otras tareas, en mi caso para leer más datos de una tarjeta micro SD. Apenas tengo experiencia con DMA, supongo que se podran configurar varios SPI+DMA, pero no lo se.





 

anything