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

15

Los microcontroladores tienen resistencias pull up-pull down internas, aunque la mayoría de los circuitos tienen resistencias pull pull externas.

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

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

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

Gunjan Gangwani
fuente
66
Algunos microcontroladores tienen resistencias internas. Y esas resistencias no tienen el tamaño correcto para todas las aplicaciones (generalmente están optimizadas para baja potencia).
Dave Tweed
2
¿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.
Nick Alexeev
"Entonces, para una situación no planificada, también conectan resistencias externas". A veces situaciones planificadas también. 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 flashear 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.
Wossname

Respuestas:

30

Hay algunas razones posibles, como

  • Necesidad de que la resistencia esté presente durante el encendido, ya que el microcontrolador aún no ha comenzado a ejecutarse.
  • Necesita una resistencia más precisa que la resistencia interna. Las resistencias internas pull-up /-down 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, para ahorrar energía.
  • Necesidad de tirar a un voltaje que no sea el voltaje de suministro del microcontrolador o tierra.
  • 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.
  • Necesitar una resistencia pulldown en un microcontrolador que solo tenga pullups.
Abe Karplus
fuente
No podía entender el último segundo punto ... ¿Por qué los microcontroladores desactivar su encendido resistencias internas con ADC
Gunjan Gangwani
3
@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 deshabilitar siempre las resistencias internas.
Abe Karplus
77
Creo que normalmente es porque los pull-ups / pull-down 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).
Connor Wolf
3
@Ashutosh Si desea alta impedancia, por supuesto, no utiliza ningún pullup. Algunos microcontroladores hacen cumplir esto apagando automáticamente sus pullups internos, lo cual es un problema en aquellas situaciones en las que no desea alta impedancia.
Abe Karplus
1
Las entradas de @GunjanGangwani ADC deben aislarse de todos los demás circuitos para proporcionar el nivel de ruido más bajo. Las entradas digitales a menudo consumen más corriente de la deseada cuando se accionan entre sus voltajes "alto" y "bajo". Los microcontroladores más antiguos usaban un interruptor interno para desconectar la entrada de la porción digital cuando ese pin se usaba para ADC, y es esa porción digital la que tiene el pull up. Esto se desconecta tanto para aislar el ADC como para reducir el ruido de fondo, así como para evitar un posible consumo de corriente adicional (o en chips muy antiguos, bloqueo de CMOS).
Adam Davis
9

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

Las resistencias pull-up también pueden ser necesarias en las entradas a los circuitos lógicos normales (compuertas, contadores, etc.) que no tienen pull-ups internos (y a veces queremos resistencias pull-down, en cambio ...)

Peter Bennett
fuente
1
resistencias pull-up internas, pero a menudo estos son valores bastante altos Estaba construyendo una aplicación de baja potencia recientemente y descubrí que las resistencias pull-up eran de aproximadamente 50 k, lo que encontré bastante bajo, lo que resultó en un uso excesivo de corriente. Entonces utilicé una resistencia externa de mayor valor. Al final, depende de cuáles sean sus necesidades.
Bimpelrekkie
3

Además, usaría una resistencia externa cada vez que necesite un valor de resistencia real. Las 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 dependiendo de la señal que aplique al pin.

Dmitry Grigoryev
fuente