Problemas con la corriente de fuga de entrada en un microcontrolador

Estoy tratando de construir un sistema en el que un microcontrolador recibe (a través de uno de sus pines de entrada) un 1 lógico si se presiona un interruptor y un 0 lógico si no se presiona. Para ese propósito, quiero implementar un circuito como el siguiente:

ingrese la descripción de la imagen aquí

Entiendo que la resistencia de 10k es necesaria para evitar un corto circuito entre los 3.3V y tierra, lo que no tengo del todo claro es porque debe ser de 10k.

De acuerdo con la explicación que estoy leyendo, ese valor se elige para el microcontrolador IIL e IIH (Corriente de fuga de entrada, ¿verdad?) Es 0.2 micro amperios, y esto es lo que realmente no entiendo.

En el texto que estoy leyendo, se llama corriente de entrada del pin de entrada del microcontrolador , y supongo que es algo así como una corriente residual que el microcontrolador está entregando (a través del pin de entrada). ¿Tengo razón?

Si es así, ¿cómo es posible que exista esa corriente si el circuito está abierto? ¿Cómo puede un pin de ENTRADA entregar corriente al exterior?

Finalmente, si mis suposiciones son más o menos correctas, eso significa que lo que necesito es lograr un voltaje entre 0 y 0.8 V (considerado 0 lógico por el microcontrolador según su hoja de datos).

Entonces, como V = I * R, si pongo una R de 10k, eso significa que V = 2 microamperios * 10K ohmios = 20 milivoltios, que está entre 0 y 0,8, por lo que obtendré un 0 lógico. ¿Es correcto ?

Si es así, según tengo entendido, podríamos lograr el mismo objetivo con muchas resistencias diferentes, siempre que generen un voltaje entre el pin de entrada y la resistencia que esté entre 0 y 0.8, ¿verdad?

Correcto. Pero, ¿ha considerado que el entorno puede ser ruidoso, con señales lógicas cercanas volando hacia arriba y hacia abajo? Si el interruptor es remoto, podría considerar un valor pequeño para la resistencia desplegable.
Un pin de entrada tiene (generalmente) una etapa de entrada de 2 transistores, a menudo con protección contra sobrevoltaje y bajo voltaje (generalmente dispositivos schottky en partes modernas). Todos estos elementos tendrán alguna fuga del riel de potencia (cuando la entrada es baja) y del riel negativo (cuando la entrada es alta). De ahí viene la corriente de fuga.
10k R es solo un valor fácil de encontrar.
por qué debe ser 10k. No tiene que ser 10k. 100 ohmios funcionarían, pero luego fluyen 3,3 V/100 = 33 mA cuando presiona el botón. Esos 33 mA se "desperdician" y aumentan el consumo de energía del dispositivo. 10 Mohm también podría funcionar, pero luego el "pull hacia abajo" es tan débil que un teléfono celular cercano o la humedad pueden interrumpir el funcionamiento normal. En general, usamos de 10 k a 100 k ohmios, ya que es un buen compromiso entre estos.
¿Cuál es el dispositivo TM4Cxx exacto? ¿Cuál es el pin (E/S lenta/rápida))?

Respuestas (1)

¿Cómo es posible que exista esa corriente si el circuito está abierto? ¿Cómo puede un pin de ENTRADA entregar corriente al exterior?

Los pines MCU modernos son muy complejos. Son configurables por firmware, y contienen todas y cada una de las opciones para las que está diseñado un GPIO, para poder cambiar de configuración. A continuación se muestra un diagrama de bloques simplificado para el pin GPIO de Paspberry Pi:

ingrese la descripción de la imagen aquí

Como se puede ver, el pin tiene una conexión al búfer de SALIDA (que lógicamente está deshabilitado si el pin está configurado como entrada), luego hay una resistencia pull-up/pull-down con un interruptor, hay protección ESD con diodos de sujeción, y hay un búfer de entrada. Además, puede haber otras funciones opcionales como entradas analógicas ADC o salidas DAC.

Todos estos elementos están hechos de transistores CMOS en configuraciones complicadas, y cada transistor tiene alguna fuga. Puede ser pequeño, pero una celda GPIO moderna puede contener CIENTOS de transistores, y el pin externo puede tener una docena de ellos conectados permanentemente. La combinación de fugas no es predecible debido a la variación de fabricación y los diseñadores trabajan duro para limitar la fuga total. Esta fuga combinada puede tener una dirección positiva o negativa (hala ligeramente hacia arriba o hacia abajo) y se especifica en las hojas de datos del fabricante (ejemplo) , generalmente del orden de +-1uA. Es por eso que necesita tener un tirón externo (hacia abajo o hacia arriba) que sea lo suficientemente fuerte como para dominar la fuga inherente y tener niveles lógicos bien definidos.

EJEMPLO: ¿Qué valor de resistencia se necesita para dominar 1uA (I = 10^-6 A) de corriente de fuga hasta el nivel lógico "0"? Suponiendo que la lógica "segura" "0" sea 0,5 V, V=I*R, entonces R = 500k es teóricamente suficiente para que cualquier pin con fugas llegue a la lógica "0" en todas las "esquinas" del proceso de fabricación. Para estar seguro, 100K sería muy bueno. Sin embargo, en un aspecto práctico, es necesario recordar que algunos fundentes de soldadura solubles en agua "sin limpieza" pueden superar los 100K si el pin está muy cerca de Vcc, por lo que podría ser mejor usar los 10K mencionados, o/y limpiar (y hornear) las tablas a fondo en la producción.