¿Por qué necesitamos resistencias de tracción externas cuando los microcontroladores tienen resistencias de tracción internas?

Los microcontroladores tienen resistencias internas de extracción y extracción, pero la mayoría de los circuitos tienen resistencias de extracción externas.

Busqué respuestas en Google y algunos sitios dijeron que esas resistencias no son tan fuertes, pero pensé que eran lo suficientemente buenas para funcionar. Pensé que podrían necesitar resistencias externas porque las resistencias internas deben activarse mediante programación.

Entonces, para alguna situación no planificada, también conectan resistencias externas. Pero no estoy seguro de ello.

¿Cuál es la verdadera razón detrás de usar elementos externos cuando tenemos elementos internos?

Algunos microcontroladores tienen resistencias internas. Y esas resistencias no tienen el tamaño correcto para todas las aplicaciones (por lo general, están optimizadas para baja potencia).
¿Qué sucede si omito las resistencias pullup en las líneas I2C? Este hilo es un análisis de un intento de usar resistencias pull-up internas con I2C.
"Entonces, para alguna situación no planificada, también conectan resistencias externas". A veces también situaciones planificadas. A menudo es más fácil/más rápido/más barato en un entorno de producción simplemente mover una resistencia de un lugar a otro que tener que volver a actualizar el firmware para lograr el mismo resultado. Hacerlo en el firmware probablemente implicaría una segunda versión del mismo firmware que necesita mantenimiento. Con una modificación de soldadura, todo lo que se necesita es una instrucción de trabajo condicional.

Respuestas (3)

Hay algunas razones posibles, como

  • Necesitar que la resistencia esté presente durante el encendido, ya que el microcontrolador aún no habrá comenzado a ejecutarse.
  • Necesita una resistencia más precisa que la resistencia interna. Las resistencias pull-up/-down internas tienen tolerancias muy amplias.
  • Necesitar una resistencia mayor o menor que la proporcionada internamente. Por ejemplo, I 2 C generalmente usa pullups más fuertes, mientras que es posible que desee un pullup muy débil para monitorear un interruptor y ahorrar energía.
  • Necesidad de tirar a un voltaje que no sea el voltaje de suministro o tierra del microcontrolador.
  • Usando una resistencia pull-up/-down junto con el ADC en el microcontrolador. Algunos microcontroladores desactivan sus resistencias internas en cualquier pin al que esté conectado el ADC.
  • Necesita una resistencia pulldown en un microcontrolador que solo tiene pullups.
No pude entender el último segundo punto... ¿Por qué los microcontroladores deshabilitarían sus resistencias internas con ADC?
@GunjanGangwani No creo que sea una buena decisión de diseño, pero la idea es que, por lo general, no desea que el ADC extraiga corriente de lo que está midiendo, por lo que desea una conexión de alta impedancia. Supongo que algunos diseñadores no confían en los desarrolladores de firmware para desactivar siempre las resistencias internas.
Creo que normalmente se debe a que los pull-ups/pull-downs están asociados con los búferes de entrada digital, y habilitar los ADC a veces puede deshabilitar por completo el circuito de búfer digital (y con él, las resistencias pull-up/down).
@AbeKarplus, ¿cómo lograría una alta impedancia agregando pull-ups externos cuando el pull-up interno está deshabilitado/habilitado en un pin en la operación ADC? Ningún pull-up debería ser mejor que cualquier pullup en este caso, ¿verdad?
@Ashutosh Si desea alta impedancia, por supuesto que no usa ningún pullup. Algunos microcontroladores imponen esto apagando automáticamente sus impulsos internos, lo cual es un problema en aquellas situaciones en las que no desea una alta impedancia.
Las entradas de ADC de @GunjanGangwani deben aislarse de todos los demás circuitos para proporcionar el piso de ruido más bajo. Las entradas digitales a menudo consumen más corriente de la deseada cuando se manejan entre sus voltajes "alto" y "bajo". Los microcontroladores más antiguos usaban un interruptor interno para desconectar la entrada de la parte digital cuando ese pin se usaba para ADC, y es esa parte digital la que tiene el pull up. Esto se desconecta para aislar el ADC y reducir el ruido de fondo, así como para evitar un posible consumo de corriente adicional (o en chips muy antiguos, cmos latchup).

Algunos (o quizás muchos) microcontroladores tienen resistencias pull-up internas, pero a menudo tienen valores bastante altos. Muchas aplicaciones requerirían pull-ups de menor valor.

También se pueden requerir resistencias pull-up en las entradas de los circuitos lógicos normales (puertas, contadores, etc.) que no tienen pull-ups internos (y a veces queremos resistencias pull-down, en su lugar...)

resistencias pull-up internas, pero estos son a menudo valores bastante altos . Estaba creando una aplicación de baja potencia recientemente y descubrí que las resistencias pull-up eran de aproximadamente 50 k, lo que me pareció bastante bajo , lo que resultó en un uso excesivo de corriente. Entonces usé una resistencia externa de mayor valor. Al final depende de cuáles sean tus necesidades.

Además, usaría una resistencia externa cada vez que necesite un valor de resistencia real. Los MCU generalmente no tienen resistencias pull-up reales, sino MOSFET que hunden una pequeña corriente, por lo que su valor de resistencia equivalente puede variar enormemente según la señal que aplique al pin.