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

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

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #15 en: 31 de Octubre de 2014, 14:29:58 »
Yo pense SPI para que fuera de una manera serial y ya tenia salida de clk.

En el DMA estarias mandando el dato a los puertos directamente desde una memoria ?

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #16 en: 31 de Octubre de 2014, 14:39:54 »

Los WS2812B no utilizan señal de reloj, solo tienen 1 hilo de datos. Hay otros leds a 4 hilos que si precisan señal de reloj, tengo algunos que les compré a los chinos, pero no los he probado todavía con mi placa, si los probé con una controladora china.

Me he basado en las rutinas de Henriks, están muy bien documentadas, ahí puedes ver exactamente como funciona la gestión SPI+DMA: http://blog.gitmi.com/interfacing-ws2812b-ws2811-rgb-leds-with-a-pic32mx-250f128b-micro-controller-spi-700-khz-update-3/

La ventaja de usar DMA, es que te libera el PIC para que pueda hacer otras tareas, mientras el envío de datos por SPI se gestiona por si solo. Yo los datos no los guardo ni en RAM ni en Flash, los tengo en archivos almacenados en tarjetas micro SD, que lee el PIC según los efectos que necesite sacar, así además es muy fácil de actualizar y añadir nuevos efectos, y dispones de gigas de espacio para datos (32GB en FAT32).

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

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #17 en: 31 de Octubre de 2014, 15:13:52 »
Si entiendo. Lo que no me queda claro por que todavia no me puse a jugar nunca con DMA es si vos, lees la SD esa lectura queda en tu RAM y de alli va cargando el DMA. Al menos creo que asi funcionaria. DMA vs yo , no nos llevamos muy bien xD por que nunca me maneje con eso :/

Si vi que algunos hacen lo contrario, por ejemplo del ADC a una posicion de memoria.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #18 en: 31 de Octubre de 2014, 15:39:42 »


Si claro, cuando lees un registro de un archivo de la SD, tiene que ir a parar a una variable en RAM. En mi caso, leo varios registros del archivo, los cargo en una matriz y de ahí se alimenta la rutina que gestiona DMA+SPI para controlar los led.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #19 en: 31 de Octubre de 2014, 16:12:08 »
Si entiendo. Lo que no me queda claro por que todavia no me puse a jugar nunca con DMA es si vos, lees la SD esa lectura queda en tu RAM y de alli va cargando el DMA. Al menos creo que asi funcionaria. DMA vs yo , no nos llevamos muy bien xD por que nunca me maneje con eso :/

Si vi que algunos hacen lo contrario, por ejemplo del ADC a una posicion de memoria.

Depende del micro. Hay micros que permite DMA entre periféricos, sin pasar por RAM (LPC1769, um10360.pdf, p588, s 34.1.1)

Saludos!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #20 en: 31 de Octubre de 2014, 16:31:18 »
Depende del micro. Hay micros que permite DMA entre periféricos, sin pasar por RAM (LPC1769, um10360.pdf, p588, s 34.1.1)

Saludos!

Vi el datasheet, lo que si:
The DMA controller allows peripheral-to memory, memory-to-peripheral, and memory-to-memory transactions.

el peripheral-to peripheral , imagino que lo hace  peripheral-to memory y memory-to-peripheral como en un solo paso :P

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #21 en: 31 de Octubre de 2014, 16:55:58 »
Depende del micro. Hay micros que permite DMA entre periféricos, sin pasar por RAM (LPC1769, um10360.pdf, p588, s 34.1.1)

Saludos!

Vi el datasheet, lo que si:
The DMA controller allows peripheral-to memory, memory-to-peripheral, and memory-to-memory transactions.

el peripheral-to peripheral , imagino que lo hace  peripheral-to memory y memory-to-peripheral como en un solo paso :P


31.4.1 DMA controller functional description
The DMA Controller enables peripheral-to-memory, memory-to-peripheral,
peripheral-to-peripheral, and memory-to-memory transactions. Each DMA stream
provides unidirectional serial DMA transfers for a single source and destination. For
example, a bidirectional port requires one stream for transmit and one for receive. The
source and destination areas can each be either a memory region or a peripheral, and
can be accessed through the AHB master. Figure 134 shows a block diagram of the DMA
Controller.

"User manual Rev. 3 — 19 December 2013"

Saludos!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #22 en: 31 de Octubre de 2014, 17:26:36 »
Ahi lo encontre que raro recien lo busque y no hubo forma de encontrarlo :/.
Exactamente en la pagina anterior dice lo que puse, por eso mi confusion.
« Última modificación: 31 de Octubre de 2014, 18:03:23 por KILLERJC »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #23 en: 01 de Noviembre de 2014, 10:33:07 »
Bueno, seguimos avanzando con el ruteo y buscando la mejor posicion para los componentes.
Los mosfet los puse en doble hilera de a 8 y la idea es salir con conectores tipo los de las viejas fuentes de PC's. Cada conductor debe soportar picos de 16A.
La parte problemática es el Vcc que viene desde la fuente y alimenta los D de los MOSFET, ya que esa pista debe soportar 16A. Por lo que he decidido hacerla con un buen polygon plane y seguramente dejare la parte del polígono que va a los bornes descubiertos para completar con estaño.

Bueno, va quedando mas o menos así:



Abajo se ven los registros de desplazamiento que activarán secuencialmente cada Fila.

Unos render:





Esa placa por ahora mide 100x150 por lo que creo vengo bien con el tamaño.

Saludos!
-
Leonardo Garberoglio

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #24 en: 01 de Noviembre de 2014, 14:04:00 »
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

Por eso se "castiga"al LED y se usa un voltaje superior al que el LED normalmente soportaría. Yo uso 12V con LEDs que son de 2V. Si el refresco es rápido, y se tiene en cuenta algunas medidas de seguridad (WatchDog Timer, etc) para que no quede nunca encendido siempre un LED, podés castigarlo ya que el LED enciende por sólo un breve instante de tiempo, y luego tiene tiempo de enfriarse durante el encendido de las otras filas. Esto se puede realizar especialmente cuando el controlador es por corriente, como los TLC.

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!

Sinceramente no me preocupo por el estado inicial de los controladores en cascada, ya que apagando todas las filas al inicio del encendido, hace que el valor inicial de la cascada no sea relevante.

Saludos.
« Última modificación: 01 de Noviembre de 2014, 14:06:03 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado javieritone1

  • PIC10
  • *
  • Mensajes: 1
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #25 en: 05 de Noviembre de 2014, 15:48:34 »
Hola! Vengo leyendo con mucha atención este post.


Por eso se "castiga"al LED y se usa un voltaje superior al que el LED normalmente soportaría. Yo uso 12V con LEDs que son de 2V. Si el refresco es rápido, y se tiene en cuenta algunas medidas de seguridad (WatchDog Timer, etc) para que no quede nunca encendido siempre un LED, podés castigarlo ya que el LED enciende por sólo un breve instante de tiempo, y luego tiene tiempo de enfriarse durante el encendido de las otras filas. Esto se puede realizar especialmente cuando el controlador es por corriente, como los TLC.


La pregunta que me surge es, ¿cómo saber en cuánto se incrementa la luminosidad del led aplicando más tensión? En las hojas de datos de los leds (al menos los que he mirado) no viene cómo calcularlo...

Por otro lado,
 

Como el cartel es de 2.5 mts y la señal de del SPI rondará los 1.5MHz, .... (...)


No logro entender por qué el SPI rondará los 1.5 MHz. Según las especificaciones de la LPC11U6x: "SPI master (in SPI mode) Tcy(clk) when only transmitting = 40 ns". Eso nos daria un SPI de 25 MHz, ¿no? Aquí hay algo que se me escapa.

Saludos!

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #26 en: 05 de Noviembre de 2014, 16:45:01 »

No logro entender por qué el SPI rondará los 1.5 MHz. Según las especificaciones de la LPC11U6x: "SPI master (in SPI mode) Tcy(clk) when only transmitting = 40 ns". Eso nos daria un SPI de 25 MHz, ¿no? Aquí hay algo que se me escapa.

Saludos!

http://www.todopic.com.ar/foros/index.php?topic=43643.msg361598#msg361598

Ahi al comienzo hace los calculos para una taza de refresco de 100Hz dandole unos 1.28Mhz, puede usarlo mas rapido pero no lo necesita, y de usarlo mas rapido me imagino ya con el tema del ruteo/impedancias ademas de ser tan largo. No se exactamente a que punto de la frencuencia empieza a importar esto. Nunca tuve problemas hasta ahora ya que no trabaje con tanta frecuencia xD

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #27 en: 07 de Noviembre de 2014, 15:35:01 »
Hola! Vengo leyendo con mucha atención este post.


Por eso se "castiga"al LED y se usa un voltaje superior al que el LED normalmente soportaría. Yo uso 12V con LEDs que son de 2V. Si el refresco es rápido, y se tiene en cuenta algunas medidas de seguridad (WatchDog Timer, etc) para que no quede nunca encendido siempre un LED, podés castigarlo ya que el LED enciende por sólo un breve instante de tiempo, y luego tiene tiempo de enfriarse durante el encendido de las otras filas. Esto se puede realizar especialmente cuando el controlador es por corriente, como los TLC.


La pregunta que me surge es, ¿cómo saber en cuánto se incrementa la luminosidad del led aplicando más tensión? En las hojas de datos de los leds (al menos los que he mirado) no viene cómo calcularlo...



El led no funciona por tension, funciona por corriente. Es un diodo, por lo que la tension Vf se establece según la corriente que le hagas pasar. El problema es que en los led, tipicamente, la corriente nominal es de 20mA y el absolute maximum rating es 25mA, por lo que no hay mucho para jugar...

Saludos!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #28 en: 18 de Noviembre de 2014, 11:31:31 »
Estoy terminando el harware alrededor del micro y me surge una duda medio software medio hardware.
Cual sería la forma "standar" de cargar el texto a mostrar en el cartel?
Yo tengo previsto una conexion USB y un pequeño programita en .net para crear el texto y efecto. Pero una vez que tengo los datos, como podría cargarlos al cartel? tendria que implementar usb cdc en el micro? de USB nunca hice nada de nada... cuando la pc quiere mandar info, el micro detecta ese evento? si consigo hacer esto, luego quedaría almacenar la info que voy reciviendo en la flash del micro o en una memoria tipo i2c externa... ahora, no logro imaginarme la mejor forma de implementar esta parte del proyecto....

Saludos!
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Proyecto: Cartel RGB 16x256px a 8 colores
« Respuesta #29 en: 18 de Noviembre de 2014, 11:51:51 »
ahora, no logro imaginarme la mejor forma de implementar esta parte del proyecto....

Saludos!


Un zócalo para tarjetas micro SD.



 

anything