He diseñado una PCB para conectar 12 TLC5940 a un cubo RGB LED de 8x8x8 a través de 3 encabezados de 64 pines, que incluiré capturas de pantalla a continuación. Tengo una placa separada para controlar los ánodos de multiplexación, funciona bien y he desactivado la multiplexación para realizar pruebas de todos modos. Tengo una fuente de alimentación de modo conmutado de 5V 20A para todo el sistema, y estoy alimentando los TLC5940 a través de un regulador LM317 configurado para 3.3V, debido al nivel lógico del STM32F4 Discovery que estoy usando para controlar todo. He puesto una resistencia de 2.61k en el pin IREF de cada IC para establecer la corriente constante en ~ 15mA.
Si enciendo solo unos pocos LED (no más de 8) a la vez, todo funciona bien, pero si enciendo muchos de ellos, los TLC5940 comienzan a volverse locos. Si solo enciendo todas las salidas de una, funciona bien pero el resto se vuelve loco. Con la corrección de punto configurada en EEPROM (que tiene los datos predeterminados de los 3Fh), apagan todas las salidas y comienzan a generar mucha corriente en los pines de suministro, lo que hace que se calienten bastante. Tengo que desconectar y volver a conectar la alimentación para solucionar este problema. Si configuro la corrección de puntos en el registro de CC y lo lleno con los valores máximos en el inicio, simplemente parpadean con un brillo aleatorio como si el registro de CC se estuviera codificado y no consumen una gran corriente. Una simple reinicialización los corrige en este caso, no se requiere reinicio de energía.
He tocado varias señales con mi osciloscopio y todas se ven perfectas. Incluso verifiqué todos los pines del SOUT (ya que tengo 12 de ellos encadenados) y los datos en realidad están enclavados correctamente. Lo único en lo que puedo pensar es en la falta de desacoplamiento adecuado, pero tengo tapas cerámicas de 0.1 µF en todos los circuitos integrados, y algo de desacoplamiento a granel (un par de tapas electrolíticas de 100 µF) en el panel de control de ánodo separado. ¿Es posible que 0.1µF no sea suficiente para el TLC5940? Sobre la base de la hoja de datos parecía que sería. Incluso intenté meter tapones electrolíticos de 10µF y 100µF allí, lo cual no tuvo ningún efecto. Incluso todos los pines de alimentación de los circuitos integrados se ven limpios en el osciloscopio. Estoy realmente en una pérdida aquí.
Por cierto, el osciloscopio es un Rigol DS1054Z con la actualización de ancho de banda de 100MHz.
Aquí está el diseño de PCB: