Parpadeo en el controlador PWM PCA9685 con 3W RGB LED y Picobuck

2

Espero que alguien aquí tenga alguna experiencia con el controlador PCA 9685 PWM ( 16 canales, interfaz I2c). Hasta ahora todo está funcionando bastante bien después de conectar correctamente el circuito. Estoy usando un controlador LED Picobuck para conducir este LED RGB de alta potencia .

El PCA9685 permitió una frecuencia PWM de entre 40Hz y aproximadamente 1500Hz. El valor predeterminado es 200Hz. Después de configurar esta frecuencia, puedo elegir el intervalo de activación y desactivación del impulso desde 0-4096 (que es la resolución del impulso). Entonces, si quiero que el LED esté en brillo total, puedo configurar On = 0 y Off = 4095 Esto funciona bien y obtengo un buen LED sólido.

Sin embargo, si comienzo a atenuar uno de los LED para decir que el 25% de su brillo, estableceré On = 0, Off = 1000. Esto atenúa el LED pero a veces comienza a parpadear. He probado muchas combinaciones diferentes de tiempos de activación / desactivación y frecuencias PWM. Incluso a 1000Hz, parpadea y empeora cuando comienzo a usar los 3 componentes RGB.

Estoy manejando el Picobuck con una fuente separada de 12V DC, y tiene un disipador térmico. ¿Necesito una resistencia o un condensador en algún lugar del circuito para detener el parpadeo? Todo lo que estoy tratando de hacer es que el LED se pueda atenuar de 0 a 100% sin ningún parpadeo, por lo que puedo combinar los colores rojo, verde y azul.

Aquí hay una imagen de la configuración, no hay componentes adicionales, solo la placa PCA9685, Picobuck y el LED RGB. Los cables rojo / negro del Picobuck van a un suministro separado de 12V CC.

¿Qué estoy haciendo mal?

    
pregunta Mangist

3 respuestas

3

He tenido el mismo problema que el OP y encontré esta publicación en los foros NXP que describen mi problema ( Y creo que el problema del OP?) Bueno. En cualquier caso, esta página de ESE es uno de los primeros sitios que aparece al buscar PCA9685 flickering LEDs , así que pensé en agregar mi solución aquí. Desde el foro NXP:

  

Mirando la hoja de datos   ( enlace ) fig. 11 en la página 20   este aspecto se ve de acuerdo con el diseño, el problema es cuando LEDn_ON >   LEDn_OFF y el registro LEDn_OFF se actualizan, el dispositivo omite uno   Toda la fase de salida, apagando la salida independientemente de la   registros - mire el ciclo vacío entre "registros actualizados en   este ciclo "y" salida (s) actualizadas en este ciclo ". No hay ningún vacío   ciclo cuando LEDn_ON < LEDn_OFF como se ve en la fig. 10 en el precedente   página.

Entonces, no es un problema eléctrico, o un problema con el Picobuck (estoy usando MOSFET antiguos), es un problema con el chip PCA9685 en sí mismo: mantener la salida apagada (¿el resto de?) un ciclo siempre que se cambie la tarea si se cumplen ciertas condiciones de registro, y si el flanco ascendente no está sincronizado con el temporizador interno del chip.

El comentario final de este cartel fue:

  

¿Hay alguna forma de evitar este tipo de comportamiento y aún así beneficiarse del balanceo de carga de salida?

Alerta de spoiler: al momento de escribir esto, todavía no hay respuesta : pero esto me lleva a investigar e intentar desactivar lo que sea este "equilibrio de carga". Estoy usando esta biblioteca para manejarlo, y después de buscar en la fuente, intenté cambiar la declaración del objeto PCA9685 que se encuentra en la muestra de esto:

PCA9685 pwmController;

a esto:

PCA9685 pwmController(Wire, PCA9685_PhaseBalancer_None);

Y ... ¡Suave como la mantequilla!

Entonces, ¿qué es el equilibrio de carga y por qué debería importarme?

Bueno, parece ser una manera de escalonar el borde ascendente de la señal PWM a través de cada canal, probablemente para facilitar los cambios instantáneos de corriente de todos los 16 canales que se elevan a la vez y potencialmente se caen de una vez si el brillo / deber de cada uno canal es igual Las otras opciones en la biblioteca son * _Linear que escalona las formas de onda por un retraso fijo para cada canal desde el anterior, * _Weaved que intercala los retrasos entre canales ". equilibrando las primeras salidas mejor "(lo que sea que signifique) y * _Count que no está implementado por la biblioteca y funciona exactamente igual que * _None .

Cualquier escalonamiento de la fase da como resultado un parpadeo tan pronto como se cambian los niveles, y esto también puede tener un efecto en rangos de ciclos de trabajo específicos basados en la frecuencia PWM.

Supongo que las implicaciones son un consumo de energía inestable y una EMI más fuerte. Supongo que esto significa que el poder debe estar protegido con un buen límite considerable, pero no estoy seguro de qué hacer (si es que hay algo) sobre el potencial EMI, ¿es un problema? ¿Hay otro tema a considerar al desactivar el balanceo de fase? Si alguien más técnico puede comentar sobre esto, estaría muy agradecido.

    
respondido por el pcdev
2

Desde la página que vinculaste para tu PicoBuck:

This PicoBuck supports PWM control so long as the signal is above a minimum of ~1.5V and each LED is driven to ~350mA.

Lo que podría estar sucediendo aquí es que hay una capacitancia (ya sea una tapa intencional o una capacitancia parásita ... probablemente una tapa tho) entre su salida PWM de onda cuadrada y la entrada correspondiente a tu PicoBuck.

  • Cuando se reduce el ciclo de trabajo para obtener salidas realmente bajas, puede tomar múltiples pulsos para cargar el límite de manera suficiente para > = 1.5V.
  • Esto puede formar efectivamente otro oscilador (similar a un diente de sierra) donde la tapa se carga durante varios ciclos de pulso antes de alcanzar el voltaje de umbral de PicoBuck & 'disparando' el PicoBuck para encender el LED, hasta una frecuencia lo suficientemente baja como para causar destellos visibles cuando el ciclo de trabajo alcanza valores suficientemente bajos.

Posibles correcciones:

  • Si hay un condensador fácilmente extraíble en su salida PWM, elimínelo (o al menos sustitúyalo por uno de valor significativamente más bajo).
  • Intente agregar un NPN & un disparador de Schmitt / P-FET (o un amplificador operacional con multiplicador de alto voltaje) entre la salida PWM & la entrada de PicoBuck para "cuadrar" la forma de onda de la señal lo más cerca posible de una señal de onda limpia limpia de baja impedancia de + 5V / 0V. Aquí hay un ejemplo usando aproximadamente $ 2 en componentes por LED:

  • VerifiquesihayirregularidadesenelvoltajedesuministroenlospinesdesuministrodesucontroladorPWM,olomismoparaelPicoBuck.Sospechoquesuavisodeque"empeora" cuando [usted] usa los 3 componentes RGB "es más probable que sea más notable debido a la comparación visual / de proximidad, en lugar de que afecte a la salida" real ". Sin embargo, al igual que lo mencionó, la comprobación de problemas de voltaje de alimentación sería el primer lugar para buscar algo que podría causar eso.

respondido por el Robherc KV5ROB
1

Al leer la hoja de datos de AL8805 (el chip en PicoBuck) hay dos modos de controlarlo: PWM o un voltaje de control constante. Es posible que el parpadeo suceda porque el chip se confunde con el que estás tratando de hacer.

Un par de cosas para solucionar problemas para intentar:

  1. Pruebe el enfoque de control constante: en lugar de usar el controlador PWM, levante 1 V con un divisor de voltaje y utilícelo como entrada PicoBuck.
  2. ¿Qué tan elegante es tu multímetro? Si tiene configuraciones de retención para voltaje mínimo / máximo, péguelo entre GND e IN1 del PicoBuck y verifique que el voltaje mínimo sea lo suficientemente bajo y que el máximo sea lo suficientemente alto (consulte Condiciones de operación recomendadas en la hoja de datos). Y si tiene True RMS, mida el voltaje promedio para ver si está en el estadio correcto.

Experimental: si el control de voltaje constante funciona y no puede hacer funcionar el PWM, coloque un condensador grande entre la entrada de PicoBuck y tierra, y tal vez una resistencia pequeña para limitar la corriente. La idea es suavizar la señal PWM en un voltaje de control correspondiente. Descargo de responsabilidad: no probado, puede freír el controlador PWM. Mirando la hoja de datos parece poco probable, pero proceda con precaución.

La hoja de datos para referencia: enlace

    
respondido por el lrasinen

Lea otras preguntas en las etiquetas