¿Qué es una resistencia pull up? ¿Qué hace? ¿Y por qué es necesario?

26

Me he encontrado con muchos circuitos simples que muestran cómo encender un LED u otra cosa. Las resistencias pull up suelen mencionarse. ¿Qué hacen? Algunos pines GPIO requieren resistencias pull up y otros no, ¿cuál es la diferencia?

Menuta
fuente
2
Miré la explicación de Wikipedia y no tenía ningún sentido. Iba a editar la pregunta para reflejar esto, pero usted respondió primero.
Menuta
muy bien explicado en este sitio seattlerobotics.org/encoder/mar97/basics.html

Respuestas:

11

Desde el sitio web de Arduino :

A menudo es útil dirigir un pin de entrada a un estado conocido si no hay ninguna entrada presente. Esto se puede hacer agregando una resistencia pullup (a +5 V), o una resistencia pull-down (resistencia a tierra) en la entrada, con 10 kΩ como valor común.

PERO : Eso es del sitio web de Arduino. ¡Recuerde que los pines Raspberry GPIO son solo tolerantes a 3.3 V (así que, haga el pullup a 3.3 V, no a 5 V en el Raspberry Pi)!

Aquí hay un ejemplo de un esquema de resistencia pull-up.

un ejemplo

Un pull-up asegurará que el pin esté arriba sin absorber demasiada corriente. Una puerta tiene tres estados posibles: ENCENDIDO, APAGADO y FLOTANTE.

El estado FLOTANTE no es muy útil ya que no se puede convertir a un valor booleano. Por lo tanto, resistencias pull-up y pull-down: están ahí para eliminar el estado FLOTANTE.

Steven Devijver
fuente
3
Técnicamente FLOTANTE no es un estado lógico, sino un término técnico suelto utilizado para describir que no está conectado y puede recibir combinaciones aleatorias de ALTO / BAJO causadas por el ruido de descarga estática generado por objetos cercanos. No existe una variable lógica para flotar, excepto el número matemático. Digital es 1 o 0.
Piotr Kula
7

Se utiliza una resistencia pull-up o pull-down en los pines de entrada para definir un estado en el caso de que una entrada no tenga nada conectado o la parte conectada esté en el estado de alta impedancia (Z). Las entradas sin un estado definido tienen el problema de que el valor de entrada puede ser cualquier cosa (0 o 1), llamado flotante.

Esto se explica con mayor profundidad en el artículo en Wikipedia (que Jivings agregó a los comentarios de su pregunta), y un poco más visualmente en este artículo en SparkFun .

ikku
fuente
La descripción de Sparkfun es brillante en comparación con Wikipedia hace un número mucho menor de suposiciones acerca de un conocimiento lectores
Menuta
2

Algo a tener en cuenta (al principio me confundió un poco) es que una resistencia pull-up o pull-down es solo una resistencia estándar en un rol específico. Más de una persona ha intentado comprar resistencias pull-up solo para descubrir que no existen. De lo contrario, es tal como suena, una resistencia estándar que eleva el voltaje hasta 5 V / 3,3 V o hasta 0 V como el estado normal.

Nathan
fuente
1
Parte de lo que es confuso aquí es que no es realmente la resistencia la que hace el "pull-up": la pull up es lo que está al otro lado de la resistencia. La resistencia solo controla el flujo de corriente a través del pull-up. raspberrypi.stackexchange.com/questions/28973/…
goldilocks
1

El diccionario de electrónica define el pull-up de la siguiente manera:

pull-up: Descriptivo de un circuito o componente utilizado para elevar el valor (p. ej., impedancia) de un circuito al que está conectado.

Si un LED está conectado a una fuente de alimentación de +5 V y es controlado (LED ENCENDIDO y APAGADO) por un microcontrolador / microprocesador o por algún otro medio, durante el estado ENCENDIDO, la fuente de alimentación puede suministrar alta corriente, a su vez, la alta corriente puede dañar El LED.

Para limitar la alta corriente de la fuente, una resistencia pull-up eleva la impedancia y limita la corriente que suministra el LED desde la fuente de alimentación (+5 V). Por lo tanto, el LED está protegido contra altas corrientes. Según el circuito, la función pull-up varía y protege la ANDlógica cableada a un bus I²C.

Mohan PAKALAPATI
fuente
1
@SlySven tiene razón: esta respuesta no es correcta, electrónicamente hablando. AFAIK no hay un concepto en electrónica de "elevar la impedancia". En el contexto de los circuitos lógicos, una resistencia pull-up REDUCE la impedancia, y al hacerlo influye en el voltaje donde está conectado, generalmente hacia un voltaje positivo (de ahí el 'up' en pull-up, también puede tener un pull -down, generalmente a 0V). La resistencia en serie con un LED simplemente determina la corriente que puede fluir a través del LED; esto no está relacionado de ninguna manera con un pull-up a pesar de que el esquema puede ser similar.
cebada
1

El término pull-up o pull-down es un término utilizado para describir el papel que desempeña una resistencia. Se tira de la línea de señal que está conectado a en un terminal hacia el Voltaje de alimentación / tierra / referencia que está presente en el otro terminal. La respuesta anterior es incorrecta al decir "aumenta la impedancia", más bien es para reducir la resistencia / impedancia en el circuito de modo que la línea asuma un estado conocido cuando no lo hará, por ejemplo, un pin de entrada en un circuito integrado que de otra manera no conectado. Como esto contrarrestará los efectos cuando algo externo esté conectado, la cantidad de resistencia debe ser lo suficientemente baja como para ser efectivatirar si el pasador se deja accidental o deliberadamente en circuito abierto pero lo suficientemente alto como para que cualquier circuito externo no se cargue indebidamente para superar el efecto cuando quiere conducir la línea en la otra dirección.

Los pines GPIO en el Pi tienen unos internos controlables que entiendo que en su mayoría se pueden hacer para que las líneas asuman un circuito abierto lógico bajo o alto o izquierdo, el último de los cuales está bien si hay un resistor pull up / down proporcionado por el usuario para hacer el trabajo (posiblemente como parte del circuito externo de todos modos). El diseño de este último es particularmente significativo si el circuito externo está funcionando desde rieles de suministro de más de 3,3 voltios porque en ese caso el pull-up no debe intentar elevar el voltaje en la línea por encima de 3,3 V - una resistencia en serie (digamos 4K7 ) y un diodo Schottky (por ejemplo, un BAT85) con su ánodo al lado de la resistencia en serie conectada al pin GPIO y su cátodo al riel de suministro de 3.3V es una forma de evitar esto: la baja caída de voltaje directo (<0.2V) de ese tipo de El diodo evita que la línea de señal sea lo suficientemente alta como para dañar el Pi, a expensas de un tiempo ligeramente mayor para que las señales se propaguen hacia el Pi.

Estoy comenzando con Pi ya que compré dos de segunda mano ayer {aunque he estado en electrónica durante más de 35 años} y estoy buscando información sobre el Pinout de Pi exactamente por este motivo, y para el mejor lugar para obtener dos unidades de suministro de energía, ya que no venían con ellas. 8-P

SlySven
fuente