¿Puedo controlar una puerta MOSFET de bajo voltaje directamente desde un microcontrolador?

Estamos trabajando en este proyecto para la escuela donde "reducir el número de componentes es fundamental".

Necesitamos operar un pequeño motor de CC con escobillas , por lo que pensamos en usar una configuración de unidad de lado bajo simple con un MOSFET de canal N como este aquí: IRLHS6242PBF

¿Cómo sé si el GPIO de un microcontrolador tiene suficiente "potencia" para impulsar ese MOSFET? Aquí está el enlace al microcontrolador que estamos pensando en usar.

Observé la carga de la puerta del MOSFET en la hoja de datos, el tiempo de subida de nuestra señal PWM y la corriente máxima de GPIO de 25 mA y, según mis cálculos, parece que el controlador debería poder conducir la puerta del MOSFET sin problemas mientras según lo permita el tiempo de subida de PWM requerido. ¿Estoy realmente equivocado? ¿Cómo lo calcularías?

especificaciones MOSFET

especificaciones GPIO

EDITAR: Estamos apuntando a una frecuencia de conmutación de 1 kHz, no mucho más que eso, creo.

No si desea encenderlo y apagarlo rápidamente. Miras los Vgs requeridos para lograr el RDson clasificado. Ignore el umbral de Vgs para cambiar de aplicación.
La hoja de datos vinculada es sospechosa. No enumeran la fuerza de fuente/sumidero por pin fuera de las clasificaciones máximas absolutas, lo que a su vez sugiere que es malo o lo habrían mencionado. Solo se enumeran los 200 mA totales máximos de fuente/sumidero. Además, tenga en cuenta que este MCU no se puede comprar actualmente, casi todas las piezas de Infineon no han estado disponibles durante más de un año. No quieren venderle sus productos, lo mismo sucedió en 2009 durante la crisis del último componente. Como cliente de Infineon desde hace mucho tiempo, recomiendo encarecidamente elegir una marca diferente.
@Lundin ¿Infineon está abasteciendo de manera preferencial a sus grandes clientes automotrices, a un costo potencialmente fatal para algunos tipos más pequeños?
Definitivamente puedes encenderlo. Y su análisis es correcto en cuanto a que la velocidad estará limitada debido a la unidad de corriente limitada del pin GPIO. Pero 1 kHz no es muy rápido y puede ser aceptable. Una idea para aumentar la unidad es usar varios pines GPIO unidos. Pero debe cambiarlos simultáneamente si elige hacer eso. Si no desea utilizar un controlador de puerta, también puede intentar utilizar un búfer familiar de lógica rápida de algún tipo.
@SpehroPefhany parece probable que encuentre este patrón para muchos proveedores, y haría lo mismo en el lugar de Infineon. Considere las consecuencias para Infineon si un gran cliente automotriz cambiara a un proveedor diferente, en comparación con un cliente que compra de 10 a 1000 piezas al año, y el costo para un cliente automotriz si no puede vender un vehículo de $40 000 debido a que faltan chips. Además, no me sorprendería saber que hubo sanciones contractuales por entregas perdidas o tardías.
@Lundin indican la corriente nominal que es de 8 mA (bastante para una MCU de 3.3V); en cuanto a la disponibilidad de componentes, TI, NXP, Infineon y muchas piezas de Microchip no se pueden encontrar, por lo que es una pesadilla. Pagamos $80 por un controlador MSP430 de $5 el mes pasado...
@SpehroPefhany No creo que estén suministrando a nadie tbh. Compramos piezas de Infineon por una suma significativa cada año, por lo que no podemos ser tan poco interesantes para ellos. Sin embargo, seguimos recibiendo "vete, no queremos tu dinero", la misma historia que en 2009. Nunca elegiría una MCU ARM de ellos, porque hay muchas alternativas.
@LorenzoMarcantonio No, indican un nivel de voltaje de salida dada una corriente típica de 8 mA. Eso no dice nada sobre la fuerza de fuente/sumidero. El MCU promedio decente de 3.3V puede generar/hundir 20mA por pin hasta 200mA algo, eso es casi estándar si observa, por ejemplo, piezas NXP o ST.
"¿Cómo sé si el GPIO de un microcontrolador tiene suficiente "potencia" para controlar ese MOSFET?" Últimamente, dejé de usar GPIO para manejar cualquier cosa directamente. ¿Ha considerado usar un controlador de CC dedicado que se comunique con su microcontrolador? Una placa que solo toma comunicación consumirá mucha menos energía de los pines GPIO y, cuando vaya por esa ruta, probablemente terminará usando un protocolo de bus (I2C o Modbus sobre UART) en su lugar.

Respuestas (6)

La respuesta es sí y no. Quiero decir que depende de lo que necesites hacer con la carga.

Para un encendido/apagado simple y relativamente lento, puede hacerlo siempre que...

Su MCU tiene suficiente nivel de salida : la mayoría de los mosfets de nivel lógico se caracterizan por un Vgs de 4.5V; por lo general, en la portada, verá al fabricante alardeando de sus Rds a 10V (nivel estándar) y 4.5V (nivel lógico)

Su MOSFET es el llamado nivel súper lógico, se caracteriza en 2.5V en este caso; incluso hay MOSFET de nivel de puerta de 1.8V (generalmente para entornos de baja potencia).

Tenga en cuenta que pegó los valores absolutos para los puertos GPIO: estos no son tan interesantes como los valores típicos, para este propósito. En su hoja de datos, la tabla 17 tiene las respuestas.

Asegúrese de que su VOL máximo esté por debajo de su umbral de puerta (¡para evitar arranques erróneos!). Tienes 0,4 máx. en el MCU y 0,5 min. en el MOSFET, así que está bien. También recuerde una puerta desplegable para asegurarse de que el MOSFET permanezca apagado cuando el puerto esté triestablecido (durante el reinicio, por lo general).

Para la condición de ENCENDIDO, debe verificar el VOH. Su objetivo es al menos 2.5V (la curva de salida en la hoja de datos MOSFET cuenta toda la historia). Entonces necesita al menos 3V de suministro en la MCU.

Observe la columna de condición en la tabla: los valores especificados se establecen en 8 mA. Las celdas de salida CMOS son algo no lineales (es decir, no tienen exactamente una impedancia de salida). La idea es que pidas más corriente el puerto no alcanzará el rendimiento indicado.

Para la corriente, el problema es un poco más complicado: como probablemente sepa, el terminal de la puerta es sustancialmente un capacitor (el otro terminal es la fuente, por supuesto). Encender/apagar el MOSFET es simplemente cargar/descargar ese capacitor (casi: es un capacitor compuesto que tiene diferentes fases de carga).

Como primera aproximación, debe observar Ciss (la capacitancia de entrada del MOSFET). Eso es alrededor de 1.1nF en este caso. Otro parámetro útil es la carga total de la puerta Qg (indica cuánto necesita cargar la puerta)

Entonces, para recapitular:

  • Tienes alrededor de 2.5-2.8V de GPIO disponibles;
  • Debe cargar un capacitor de puerta de 1.1nF;
  • Tienes a tu disposición unos 8mA de corriente;
  • Cuando ha puesto alrededor de 18 nC de carga en la puerta, el MOSFET ha completado la conmutación (bueno, termina antes pero está simplificado).

Para limitar la corriente GPIO, por supuesto, usa una resistencia. Recuerde que un condensador vacío es casi un cortocircuito, por lo que debe limitar la salida total de 2,5-2,8 V a 8 mA. La ley de Ohm ayuda.

Esto es todo lo que necesita para un interruptor MOSFET simple y lento (recuerde girar libremente la desmagnetización inductiva del motor, obviamente). En esta situación, el MOSFET está (sustancialmente) completamente mejorado y se disipa como una resistencia Rdson.

Ahora, para PWM tienes dos problemas principales:

  • Con solo 8mA la operación de conmutación es lenta. En realidad. Puede usar el comportamiento exponencial del circuito RC para determinar el tiempo de conmutación, en teoría. En la práctica, en estos días, generalmente usa un simulador (a menudo basado en SPICE) para saber cuánto tiempo lleva; esto limita la frecuencia que puede usar para su PWM (recuerde que también necesita descargar la compuerta para apagar el MOSFET, ¡así que el período mínimo es el doble del tiempo!)

  • Durante la conmutación, el punto de operación se mueve a través de la región lineal, por lo que el valor de Rdson ya no es válido. En esta región, Vds es significativo y la disipación de potencia puede ser un problema (se denominan pérdidas de conmutación). Por supuesto, cuanto más tiempo lleva, más julios se desperdician en calor.

Las pérdidas dependen de la corriente necesaria para su motor, pero se pueden estimar. No puede hacer nada por las pérdidas estáticas (Rdson). Las pérdidas de conmutación se pueden reducir cargando más rápido la puerta, es decir, con más corriente. Entonces necesita un controlador de puerta y hay más problemas. Puede usar controladores de puerta incluso a nivel lógico (si el controlador funciona con un voltaje tan bajo) .

Una buena nota introductoria es SLUP169 Fundamentals of MOSFET and IGBT Gate Driver Circuits de TI.

Muchas gracias por la respuesta tan detallada, Lorenzo. Entiendo por la hoja de datos de µC que podría usar más GPIO en paralelo para estar más actualizado. ¿Podría simplemente suponer el doble de la corriente que mencionó, 2 * 8 mA, o habría alguna complicación al usar dos pines en paralelo?
La mayoría de CMOS GPIO se pueden conectar en paralelo sin problemas, sin embargo, el principal problema es alternarlos al mismo tiempo, especialmente si se trata de un periférico como un temporizador PWM que generalmente está vinculado a un solo pin. Un búfer 74LVC1G17 es tan barato como un transistor y puede funcionar de manera útil en más de dos de sus GPIO.

La forma más fácil de obtener algunos números aquí sería simular el transistor. Salvo eso, hay algunos cálculos al dorso del sobre que puede obtener para averiguar qué está pasando. Tenga en cuenta que utilicé los valores de los extractos de la hoja de datos, no la hoja de datos vinculada real (son diferentes).

Calcule la carga de puerta MOSFET (Qg) como un condensador ideal. Tenga en cuenta que este cargo de puerta depende de VDS e IDS, y la hoja de datos selecciona un valor arbitrario. También tenga en cuenta que la capacitancia de la puerta no es lineal, por lo que realmente es una aproximación, no una solución.

C = q / V = 3.1 norte C / 4.5 V = 689 pag F

Suponga una resistencia en serie para limitar la corriente al límite GPIO:

R GRAMO = V D D I O / I METRO A X = 3.3 V / 25 metro A = 132 Ω
Aumente la resistencia al siguiente tamaño de resistencia disponible, por ejemplo, 150 Ω.

Calcule el tiempo de subida/bajada como una constante de tiempo RC. El comportamiento de conmutación no está bien modelado por esta suposición, esto es solo para obtener una estimación aproximada del orden de magnitud. El uso de 2.2 constantes de tiempo da aproximadamente una transición del 10 % al 90 % y es un poco pesimista. Esto también supone que la fuerza de la unidad GPIO es igualmente buena en todos los voltajes de salida.

T s w 2.2 R C 3 150 Ω 689 pag F = 227 norte s

Así que eso no es súper rápido, pero no es terrible. El tiempo de conmutación de salida real probablemente será menor. Probablemente lo investigaría más para frecuencias PWM más bajas.

Oh bien, era demasiado perezoso para hacer el cálculo real. Si es un motor pequeño, probablemente no tendrá problemas incluso en PWM, la familia IR StrongFET es excepcionalmente resistente al maltrato cuando se maneja a bajas frecuencias según mi experiencia.
"Demasiado flojo para hacer el cálculo"... dice el que escribe 2 páginas de texto =D @LorenzoMarcantonio

Las salidas GPIO se aproximan bien a las fuentes de corriente que conducen una corriente algo más pequeña que la corriente de cortocircuito que el pin GPIO puede conducir a cualquiera de los rieles. Por lo general, los controladores GPIO tienen la misma capacidad de fuente y sumidero actual. La puerta está bien aproximada por un condensador conectado a la fuente. Será fácil determinar la velocidad de giro y, por lo tanto, el voltaje de la puerta (una rampa), y el momento en que el mosfet comenzará a conducir y cuándo se encenderá por completo.

En general, las salidas de MCU individuales no tienen suficiente capacidad de corriente para encender y apagar mosfets de baja resistencia lo suficientemente rápido como para minimizar las pérdidas de conmutación. Si puede permitirse el lujo de tener muchos más pines GPIO disponibles de los que nominalmente se necesitan, es una estrategia decente conectar varios pines en paralelo para aumentar la corriente efectiva. Esto requiere agregar pines de alimentación a la MCU. Eso se hace teniendo salidas GPIO "ficticias" conectadas a GND y VCC, y llevándolas al estado lógico 0/1, respectivamente. Esas salidas proporcionan rutas de suministro paralelas adicionales para los controladores adyacentes que impulsan la puerta mosfet. Los pines de la ruta de alimentación paralela se alternarían con los pines de salida que impulsan la puerta, para mantener bajas las corrientes del anillo de alimentación de E/S.

Este truco se puede usar para proporcionar corrientes GPIO combinadas mucho más altas de lo que se podría lograr de otro modo, sin sobrecargar el chip, incluso si se excede la corriente de pin total máxima absoluta.

Esto solo es factible si se presta especial atención a la caracterización de dicha operación y se asegura de que el anillo de alimentación de E/S no se dañe con tales corrientes. Tales travesuras tienen sentido en productos de alto volumen y bajo costo, donde transferir tanta responsabilidad a la MCU como sea posible ahorra costos a pesar de los mayores gastos de I+D. Para productos de bajo volumen, solo use un controlador de puerta si tiene alguna duda. Será mucho más barato.

No confiaría en el truco del 'suministro múltiple' excepto si lo recomienda el fabricante; a menos que, por supuesto, esté seguro de la estructura de la celda GPIO. Algunas MCU de baja potencia usan aceleradores de borde, por ejemplo...

Mire la Figura 1 en la hoja de datos del MOSFET. Esta cifra le indica el valor típico de V D S por un valor dado de V GRAMO S y I D . Utilice sólo la curva que corresponda a la V O H para su procesador.

Verifique que el MOSFET pueda suministrar suficiente corriente para su carga, mientras mantiene un nivel suficientemente bajo V D S .

Si desea estimar qué tan rápido el microcontrolador puede cambiar la compuerta MOSFET, use la capacitancia de compuerta total típica para el MOSFET y la mínima I O L y I O H para su microcontrolador. Dada la corriente y la capacitancia promedio, puede calcular una estimación d V d t . Si sabe cuánto desea que cambie el voltaje en la puerta MOSFET ( d V , generalmente igual al voltaje de suministro del microcontrolador), entonces puede calcular un estimado d t .

Los parámetros que incluiste, V GRAMO PAG I O _ A B S y I GRAMO PAG I O _ A B S son clasificaciones máximas absolutas para el dispositivo y el paquete; estos parámetros no son relevantes aquí.

Esto es correcto, para una carga estática. OP menciona específicamente PWM, por lo que se requiere un análisis más profundo en este caso.

Tomando una estimación muy aproximada de la hoja de datos, el tiempo de encendido en el peor de los casos (más rápido) es de alrededor de 20 ns y la carga de puerta requerida es de 0,22 nC. Entonces, el Ig ronda los 10 mA, que es menor que la corriente de suministro del uController.

Puede cambiarlo, solo que es más lento. Para un interruptor estático estaría bien, para una unidad PWM... depende
sí, eso es lo que mencioné, ya que la fuente de corriente de uC es mayor que ig, él puede cambiarla fácilmente

Aquí hay un ejemplo simple con un motor de 100 W y 12 V que usa el modelo predeterminado de Falstad.

  • Usé un Nch FET con Vt = 1.5V, Vgs = 12V PWM variable f & dc y un diodo de potencia predeterminado (¿10A est?)

Tenga en cuenta que los gráficos muestran que la energía generada por la fuente de voltaje es negativa, aproximadamente 95 W en estado estable y también para DIODO y FET (~ 20 mohm)

Ps=95W, Pfet=1,5W, Pdiodo=7,3Wingrese la descripción de la imagen aquí

¿Puedo controlar una puerta MOSFET de bajo voltaje directamente desde un microcontrolador?

Sí... pero hay muchas más preguntas de diseño para diseñar un controlador de motor.

¿Cómo sé si el GPIO de un microcontrolador tiene suficiente "potencia" para impulsar ese MOSFET?

El GPIO no proporciona energía al motor, pero las salidas tienen baja resistencia. R o h = ( V d d V o h / I o h suele ser < 50 ohmios @ 25'C dependiendo de Vdd. (La corriente GPIO nominal es para los niveles lógicos @ Vol y Voh, que son menos relevantes aquí, así que use el RdsOn calculado )

Datos importantes sobre las ESPECIFICACIONES GPIO

  • No use la corriente Absolute Max para diseñar sus controladores, no debería acercarse a estos límites. -En su lugar, calcule la corriente y asegúrese de que funcione POR DEBAJO DE LOS LÍMITES ABS

  • Calcular ruta como esta

    V O H = V D D 0.5 V 8   metro A = 3.3 0.5 8 = 350   Ω ( a b s . metro a X @ 85 ° C )

El voltaje de carga de capacitancia de puerta de uso de FET (ver Ciss ) y el umbral de puerta Vgs (th) (también conocido como Vt) es para una alta resistencia. Para lograr una RdsOn baja sobre Vgs>=2 * se requiere Vgs(th) y RdsOn se clasifica cerca de esto.

El tiempo de subida de la puerta se puede estimar a partir de Ro * Ciss. La velocidad de respuesta de salida depende de la reactancia de carga RdsOn y Coss. ref Le sugiero que obtenga un FET de medio puente o un IC de controlador de motor de potencia de puente completo (para bidireccional) hasta que se familiarice con todos los parámetros de diseño.ingrese la descripción de la imagen aquí

https://www.pcbway.com/blog/technology/Powerful_H_Bridge_DC_Motor_Driver.html ingrese la descripción de la imagen aquí

El diseño es fundamental para un buen rendimiento con plano de tierra para baja inductancia y buen desacoplamiento.

Normalmente, un controlador push-pull, también conocido como Half-Bridge, es mejor ya que el interruptor PWM único con una abrazadera de diodo actúa como un push-pull de hombre pobre (Nch pull + interruptor de empuje de diodo a Vdd desde EMF posterior). Sin embargo, estos son propensos a fallar a través de disparos a menos que diseñe con un encendido rápido y lento para crear un "tiempo muerto o interrupción antes de cambiar de riel" definido. Este es un diseño normal.

Dame tu opinión sobre la simulación.