¿Cuál es la corriente de entrada y salida de los pines GPIO de un microcontrolador?

Estoy tratando de encontrar la corriente hundida y generada por los pines GPIO del STM32G030 (STM32G030x6/x8) . Dice en la página 40 de la hoja de datos :

Características actuales del microcontrolador

La corriente de salida absorbida por cualquier E/S y pin de control

Cuando dice corriente de salida, sugiere que el pin GPIO está enviando la corriente a lo que sea que esté conectado, pero luego dice hundido , lo que hace que parezca que el pin GPIO está absorbiendo la corriente. Entonces, ¿qué significa?

En la página 62 de la hoja de datos dice:Salida de corriente de conducción

¿Qué significa VOL/VOH relajado ?

Supongo que lo que querían decir es que cuando consume más corriente que 6 mA (cuando GPIO funciona como salida), el VOL / VOH será más alto que el especificado en la hoja de datos. Entonces, si esta salida muy cargada está conectada a la entrada de un circuito lógico, el circuito no podrá reconocer correctamente los estados bajo o alto.
La salida absorberá la corriente si la carga está conectada entre Vdd y el pin de salida. Y la salida está en estado bajo. Y la salida generará la corriente si la carga está conectada entre el pin de salida y GND y la salida está en un estado alto.
"corriente de salida" no significa "el pin GPIO está emitiendo la corriente", significa "la corriente cuando el pin está configurado como salida", a diferencia de cuando el pin está configurado como entrada.
Si configura un GPIO como entrada en su código y el voltaje aplicado al GPIO está entre 0 y VDD, entonces no tendrá que preocuparse por los límites de corriente de GPIO. Estos límites entran en juego cuando intenta llevar un nivel alto a un cortocircuito (o una resistencia pequeña) o si tiene un cortocircuito a VDD pero intenta bajar el pin. Si está utilizando un GPIO para impulsar una carga que necesita hundirse o generar mucha corriente, hay formas de hacerlo con transistores o búferes lógicos independientes.
Simplemente significa que el pin puede generar dos voltajes diferentes para ENCENDIDO y APAGADO . Cuando está APAGADO puede absorber un máximo de 15 mA, cuando está ENCENDIDO proporcionará un máximo de 15 mA

Respuestas (5)

Tiene un fragmento de las calificaciones máximas absolutas en la hoja de datos , que es más obvio en contexto:

ingrese la descripción de la imagen aquí

Por lo tanto, nunca debe exceder el sumidero de 15 mA o la fuente de corriente de cualquier pin. Además de esa limitación, la corriente total generada o hundida nunca debe exceder los 80 mA. Entonces, si tiene 8 salidas, cada una de las cuales genera 10 mA, eso es justo en el límite máximo para el chip (no recomendable).

Al igual que con todas las clasificaciones de "Máximo absoluto", le recomendamos que se mantenga alejado de ellas si desea una buena confiabilidad.

Las otras clasificaciones se refieren a lo que puede hacer y tienen límites predecibles en el voltaje de salida en condiciones de hundimiento y fuente.

Estos están bien detallados y explicados en la Tabla 50: Vol para disipar 6 mA o menos es como máximo 0,4 V, y Voh para generar 6 mA o menos es al menos 2,4 V con Vddio>= 2,7 V. Del mismo modo, la caída máxima es de 1,3 V para sumidero/fuente <15 mA. De hecho, bastante relajado, especialmente con un Vddio de 2.7V.

Y también hay límites para 3mA: las salidas están bastante bien caracterizadas con límites garantizados para varios rangos de corriente útiles. Mejor que la mayoría.

Los límites de 15 mA quizás sean útiles si está manejando un LED directamente y no le importa demasiado la corriente exacta.

ingrese la descripción de la imagen aquí

Entonces, si tengo un suministro de 3.3 V y un interruptor conectado al microcontrolador, tengo un pulldown de 10k para asegurar que cuando el interruptor esté abierto, el pin no flote. También debería tener una resistencia limitadora de corriente que permita que aparezca una especie de suministro 3.3 en el pin del microcontrolador (por ejemplo, permitir 3 V en el pin, 6 mA fluyendo hacia el pin, por lo tanto, 0,3 V a través de la resistencia limitadora de corriente, R = V/I = 0,3 V/ 6 mA = 50 ohmios)?
@MRB normalmente, si configura un GPIO como entrada, tiene una alta impedancia para las señales en el rango normal de 0 a VDD. Por lo tanto, probablemente no se necesite una resistencia limitadora de corriente para una entrada. Si configura el pin como una salida y lo baja mientras el interruptor está cerrado, entonces necesitará algún tipo de resistencia limitadora de corriente. No está claro qué caso se aplica a usted.
Lo que dijo ... no se requiere limitación de corriente a menos que desee cubrir el problema potencial de una entrada configurada inadvertidamente como una salida.

ingrese la descripción de la imagen aquí

Fuente de la imagen: configuración GPIO del microcontrolador ST AN4899 STM32 para ajustes de hardware y bajo consumo de energía

  • Línea azul: abastecimiento
  • Línea roja: hundimiento

¿Qué significa VOL/VOH relajado?

En mi opinión, significa que un pin puede hundirse o generar 6 mA a través de los diodos del cuerpo, si, por ejemplo, el voltaje aplicado en GPIO es mayor que Vdd o es menor que GND. Pero puede absorber/generar 15 mA si los transistores están en modo de conducción, por lo tanto, menos resistencia.

@ilkkachu Los dos círculos superpuestos son un símbolo de la fuente actual. Mientras que entre Vdd y GND hay una fuente de voltaje (no representada), al final, las líneas roja y azul están cerradas a GND.
Creo que "VOL/VOH relajado" significa que puede hundir o generar hasta 6 mA mientras permanece dentro del rango de voltaje VOL/VOH, pero puede subir hasta 15 mA si lo desea (está perfectamente bien), pero el voltaje del pin no Todavía no estará en ese rango de voltaje, por lo que debe tenerlo en cuenta al diseñar su circuito.

Cuando dice corriente de salida, sugiere que el pin GPIO está enviando la corriente a lo que sea que esté conectado, pero luego dice hundido, lo que hace que parezca que el pin GPIO está absorbiendo la corriente. Entonces, ¿qué significa?

Si hay (como ejemplo) una resistencia pull-up en la salida GPIO, entonces el GPIO absorberá corriente en sí mismo cuando intente impulsar un nivel lógico de salida de cero.

La fuente de corriente significa enviar corriente a una carga conectada de 0 voltios. La corriente de hundimiento significa que la corriente se invierte y fluye desde una carga polarizada positivamente hacia el pin.

relajado VOL/VOH significa que los "altos" y los "bajos" lógicos no alcanzarán el mismo voltaje a los rieles de suministro que cuando se sumergen/suministran corrientes más bajas (en cuyo caso se garantizará que estará dentro de un cierto voltaje máximo al rieles, digamos dentro de 0,3 voltios, etc.). Esto limitará los valores de resistencia pull-up/down que puede usar para garantizar una transición lógica de baja a alta bien definida. Solo asegúrese de no usar un resistor pull-up/down demasiado bajo si desea valores de voltaje alto/bajo bien definidos.

¿Cómo sabe / cómo puede asegurarse de que el microcontrolador esté usando altos y bajos relajados o si el alto y el bajo llegarán a los rieles de suministro (0v y 3.3V)? Si quiero que el microcontrolador alcance los rieles de voltaje, ¿debo usar el valor de 6 mA?
La especificación dice que el GPIO puede hundirse o generar hasta 15 mA de manera segura, pero si lo hace hundirse o generar más de 6 mA, es posible que el voltaje de salida no cumpla con las especificaciones "oficiales" de alto o bajo voltaje.
@MRB Si se hunde o genera más de 6 mA, el voltaje puede caer o aumentar más de lo que el voltaje VOH o VOL dice que debería. Con una salida alta y una fuente de 6 mA, tiene la garantía de que el voltaje es VOH o superior. Pero si aumenta la corriente a 9 mA, ya no se garantiza que el voltaje sea VOH o superior. Si necesita que el voltaje sea VOH o superior, no puede extraer más de 6 mA. Si no lo necesita, puede extraer hasta 15 mA.
En general, querrá adoptar un enfoque de bajo consumo de energía para su diseño, por lo que sus pull-ups/downs deben ser altos. Si desea controlar/hundir dispositivos con más de 6 mA, puede usar búferes (puertas/BJT o MOSFET) que tomarán la corriente que necesita, digamos incluso hasta 100 mA o más si es necesario. Solo tenga en cuenta que no debe usar los GPIO para> 6 mA, eso es todo ...

Cuando dice corriente de salida, sugiere que el pin GPIO está enviando la corriente a lo que sea que esté conectado, pero luego dice hundido , lo que hace que parezca que el pin GPIO está absorbiendo la corriente. Entonces, ¿qué significa?

La terminología aquí es:

  • "Entrada" significa que el chip está leyendo información.
  • "Salida" significa que el chip está enviando información.
  • "Sink" significa que el chip está atrayendo carga positiva.
  • "Fuente" significa que el chip está expulsando una carga positiva.

La forma más directa para que un chip emita información es enviar un 0 emitiendo un voltaje bajo (en otras palabras, tratando de atraer una carga positiva) y enviar un 1 emitiendo un voltaje alto (en otras palabras , tratando de expulsar la carga positiva).

Entonces, cuando la hoja de datos dice "corriente de salida hundida: 15 mA", eso significa que cuando ese pin envía un 0 (al intentar atraer una carga positiva), no debe permitir que entren más de 15 mA de carga positiva. Del mismo modo, cuando la hoja de datos dice "fuente de corriente de salida: 15 mA", eso significa que cuando ese pin envía un 1 (al intentar sacar una carga positiva), no debe dejar que salgan más de 15 mA de carga positiva. .