¿Es realmente una mala idea dejar flotando un pin de entrada de MCU?

Escuché que dejar un pin flotando en una MCU cuando se configura como una entrada (frente a la salida predeterminada) es malo para el pin y eventualmente puede causar que falle prematuramente. ¿Es esto cierto? NB, en mi caso, el pin está flotando en algún lugar entre 0.3V y 1.3V debido a una señal de video entrante. Esto a veces cae en la zona de nadie de 0.8V - 2.0V cuando se opera desde 3.3V.

¿Ha revisado la hoja de datos y la documentación de la familia MCU? Deberían tener algunas respuestas bastante definidas y puedes ver cómo se implementan internamente los pines.
@XTL, los escaneé, pero no encontré ninguna referencia. Dicen que los pines flotantes pueden entrar en estados indefinidos, pero no mencionan si podría causar problemas.
Hay una diferencia entre una entrada digital flotante y una entrada definida como analógica. Parece que esta es una entrada analógica.
@Martin No puedo hacer que el pin sea una entrada analógica. Tengo un intervalo de tiempo de ~125 ns para cada píxel en el video (reloj de instrucciones de 25 ns), por lo que no puedo gastar ni un nanosegundo más.
¿Qué MCU está usando que predetermina todos los pines para la salida ? Eso suena como una receta para el desastre.

Respuestas (6)

Problema:
Dejar un pin configurado como entrada flotante es peligroso simplemente porque no puede estar seguro del estado del pin. Como mencionó, debido a su circuito, su pin a veces estaba BAJO o a veces en tierra de nadie o a veces podía ir a ALTO.

Resultado:
Esencialmente, la entrada flotante definitivamente causará una operación errática del chip o un comportamiento impredecible. Me di cuenta de que algunos chips se congelaron simplemente acercando la mano a la placa (no llevaba una muñequera ESD) o algunos tenían un comportamiento de inicio diferente cada vez que se encendía la placa.

Por qué:
esto sucede simplemente porque si hay ruido externo en ese pin, el pin oscilaría, lo que consumiría energía como las puertas lógicas CMOS consumen energía cuando cambian de estado.

Solución:
la mayoría de los micros en la actualidad también tienen pullups internos, por lo que podría evitar que ocurra este comportamiento. Otra opción sería configurar el pin como salida para que no afecte a los internos.

Si lo usa como entrada, definitivamente causará entradas erráticas, pero ¿realmente afecta otras partes del chip y causa problemas de inicio?
Si ignoro el pin y no lo uso para ningún periférico, ¿todavía causaría problemas?
@endolith y Thomas - ¡Creo que mikeselectricstuff ha respondido esto por ti! Podría causar problemas simplemente al introducir ruido en otras partes del sistema. Sé que fue por el pin flotante, porque tan pronto como lo configuré en una salida, ¡los problemas desaparecieron!
No entiendo cómo una pieza flotante de metal puede introducir ruido en otras partes del sistema. Capta el ruido, sin duda, pero si no estás prestando atención a la entrada, eso no debería importar. ¿Los problemas de agitar las manos cerca están realmente relacionados con las entradas flotantes no utilizadas ?
Los pasadores flotantes TIL no son inofensivos. ¡Gracias IntelliChick y @Yann!
@endolith Tienes razón en su mayoría, un pin flotante a menudo oscila los estados y provoca un consumo de energía. Esto por sí solo no debería causar un problema, nunca he visto tal problema. Sin embargo, apostaría dinero a que una fuente de alimentación mal desacoplada podría permitir que ese ruido cause problemas reales. Lo único que tengo que decir es que estoy muy en desacuerdo con esta respuesta que siempre causará un problema.
@Kortuk: ¿Cómo oscila una entrada? ¿Cómo causa esto problemas en otros circuitos?
@endolith Una entrada de impedancia de él flotante a menudo bailará por todos lados. Realmente no importa lo que esté haciendo el pin, esa pequeña oscilación hace que el circuito de entrada del pin rebote con él a medida que cambia de estado. A medida que cambia de estado, consume energía, lo que provoca un consumo de energía que se sincronizará con la entrada, especialmente si la entrada rebota del ruido acoplado cercano, y empeora fácilmente cualquier problema de acondicionamiento de energía. Una vez más, sin embargo, nunca he visto que esto cause algo más que el consumo de energía, pero puedo imaginar el efecto en un circuito mal desacoplado.
Pero, ¿cómo lucha una resistencia contra el "pin flotante"?

Es un poco peor que simplemente estar en un estado desconocido o alternar innecesariamente. Los circuitos digitales de hoy en día son en su mayoría de tipo CMOS, con transistores que cambian tanto el lado alto como el bajo; cuando tenemos claros 1 y 0, están apagados o saturados, los dos estados más eficientes para que estén los transistores. Sin embargo, en el medio hay una región de operación lineal; se usa para amplificadores analógicos, pero no es tan eficiente como los extremos, lo que significa que se desperdicia más energía como calor en el transistor. En el peor de los casos, los transistores del lado alto y bajo tienen fugas (porque el pin de hecho no es ni alto ni bajo), y luego pueden combinarse para causar una corriente notable dentro del chip mientras intentan conducir el estado interno tanto alto y bajo, posiblemente haciendo lo mismo con la siguiente puerta en una reacción en cadena. El calor podría convertirse en un problema incluso si la energía no lo es. Las soluciones de IntelliChick aún se aplican.

Para los pines también conectados a ADC, algunos microcontroladores ofrecen la función de desactivar el búfer de entrada digital, para evitar tanto este problema como las fugas que distorsionan la señal.

¿Las entradas no tienen histéresis?
Las entradas de disparador Schmitt lo hacen, pero en general, no.

En la práctica, el principal efecto es un mayor consumo de energía. Si un pin está realmente flotando en lugar de estar conectado a una fuente de voltaje indeterminada, es posible que ocurra una oscilación que, además de aumentar el consumo de energía, puede introducir ruido en otras partes del sistema. Cualquier pin que tenga la capacidad de usarse para una entrada de ADC o comparador tendrá la posibilidad de desconectar el búfer de entrada digital para evitar este problema. (DIDR en AVR, ADCON1/ANSEL en PIC)

¿Qué oscilaría exactamente y por qué?
@endolith: el búfer de entrada en el pin. Piense en un búfer inversor con un condensador entre la entrada y la salida.
@FakeName: ¿Pero dónde está el inversor? ¿Dónde está la salida que retroalimenta a la entrada?
Básicamente, todos los pines IC IO pasan por un búfer (a menudo un inversor) en el IC Die . Dado que el búfer tendrá cables para la entrada y la salida, puede haber un acoplamiento capacitivo entre la entrada y la salida. Por lo tanto, si la entrada tiene una impedancia lo suficientemente alta, una transición en la salida del inversor puede hacer que la entrada del inversor cambie, haciendo que la salida cambie nuevamente, etc....

En general, es una mala idea dejar el pin de entrada flotando, ya que esto puede causar:

a) Problemas funcionales: estado de entrada desconocido, alternancia (por ejemplo, puede desencadenar una interrupción con ISR indefinido que bloquearía el procesador)

b) Mayor consumo de energía: lo más probable es que la puerta de entrada sea similar al inversor CMOS. Con esta estructura, cuando la entrada está lo suficientemente lejos de cualquiera de los rieles (por ejemplo, a la mitad del suministro), la corriente de cruce significativa fluirá constantemente.

c) Si la corriente de cruce fluirá, el fenómeno conocido como inyección de portador caliente puede reducir la vida útil del dispositivo. La puerta de entrada puede estar diseñada solo para conmutación normal, no para conducción continua, por lo que el dispositivo puede fallar catastróficamente. Sin embargo, tenga en cuenta que se necesitaría colocar el dispositivo en tales condiciones durante muchos cientos de horas a temperatura elevada para que esto suceda.

Tenga en cuenta que a) yb) son problemas reales que probablemente encontrará. En cuanto a c) es menos probable que ocurra un problema, pero ¿por qué correr riesgos?

La entrada alternará entre 0 y 1 en función de cualquier EMI. No estoy seguro de si hará que la entrada falle, pero hará que se use más energía porque las transiciones de 0 a 1 a 0.

Establézcalo en una salida y termine con eso.

Si lo configuro en una salida, 0 o 1, desconectará la señal de video y provocará una pérdida de video.
¿Puede habilitar un pull-up interno y terminar con eso?
Habilitar el pull-up interno debería ser bueno. El punto es ponerlo en un estado conocido y dejarlo ahí.

Algunos dispositivos CMOS de alta velocidad pueden destruirse si una entrada se deja flotando, pero el problema más común que se observará es un mayor consumo de corriente. En los microcontroladores de la serie PIC, la corriente adicional es del orden de cientos de microamperios por pin flotante. No lo suficiente como para causar daños en el dispositivo, pero lo suficiente como para afectar gravemente la duración de la batería en una aplicación que, de lo contrario, consumiría 5uA. Algunos chips tienen opciones para desactivar una entrada digital; si una entrada está deshabilitada, puede dejarse flotando libremente.