Problema de conmutación del MOSFET del canal P

Estaba tratando de construir una matriz LED de 16x9 con una MCU con una cantidad limitada de pines. Los ánodos de los LED están controlados por MOSFET de canal P cuyas puertas están controladas por un registro de desplazamiento de 8 bits 74HC595. los cátodos de los LED están hundidos por el controlador TLC5940 LED PWM IC. El circuito alrededor de los MOSFET se ve así:ingrese la descripción de la imagen aquí

La Fuente está conectada a 5 V y la Puerta se eleva a 5 V a través de la resistencia de 1 kΩ. El drenaje está conectado a los ánodos de 16 LED en paralelo y la puerta al 74HC595. Ahora mi observación en un analizador lógico (así como en un osciloscopio):

ingrese la descripción de la imagen aquí

El canal rojo es solo el suministro constante de 5 V en la fuente. El canal marrón es la señal de conmutación que proviene del 74HC595 y el canal negro es el voltaje en el drenaje. ¿No se supone que el MOSFET se apaga inmediatamente después de que la puerta se eleva nuevamente? El retraso de apagado se describe como de unos 80 ns, que se transmite claramente a la salida del analizador lógico. ¿Es este el comportamiento esperado o estoy haciendo algo mal aquí? Dado que el TLC5940 solo puede absorber corriente en los cátodos de los LED, 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 algo de tiempo, recreé una versión más simple del circuito y la probé en una placa de prototipos con un Arduino para aislar el problema. Este es mi esquema, las redes desconectadas se conectan a los pines de control del Arduino:

ingrese la descripción de la imagen aquí

Como MOSFET de canal p, probé ambos, el FQP27P06 y el IRF9540N, que tienen especificaciones similares. Mis lecturas fueron en ambos casos casi las mismas:ingrese la descripción de la imagen aquí

Vemos que se supone que el MOSFET solo conduce durante 0,27 ms de acuerdo con la lectura de la puerta, pero permanece durante otros 0,86 ms, lo que realmente daña mi aplicación cuando las 9 filas de LED están conectadas al final. Causó problemas, porque una columna con los 16 LED encendidos consumía 320 mA. Sin embargo, con este comportamiento en todos los MOSFET y todos los LED activados en mi matriz, 3-4 MOSFET conducían al mismo tiempo, lo que al menos triplicaba el consumo de corriente y, dado que mi placa no estaba especificada para esto, el voltaje se estaba frenando y la MCU acabó deteniéndose. Además, mi paquete del TLC5940 no estaba calificado 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? ¡Cada respuesta es muy apreciada!

Muestre más del circuito para que podamos ver exactamente cómo están conectados los MOSFET.
No muestre un fragmento del circuito y luego describa el resto. Muestra todo el circuito.
¿Qué pasó después? ¿Había un alfiler flotante?

Respuestas (7)

Intente agregar resistencias desplegables a los pines de drenaje de los MOSFET. Las formas de onda que muestra son curvas de descarga capacitivas clásicas causadas por cargas de alta impedancia.

Dado que los pines de la fuente FET están a 5 V CC, pruebe con resistencias de 1 k desde los drenajes hasta tierra.

Desafortunadamente, 1K probablemente no sea suficiente para hacer el trabajo; esa es una buena cantidad de capacitancia en 16 LED. También desperdicia energía cuando la columna está 'encendida'.

Ha entendido mal algo crucial y no se trata de su circuito, se trata de su lectura de la hoja de datos. IRF9540 dice:

ingrese la descripción de la imagen aquí

Está claro ahora que el tiempo de caída "prometido" es de hecho 51 ns. Pero debes prestar atención a las condiciones:

  • VDD = -50V
  • ID = -11A

Esto significa que el tiempo de caída "prometido" no será de 51 ns, o al menos no con su suministro de 5v. Esta es la raíz del problema.

Si aún no me crees entonces revisa lo siguiente, hice algunas pruebas:

ingrese la descripción de la imagen aquí

Esta es la respuesta del circuito con VDD = 5v. ¡El tiempo de caída resultante es de 4 ms!

ingrese la descripción de la imagen aquí

Esta es la respuesta del circuito con VDD = 12v. Aquí el tiempo de caída resultante es de 2,5 ms. De hecho, es menor porque nos estamos acercando a los valores de prueba (por ejemplo, VDD=50v).

Me gustaría probar esto con VDD = 50v pero no tengo las herramientas en este momento.

Conclusión:

¡Lea la hoja de datos y tenga cuidado la próxima vez! Prometen algunas cosas pero debes leer entre líneas.

De ninguna manera este es el problema. El tiempo de descarga de RC que OP muestra está en múltiplos de ms. Esta es la carga que se deja en el drenaje, sin lugar para drenar una vez que los LED ya no están activamente polarizados hacia adelante.
Uhm, bueno, puedes intentar replicarlo también. No simulaciones por favor. Tenía esta duda antes y esa fue mi conclusión. Puedo estar equivocado, pero tienes que mostrar pruebas. ciencia <3
Hola Marcelo, gracias por la respuesta y el esfuerzo! También lo pensé e hice otra prueba, en lugar de los 16 LED en paralelo que dan como resultado un flujo de corriente de 320 mA con el límite de corriente establecido en el TLC, usé una resistencia de 16 ohmios (6 x 100 en paralelo para el vataje) como una carga, que tendrá un flujo de corriente casi igual. Ahora, el tiempo de caída fue de menos de un microsegundo, no lo que dice la hoja de datos, pero mucho mejor que antes y algo con lo que definitivamente podría trabajar. Entonces, para mí, parece que la capacitancia de mi carga específica es el problema y un menú desplegable realmente ayudó
Sí, lo probé ayer, la resistencia desplegable reduce el tiempo de apagado de milisegundos al rango de microsegundos. No es ideal debido a la pequeña pérdida de energía, pero funciona. Sin embargo, todavía no son los nanosegundos prometidos.

Creo que no hay nada malo con el diseño. Algo anda mal con el circuito físico. Tres candidatos principales vienen a la mente:

  1. El MOSFET es malo
  2. El subcircuito TLC5940 y LED tiene alguna falla que conduce a un acoplamiento no deseado al terminal de drenaje.
  3. Algún otro acoplamiento no intencionado al terminal de drenaje en el circuito

Probó varios MOSFET y obtuvo el mismo resultado, por lo que parece poco probable. Pero puede hacer algunas pruebas para concretarlo y señalar al verdadero culpable:

  1. Reemplace el MOSFET con un interruptor físico y vea si obtiene el mismo resultado. Obviamente, eso exoneraría por completo al MOSFET y mostraría que algo más está mal.
  2. Si tiene el mismo comportamiento extraño con el interruptor, reemplace el TLC5940, o tal vez desconecte todos menos un LED para cortar la mayoría de las posibles conexiones defectuosas al terminal de drenaje. Quizá el TLC5940 y un LED tenga algún fallo que esté proporcionando este acoplamiento.

Sabes que si trabajas para tener un interruptor conectado a una sola combinación de LED/resistencia, tiene que funcionar en algún lugar de ese camino. Entonces, la idea es avanzar hacia eso e identificar qué está fallando. Tal vez su placa de circuito tiene una falla y le está dando algún tipo de acoplamiento a la terminal de drenaje, en cuyo caso, incluso el interruptor que alimenta una combinación de LED/resistencia podría mostrar ese comportamiento.

+1 ¡Un buen comienzo para un nuevo colaborador! :-). Bienvenido.
Gracias por las sugerencias. Una prueba que hice fue cambiar los LED con una resistencia que resultó en un consumo de corriente igual y resultó que el tiempo de caída fue mucho mejor y muy cercano al esperado en la hoja de datos. ¡Así que llegué a la conclusión de que los LED utilizados son el componente de alta impedancia y una resistencia desplegable en el drenaje del MOSFET me ayudó!

Guau. Muchas respuestas falsas a esta pregunta. Este es un problema simple con una respuesta simple.

El MOSFET no se apaga demasiado lento.

Esas formas de onda miden el voltaje relativo a tierra , específicamente el voltaje en el drenaje del MOSFET.

Los LED siguen siendo diodos. Tienen capacitancia intrínseca y una caída de voltaje no lineal. Y los MOSFET, de hecho, tienen capacitancias. Uno de los intereses aquí es la capacitancia de salida, que es efectivamente un capacitor entre el drenaje y la fuente. Debe descargarse a través de estos diodos, y esa descarga se volverá exponencialmente más lenta (exactamente como vemos en los diagramas de voltaje). Entonces, por supuesto, el voltaje en el drenaje decae lentamente.Solo está mirando la curva de caída de voltaje esperada para la capacitancia de salida del MOSFET que se ve obligado a descargar a través de la fuga de subumbral de los diodos. La capacitancia está en cientos de picofaradios, pero esta corriente de descarga es del orden de nano amperios. Cada vez que el voltaje del controlador está cerca de la caída de voltaje de los diodos, esto se vuelve mucho más notorio, mientras que a voltajes más altos, es menos, ya que la caída no se ralentiza hasta un poco por debajo de la caída de voltaje de los diodos. Pero todavía está allí, solo que menos visible en un gráfico. Señalaría que con un voltaje de accionamiento de 5 V, y para que no olvidemos que hay al menos una caída adicional de 0,6-1,2 V debido al chip del controlador del lado bajo (que no usa MOSFET internamente, sino transistores bipolares) encima de la posible caída de 3V-3.4V para los LED... eso' No hay mucho espacio para la cabeza. Tal decadencia sería mucho más notable.

Y puedo demostrarlo. Si coloca una resistencia de carga en paralelo con los diodos a tierra, tal vez 10K, debería ver que el voltaje decae mucho más rápidamente, ya que ahora tiene una ruta resistiva lineal para descargar y no el comportamiento exponencial de las uniones PN.

Mi punto es que el MOSFET se está apagando. La caída del voltaje es normal, esperada y no está relacionada con los otros problemas que tiene. Es fácil también. Mide la corriente. Mida la corriente en serie con el drenaje o la fuente del MOSFET. Medir el voltaje en el drenaje no es una forma correcta de determinar el apagado en este circuito . Medir la corriente es la forma correcta de determinar si el MOSFET se está apagando o no. Y estoy seguro de que se está apagando tan rápido como cabría esperar.

Y, por supuesto, si el MOSFET realmente se estaba apagando tan lentamente como el voltaje decae en el nodo medido, ¿por qué podemos ver esto?

ingrese la descripción de la imagen aquí

Los reguladores de voltaje no aumentan su voltaje de salida de esa manera si la carga está decayendo como el voltaje medido. La única forma en que veríamos un pico repentino en el voltaje de la fuente de alimentación como ese es si el regulador experimentara un paso repentino de carga desde un gran consumo de corriente hasta casi ningún consumo de corriente. No puede reaccionar instantáneamente, por lo que hay un breve período en el que el voltaje se desregula, específicamente al ser más alto de lo que se supone que debe ser, antes de que pueda volver a regular la salida. Esto requiere un paso de carga grande y rápido.

Un paso de carga que no podría ocurrir si el MOSFET no se apagara como debería. Uno que ciertamente no podría ocurrir si se apagara tan lentamente como el método incorrecto que se usa para determinar ese (voltaje) nos haría creer.

Hay tal paso de carga en el riel de voltaje, lo que significa que el MOSFET, de hecho, se está apagando y un poco más rápido de lo que ocurre ese pico de voltaje en los rieles de alimentación.

Mide la corriente. Verás que la corriente cae tan rápido como esperas.

Se ve bien. es decir, lo que dijo Dwayne en 3 líneas.
¡Gracias por la explicación detallada!
Buena idea sobre el pico en el voltaje de salida cuando el MOSFET se apaga. Estoy de acuerdo en que el MOSFET se está apagando... pero ¿no esperaría que inmediatamente después de apagar el MOSFET, mientras todavía hay 5 V completos en el ánodo del LED, el LED todavía estaría en conducción directa y observaría un período muy corto de decaimiento extremadamente rápido hasta que el voltaje del LED cae por debajo del umbral?

Los enlaces a las hojas de datos SIEMPRE son una buena idea.

C en puerta alrededor de 1400 pF dependiendo de sus condiciones.
R pull-up 1 kΩ

La constante de tiempo en la puerta es T = RC = 1000 x 1400 E -12
= 1,4 µS

Está viendo un tiempo de apagado de la puerta mucho más largo que eso. ¿Estás seguro de que 1 kΩ no es 100 kΩ más o menos?

En su defecto, no tiene mucho sentido.
Busca algo sin sentido :-)


Agregado:

... como puede ver en el canal marrón del analizador lógico, el voltaje de la puerta se comporta como se esperaba. Es el voltaje de drenaje lo que me da este comportamiento extraño. También verifiqué la resistencia y probé con una gama de otras resistencias (1k, 10k, 100k...)... mismo comportamiento.

¿Hay una línea de selección o dirección sin usar en el HC595 flotando cuando debería estar atado alto o bajo? Eso explicaría un comportamiento como este, o también un comportamiento aleatorio en otros casos.

Aquí, la línea flotante puede seguir alguna fuente (seleccione línea o ...) a través de fugas (en IC o externas) con una constante de tiempo prolongada debido a la capacitancia del pin y v alta resistencia de fuga o corriente de polarización.

Esta es una clase de comportamiento muy común con un pin flotante.

Gracias por la respuesta, pero como se puede ver en el canal marrón del analizador lógico, el voltaje de la puerta se comporta como se esperaba. Es el voltaje de drenaje lo que me da este comportamiento extraño. También verifiqué la resistencia y probé con una gama de otras resistencias (1k, 10k, 100k...)... mismo comportamiento. ¡Agregaré un esquema más detallado con un mejor contexto de mi proyecto!
@tlubes ¿Hay una línea de selección o dirección sin usar en el HC595 flotando cuando debería estar atado alto o bajo? Eso explicaría un comportamiento como este, o también un comportamiento aleatorio en otros casos. Aquí, la línea sigue alguna fuente (seleccione línea o ...) a través de fugas (en IC o externas) con una constante de tiempo prolongada debido a la capacitancia del pin y v alta resistencia de fuga o corriente de polarización.
No, no hay pines flotantes. Todos los pines de 74hc595 estaban atados a un nivel. Voy a depurar más pronto, este es solo uno de mis proyectos paralelos. También noté que, con menos frecuencia, el comportamiento no era tan malo, pero seguía siendo desproporcionado al mirar la hoja de datos.
@RusselMcMahon ¡Realmente aprecio su compromiso de ayudar! Edité mi pregunta para que quede más claro lo que está pasando. Usé todos los componentes nuevos y reconstruí todo dos veces, ¡así que creo que aislé todos los problemas aleatorios lo mejor que pude!
La respuesta de @tlubes Dwayne bien puede identificar el problema. es decir, un pasador flotante PERO la carga es el pasador que flota. :-). Esperemos que su solución funcione. Parece consistente con lo que usted describe hasta ahora.

Un par de pensamientos.

  • intente usar un riel inferior para el LED, como 3.8V más o menos (justo por encima de su Vf máximo si es posible).
  • Utilice un transistor N-FET o NPN en cada columna para bajar los ánodos cuando la columna esté 'apagada'.

El uso de un voltaje LED más bajo en su propio riel reducirá la disipación de energía en el controlador de fuente de corriente TLC. Y debido a que, por naturaleza, las corrientes transitorias de los LED son altas, no está de más aislarlas en su propio suministro. Y... menos carga para purgar cuando llega el momento de limpiar la fila.

Ahora, al problema que estás viendo.

tl; dr: sus LED tienen efecto fantasma . Podrías conseguir un exorcista, o... necesitas derribar los ánodos durante el tiempo muerto.

Aquí hay un enlace relevante sobre este mismo tema: Efecto fantasma vertical en el panel de matriz LED RGB 64x32 1/16

¿Por qué está pasando esto?

Cuando el FET del lado alto de la columna está apagado, la corriente del LED llega casi a cero. Está bien, pero aún queda carga en los ánodos LED, las trazas y el drenaje P-FET. Sí, esos LED se convierten en condensadores .

Lo que sucede cuando el FET se apaga es entonces:

  • Los LED conducen hasta que alcanzan su voltaje directo, Vf
  • La corriente del LED decae rápidamente a una fuga sub-Vf, que está en el rango de nA

Por lo tanto, cualquier carga restante se desangra lentamente a través de los LED polarizados sub-Vf, sin tener a dónde ir. Esto significa que esos LED todavía están muy cerca de estar 'encendidos', aunque sea un poco, durante este tiempo de caída del umbral sub-Vf.

¿Y adivina qué? Si el voltaje del cátodo se eleva al activar otra columna, esto se acopla a la columna "apagado" a través de su capacitancia LED sub-Vf. Y en el proceso, empuja el voltaje del ánodo fuera de la columna de nuevo por encima de Vf , encendiendo los LED en la columna 'apagado'.

Eso es fantasma, en una cáscara (de nuez).

¿Como arreglarlo?

Agregue un N-FET a cada columna para bajar el voltaje del ánodo, con fuerza, cuando esa columna esté apagada. El pulldown del lado N descargará ese voltaje sobrante mucho más rápido de lo que lo puede hacer una resistencia pulldown. Esto no solo corrige el efecto fantasma, sino que también le permite acortar considerablemente el tiempo de borrado.

El N-FET puede ser muy barato como un 2N7002, menos de 2 centavos en volumen. Un transistor NPN también puede funcionar (alrededor de 1 centavo por 2N3904), o incluso un búfer inversor de drenaje abierto.

Gracias por las sugerencias y las explicaciones detalladas! Eventualmente bajaré el riel LED. Este es solo un proyecto de pasatiempo crudo para que yo aprenda, por lo que no basta con tirar del desagüe. Pero, por supuesto, quiero mejorar y pedí un controlador MOSFET IC con los FET de canal N y canal P incluidos. Eso debería conducir a un resultado aún mejor.

Me doy cuenta de que el tiempo bajo de la puerta de cada mosfet es de 0,27 ms. Bueno, 0,27 ms x 9 = 2,45 ms, pero el tiempo de ciclo es de 4,5 ms. ¿Está haciendo 2 ms de procesamiento entre cada ciclo alrededor de las cuerdas cuando la pantalla no está funcionando?

Una forma habitual de controlar una pantalla LED es bajo control de interrupción. Tener una interrupción controlada por temporizador y cada vez que se ejecuta la subrutina de interrupción, la cadena actualmente encendida se apaga y la siguiente se enciende. Entonces no hay tiempo muerto durante otros procesos.

Puede hacer que la pantalla se interrumpa y, si el problema se debe al tiempo de apagado del FET, puede controlar la pantalla a una frecuencia más baja (no debería ver ningún parpadeo a 80 Hz). Luego, puede agregar 0,8 ms de tiempo muerto "todas las puertas altas" entre que se apaga una cadena y se enciende la siguiente.

Gracias por la respuesta. En realidad, mi matriz está impulsada por interrupciones con TIMER0 de atmega168p. La razón por la que hay algún tiempo de inactividad en el ciclo es que en realidad obtengo los datos de LED de un flash SPI y configuro el TLC5940 después de apagar los ánodos de los LED. Después de que todo está hecho y el enganche del TLC habilito la siguiente fila de ánodos. Además, mi MCU solo funciona a 8 MHz actualmente. Todavía hay muchas mejoras por hacer en el lado del software...