Pulsos de alta corriente en MCU GPIO

Los MCU tienen capacidades de fuente/sumidero máximas por GPIO, corrientes de fuente/sumidero máximas a través de los pines VDD/VSS y tienen una disipación de energía total máxima en función del paquete.

Todos estos parámetros están declarados explícitamente en la hoja de datos. Por ejemplo, los puertos de alta corriente en la familia PIC16 pueden generar 100 mA por pin, la suma de todas las corrientes que pasan por los pines VDD/VSS debe ser inferior a 250 mA y el paquete puede disipar 800 mW.PIC16F1773 Valores nominales máximos absolutos de fuente/sumidero

¿Significa esto que, en un momento dado, los GPIO nunca pueden emitir más de 100 mA en los pines de alta corriente, o que este límite puede superarse (es decir, tener un pulso corto de alta corriente) siempre que la disipación de energía total del paquete sea inferior a 800 mW? ?

EJEMPLO

Permítanme dar un ejemplo para ilustrar mejor mi pregunta.

Supongamos que tengo este circuito:

esquemático

simular este circuito : esquema creado con CircuitLab

La hoja de datos del IRF8736 establece que la capacitancia de entrada (Ciss) es 2315pF @ Vds=15V (es decir, distinta de cero) y una resistencia de compuerta de 2,2 ohmios, por lo que en el instante en que la señal GPIO aumenta, la corriente instantánea será:

i = V / R

i = ( V d r i v mi r V gramo a t mi ) / R gramo a t mi

i = ( 5 V 0 V ) / 2.2 O h metro s

i = 2.27 A

Esto es mucho más grande que la corriente máxima permitida de 100 mA para el pin GPIO.

Sin embargo, si nos fijamos en la potencia consumida por el controlador para conducir esta señal:

PAG d r i v mi r = V gramo a t mi q gramo F s w

PAG d r i v mi r = 5 V 26 norte C 250 k H z

PAG d r i v mi r = 32.5 metro W

Que está muy por debajo del total de 800 mW permitido por la MCU.

Entonces, en este caso particular, ¿qué parámetro se debe seguir para respetar los límites de la MCU? ¿La corriente de pin GPIO máxima permitida o la potencia disipada total permitida del paquete? Desearía que hubiera una disipación de energía total permitida por GPIO.

Respuestas (2)

Me puse en contacto con algunos proveedores de silicio sobre esta pregunta y obtuve una variedad de respuestas. Las respuestas más esclarecedoras dicen lo siguiente (redactado/parafraseado por brevedad):

[Vendedor A]

El límite de corriente mencionado en la hoja de datos no es la corriente máxima absoluta permitida por pin, sino la corriente máxima para la cual se garantiza que el voltaje de salida cumpla con las especificaciones de Voh/Vol. Para corrientes más altas, el voltaje de salida estará fuera de estos límites, pero los amortiguadores de salida funcionarán correctamente.

[Vendedor B]

Los búferes de salida tienen su propia impedancia de salida que limitará la cantidad de corriente que sale del pin, incluso cuando se corta directamente a VCC o GND. Por lo tanto, no se producirían comportamientos adversos al cablear directamente un pin a una puerta MOSFET siempre que se cumplan los límites de disipación de energía.

[Vendedor C]

Si bien es una buena práctica agregar una resistencia en serie entre el pin y la compuerta MOSFET, no es necesario proteger el controlador de salida. Sin embargo, omitir la resistencia en serie podría introducir un gran delta de corriente a través de GND, lo que podría causar un rebote de GND.

[Vendedor D]

La hoja de datos se especifica para corrientes continuas en lugar de pulsos instantáneos cortos, por lo que es posible exceder estos límites sin causar daño físico al IC. Sin embargo, proporcionar pautas para esta condición operativa es difícil y debería manejarse caso por caso.

En otras palabras, es muy posible que los pines GPIO generen/hundan corrientes más altas para pulsos cortos sin dañar los controladores, siempre y cuando se cumplan los límites de disipación de energía del pin+paquete. Sin embargo, no hay almuerzo gratis, así que proceda con precaución.

ST en realidad establece en la hoja de datos que normal GPIOs can sink or source up to ±8 mA, and sink or source up to ± 20 mA (with a relaxed VOL/VOH). Y que el Voh/Vol cambie en todo el puerto si hay más pines activos. Por lo tanto, un pin de alta corriente aún podría tener un efecto en todo el puerto. Cuidado con eso

Significa que cualquier GPIO de alta corriente puede absorber hasta 100 mA. Además, está sujeto al límite de 250 mA para todo el chip.

Por ejemplo, podría absorber 2 x 100 mA usando dos pines (y quedarse con 50 mA de repuesto para operar el resto del chip). No podría hundir 3 x 100 mA porque alcanzó el límite de 250 mA.

La corriente de salida de un pin se muestra en la FIGURA 37-53 de la hoja de datos y es mucho menor que 100 mA.

Tienes razón, pero en realidad rompemos esta regla regularmente. Por ejemplo, encender un MOSFET usando un GPIO. Cuando la compuerta MOSFET se descarga y la señal GPIO sube, hay un pequeño período de tiempo en el que la corriente instantánea será muy grande, mucho más alta que la corriente máxima permitida del pin GPIO. ¿En qué punto la corriente instantánea es lo suficientemente pequeña como para no dañar el controlador GPIO?
Es una buena práctica colocar una pequeña resistencia entre la puerta GPIO y MOSFET :) electronics.stackexchange.com/a/68754/81178
Es cierto, pero muchos diseños no incluyen la resistencia en serie para los FET de señal pequeña.
Podría argumentar que los FET de pequeña señal dentro de un dado tampoco tienen una resistencia en serie, por lo que claramente hay un punto en el que la pequeña corriente instantánea no es peligrosa para los FET. ¿En qué punto el pulso de alta corriente es lo suficientemente alto como para justificar una resistencia en serie?
¿Cómo afecta esto la inductancia de trazas/pines, etc.?
La inductancia sin duda ayudaría a reducir la corriente instantánea vista por el GPIO, pero me imagino que dentro de un troquel, la inductancia de seguimiento es muy pequeña (es decir, insignificante), de lo contrario, no podríamos obtener frecuencias de conmutación tan altas con nuestros elegantes procesadores. .