Estaba intentando construir una matriz de LEDs 16x9 con una MCU con una cantidad limitada de pines. Los ánodos de los LEDs son impulsados por MOSFETs de canal P cuyas puertas son impulsadas por un registro de cambio de 8 bits 74HC595. los cátodos de los LEDs son hundidos por el TLC5940 LED PWM driver IC. El circuito alrededor de los MOSFETs tiene el siguiente aspecto:
La Fuente está conectada a 5 V y la Puerta se tira hasta 5 V a través de la resistencia de 1 kΩ. El drenaje se conecta a los ánodos de 16 LEDs en paralelo y la puerta al 74HC595. Ahora mi observación en un analizador lógico (así como en un osciloscopio):
El canal rojo es sólo la alimentación constante de 5 V en la fuente. El canal marrón es la señal de conmutación procedente del 74HC595 y el canal negro la tensión en el drenaje. ¿No se supone que el MOSFET se apaga inmediatamente después de que la puerta vuelva a subir? El retardo de apagado se describe como unos 80 ns que se pasan claramente en la salida del analizador lógico. ¿Es este el comportamiento esperado o estoy haciendo algo mal? Dado que el TLC5940 sólo puede hundir la corriente en los cátodos de los LEDs no pude evitar la conmutación del lado alto, pero tenía la impresión de que este circuito debería funcionar...
EDITAR:
Después de tener por fin algo de tiempo, he recreado una versión más sencilla del circuito y lo he probado en una placa de prototipos con un Arduino para aislar el problema. Este es mi esquema, las redes no conectadas se conectan a los pines de control del Arduino:
Como MOSFETs de canal p he probado ambos, el FQP27P06 y el IRF9540N que tienen especificaciones similares. Mis lecturas fueron en ambos casos casi las mismas:
Vemos que el MOSFET sólo debe conducir durante 0,27 ms según la lectura de la puerta, pero permanece durante otros 0,86 ms, lo que realmente perjudica a mi aplicación cuando las 9 filas de leds están conectadas al final. Esto causó problemas, porque una columna con todos los 16 LEDs encendidos estaba consumiendo 320mA. Con este comportamiento en todos los MOSFETs y todos los LEDs activados en mi matriz, 3-4 MOSFETs estaban conduciendo al mismo tiempo lo que al menos triplicaba el consumo de corriente y como mi placa no estaba especificada para esto el voltaje se frenaba y la MCU terminaba deteniéndose. Además, mi paquete del TLC5940 no estaba dimensionado para la cantidad de disipación de calor y ocasionalmente entraba en el modo de error de temperatura. ¿Alguien tiene una idea de por qué puede ocurrir este problema? ¡Toda respuesta es muy apreciada!