RGB LED MATRIES CON EL STM32 y DMA

hace unos años, [Frans-Willem] obtuvo algunos paneles LED RGB. Diez 32 × 16 paneles son muchos LEDs, y para conducir todos estos paneles requiere un hardware suficientemente potente. Intentó trabajar con una junta de desarrollo de FPGA, pero eso no tenía suficiente memoria para color de 24 bits. El microcontrolador du Jour, un Ti Stellaris, no pudo obtener mucho más de 16 bits de color sin parpadear. Con un montón de LEDs, pero de ninguna manera de conducirlos, [Frans-Willem] puso los paneles en una caja en algún lugar, esperando el día en que podían estar acostumbrados a su capacidad máxima.

Este día llegó cuando se introdujo [Frans-Willem] a la serie STM32 de chips con la Junta de Descubrimiento de F1. Mientras intentaba encontrar algunas entradas electrónicas para usar con este tablero, tropezó con los paneles LED y les dio uno mucho más. Los resultados son espectaculares, con 33 bits de color, con animaciones transmitidas sobre un enrutador sobre WiFi.

Los paneles en cuestión son los paneles LED HUB75. En los paneles de 32 × 8, hay seis pasadores de datos: dos cada uno para cada color: cuatro filas seleccionadas, y tres pines de control. La fila Selecciona Pins Seleccione la fila de píxeles en cualquier momento. Ciclote a través de ellos lo suficientemente rápido, y parece que todos están todos a la vez. Los pasadores de control trabajan casi como los pines de control de un registro de turnos, con los pasadores de datos que llenan el papel evidente.

El código que en realidad impulsa los LED, todo sucede en un STM32F4 con la ayuda de DMA y FSMC, o el controlador de memoria estática flexible que se encuentra en el chip. Este periférico se encarga de las líneas de control que se encuentran en la memoria, por lo que cuando cambia el estroboscopio de escritura, el chip volcará lo que sea en las líneas de datos a una determinada dirección en la memoria. Es una excelente manera de cuidar de generar una señal de reloj.

Para enviar píxeles a este controlador de exhibición, [Frans-Willem] está utilizando el TP-Link WR70 WR70, siempre popular. Originalmente, había planeado enviar todos los datos de píxeles sobre el puerto USB, pero había demasiada sobrecarga, un USB 1.1 no es lo suficientemente rápido. Eso se solucionó utilizando el UART en el enrutador con un nuevo motorista y una versión recompilada de OpenWrt.

Todo el software para replicar este proyecto está disponible en GitHub, y hay un gran video que muestra lo que puede hacer el proyecto completado. Puedes revisar eso a continuación.

Leave a Reply

Your email address will not be published. Required fields are marked *