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