Problemas al conducir leds con el MM5450

1

Primero, cuál es mi objetivo final: conducir 24 LED RGB usando un microcontrolador conectado en serie a un Controlador Micrel MM5450 LED . Sería bueno poder manejarlos todos individualmente (72 LED), pero me conformaré (como lo hice) para multiplexar y manejar solo un color a la vez. En el caso del MM5450, estoy usando 3 salidas para conducir 3 transistores, uno para cada color.

Este es el problema que estoy teniendo.

Estoy usando el paquete PLCC44, que parece mostrar algunas diferencias con el texto estándar en la hoja de datos. Por ejemplo, la hoja de datos se refiere a 35 bits de datos, pero el PLCC solo tiene 34 pines de salida en lugar de 35 en el DIP.

Solo para mojarme los pies, he conectado 4 LED para que salgan los pines 1 a 4 y dejé el resto desconectado. He conectado VDD y VSS (sin condensadores de desacoplamiento), puse un pot de 100 K en el pin 21 (control de brillo) y un 1nF en el mismo pin que sugiere la hoja de datos.

Intenté conectar DATAENABLE a GND, a VCC ya una resistencia desplegable, pero no funcionó tan bien.

Los síntomas son que después de enviar los datos utilizando el tiempo indicado en la hoja de datos, obtengo resultados extraños. Por ejemplo, si envío todos los bits cero, al encender, solo los leds 1 3 y 4 se encenderán. Reinicie el uc y luego el led 2 3 y 4 se encienden. Si envío solo un bit alto, entonces se encienden los led 1 y 4, y luego cuando reinicio los uc leds 3 y 4 se encienden. Solo para aclarar, cuando digo reinicio, significa que hago valer la línea de reinicio del microcontrolador, que inicia mi programa nuevamente (y envió un flujo de bits al controlador led).

No puedo ver un patrón claro de lo que está sucediendo aquí. ¿Alguien con más experiencia en este chip (o una sugerencia de un chip completamente diferente que logrará mis objetivos) para ayudarme?

Saludos

Editar:

Bien, hice algunas pruebas más y conecté un ámbito de almacenamiento a los datos y al reloj. Aquí están mis conclusiones:

El reloj y los datos están haciendo exactamente lo que les digo que hagan. Como se sugirió, coloqué el reloj y los datos en mi PORTB y los datos habilitados en mi PORTC, si eso importa.

Mi secuencia de datos se ve así: datos: comienza bajo habilitación de datos: comienza alto secuencia de datos: 0 - [habilitación de datos baja] - 1 - 34 bits de datos - 0 - 0 - [habilitación de datos alta]

Ahora mismo estoy trabajando en los pulsos de 10 ms. Ya que estoy usando una placa de pruebas conectada a mi tablero de devoluciones a través de cables de clip largos, he analizado la forma del reloj y las señales de datos para detectar cualquier señal de timbre y la señal fue bastante buena.

Por los síntomas, parece que mi flujo de bits no está sincronizado con el chip ... No tengo ideas

    
pregunta Padu Merloti

3 respuestas

2

Sospecho que el problema es que necesita controlar la línea de habilitación de datos con el microcontrolador. Póngalo en alto al restablecer Luego, configúrelo justo antes de (más de 100 ns) cuando comience a transmitir datos. Después de los 35 bits, vuelve a subir.

Además, la hoja de datos explica el pin número 35 que faltaba sobre el que se estaba preguntando en la Nota 1 en la página 1. En el MM5450, se reemplaza por la línea de habilitación de datos.

    
respondido por el pingswept
2

Algunas cosas sobre el uso del MM5540 para multiplexar los LED ... La línea de habilitación de datos realmente quiere una resistencia desplegable. Al alimentar el chip desde un Arduino, tengo mejor suerte ya sea atándolo por debajo o conectándolo a una salida digital y agregando una resistencia (1k) a tierra.

El resto del chip está diseñado para SINK actual, no para suministrar voltaje. Mirando de cerca la hoja de datos, OFF ajusta las salidas a 3V. Por lo tanto, el lado positivo del diodo debe estar en lo alto, 3V es suficiente y el ánodo debe estar en uno de los pines de salida, donde el voltaje caerá para hundir la corriente que atraviesa el diodo.

Finalmente, el control de brillo también es un sumidero de corriente. En mis manos, atando el extremo superior de la resistencia de control de brillo a 5V, 2k Ohms fuentes alrededor de 600 microamperios que permiten que el chip se hunda 12mA / diodo, que es lo que normalmente quiero.

    
respondido por el PeterK
0

Tienes que usar la habilitación de datos. Tras la transición, la serie al búfer paralelo se reinicia Los siguientes 35 clockbits cargan datos en el búfer. El 35 luego transfiere el búfer a las salidas.

Si no usa la habilitación de datos, es posible que no esté sincronizado.

También tome nota de la velocidad máxima de operación. Suena como si estuvieras sobre haciéndolo.

    
respondido por el rfischer

Lea otras preguntas en las etiquetas