Quando usar resistores pull-down vs. pull-up

42

Depois de aprender e experimentar com microcontroladores, entendi o conceito de resistores pull-up e pull-down. Agora entendo quando e como usá-los e como eles funcionam. Eu usei principalmente pull-ups porque fui ensinado, mas sempre pareceu um pouco para trás, pois o fechamento do comutador define a entrada do MCU como LOW. Eu acho que faria mais sentido usar um resistor pull-down, para que a entrada seja BAIXA quando o interruptor estiver aberto, mas essa é apenas a minha maneira de pensar.

Devo puxar minhas entradas de lançamento único para cima ou para baixo? Quando é preferível puxar para baixo do que puxar para cima e vice-versa?

osvein
fonte
3
Como (outra) abelha eletrônica, devo dizer que essa pergunta não é de forma alguma estúpida. Não me tornei, também não sei, mas porque: "Visualizado: 1989 vezes".
steenhulthin
* porque * 12998 vezes
Mike Causer

Respostas:

29

A resposta depende do que você deseja que a configuração "padrão" seja. Por exemplo, digamos que você tenha um MOSFET de canal N no fluxo a seguir e deseje desativá-lo por padrão. Em seguida, você usaria um resistor pull-down para garantir esse comportamento se a entrada se tornar alta impedância.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Por outro lado, suponha que você tenha um MOSFET de canal P upstream e queira desativá-lo por padrão. Desta vez, é necessário um resistor pull up para criar esse comportamento.

esquemático

simule este circuito

Há também o caso alternativo em que você deseja que um dispositivo seja ativado por padrão, caso em que os dois casos acima seriam revertidos (pull-up para o MOSFET de canal N, pull-down para o MOSFET de canal P).

Algumas outras considerações:

  1. As linhas I2C especificam resistores de pull-up porque é esperado que os dispositivos tenham um dreno aberto para o aterramento e, portanto, precisam de alguma maneira de aumentar o potencial da linha.

  2. Os comparadores analógicos geralmente são configurados como dispositivos de dreno aberto e, portanto, também precisam de resistores pull-up para obter um alto potencial de saída.

  3. Você pode obter mais corrente usando resistores pull-pull / pulldown, dependendo do que está conectado à entrada / saída.

  4. Qualquer configuração pode funcionar igualmente bem em seu aplicativo (ou seja, não há vantagem significativa de uma maneira ou de outra).

... E várias razões muito específicas para aplicativos, pelas quais uma configuração pode ser preferida.

helloworld922
fonte
16

Se o sinal ainda não tiver uma especificação, use o que fizer mais sentido para você. É sua escolha fazer uma entrada ativa-alta ou ativa-baixa .

Se for botões, certifique-se de usar um circuito de rejeição (ou faça isso em software).

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Samuel
fonte
+1 na única comparação lado a lado entre ativo-alto e ativo-baixo que eu já vi. Bom, esclarece as coisas.
TomServo
15

Se o seu projeto de circuito é tal que você pode escolher - em outras palavras, o resto do circuito não exige que você puxe para cima ou para baixo -, você deve considerar a proteção e proteção em caso de falha.

Se o seu microcontrolador falhar, ou apenas essa saída falhar, o puxar para cima ou para baixo estará em vigor. Como isso mudará a operação do seu dispositivo? Isso colocará o usuário em perigo - por exemplo, forçando um elemento de aquecimento? Isso afetará a segurança, como desativar uma fechadura da porta?

Os resistores pull / down determinam o estado padrão do fio. A decisão sobre qual deve ser o estado padrão depende da segurança, proteção e, finalmente, da funcionalidade desejada do circuito.

Adam Davis
fonte
5

Se você estiver trabalhando com um Arduino / ATmega328, poderá usar o resistor pull-up embutido .

Existem resistores de pull-up de 20K embutidos no chip Atmega que podem ser acessados ​​a partir de software. Esses resistores de pull-up internos são acessados ​​configurando o pinMode () como INPUT_PULLUP. Isso inverte efetivamente o comportamento do modo INPUT, onde ALTO significa que o sensor está desligado e BAIXO significa que o sensor está ligado.

O valor desse pullup depende do microcontrolador usado. Na maioria das placas baseadas em AVR, o valor é garantido entre 20kΩ e 50kΩ. No Arduino Due, ele está entre 50kΩ e 150kΩ. Para o valor exato, consulte a folha de dados do microcontrolador em sua placa.

Ao conectar um sensor a um pino configurado com INPUT_PULLUP, a outra extremidade deve ser conectada ao terra. No caso de uma chave simples, isso faz com que o pino leia ALTO quando a chave está aberta e BAIXO quando a chave é pressionada.

O Raspberry Pi também os possui .

Laktak
fonte
4

Muitas vezes, você deseja pull-ups ou downs - geralmente downs - nas saídas de dispositivos programáveis, como microcontroladores, para definir seu estado durante as sequências de inicialização. Essas saídas geralmente têm alta impedância na inicialização e os dispositivos conectados podem receber sinais indesejados se isso não for feito. Se, por exemplo, vários suprimentos estiverem envolvidos, é melhor projetar cada seção como segura com zero volts nas entradas e usar pull-downs.

Um pouco mais obscuro que as outras respostas, mas vi exemplos envolvendo fumaça azul e ameaças de ação legal.

Dave B
fonte
Esclarecimento: a questão não era por que alguém deveria usar resistores de pull-up ou pull-down, mas se deveria puxar para cima ou para baixo.
Osvein