# Resistor pull-up

Resistores pull-up são resistores usados em circuitos lógicos eletrônicos para garantir que entradas se ajustem em níveis lógicos esperados no caso de dispositivos externos serem desconectados. Eles também podem ser usados na interface entre dois diferentes tipos de dispositivos lógicos, possivelmente operando em tensões diferentes.
A ideia de um resistor pull-up é que ele fracamente "puxe" (pull) a tensão do condutor que ele está conectado para nível lógico alto. Contudo, o valor do resistor é intencionalmente alto o suficiente para que, se qualquer outra coisa que puxe fortemente a tensão do condutor para 0V, a tensão irá para 0V. Um exemplo de algo que fortemente puxaria a tensão para 0V seria o transistor em uma saída de coletor aberto. Imagine um PIC conectado à fonte passando por uma chave. O caso a chave esteja aberta não podemos afirmar o nível lógico que o microcontrolador recebe. Este fenômeno é chamado de estado flutuante (floating). Para resolver tal problema utilizamos um resistor de pull-up para manter a entrada em nível lógico alto quando a chave do circuito estiver aberta.
De forma semelhante, resistores pull-down são usados para manter a entrada em nível lógico baixo quando nenhum outro componente estiver conduzindo. Eles são usados com menos frequência que os resistores pull-up. Resistores pull-down podem ser usados seguramente com pontes lógicas CMOS devido as entradas serem controladas-por-tensão. Entradas lógicas TTL que são deixadas desconectadas inerentemente em alto flutuante (float high) requerem um resistor pull-down de valor bem menor para forçar a saída para baixo. Isto também consome mais corrente. Por esta razão, são preferidos resistores pull-up em circuitos TTL.

## Funcionamento

Em famílias lógicas bipolares que operam em 5 VDC, um valor comum para o resistor pull-up seria de 1-5 kΩ, baseados na exigência para fornecer o nível lógico. Para o CMOS, valores muito mais altos de resistores podem ser usados, de vários milhares a um milhão de ohms, desde que o fluxo de corrente exigido em uma entrada lógica seja pequeno.
Resistores pull-up podem ser usados em saídas lógicas onde o dispositivo lógico não pode fornecer corrente, tais como dispositivos lógicos TTL de coletor aberto. Tais saídas são usadas para conduzir em dispositivos externos, para uma função OR em lógica combinacional, ou para um meio simples de conduzir em um barramento lógico com múltiplos dispositivos conectados a ele.
Resistores pull-up podem ser dispositivos discretos montados na mesma placa de circuito de dispositivos lógicos. Muitos microcontroladores pretenderam, para aplicações de controle embarcadas, embutir internamente, resistores pull-up programáveis para entradas lógicas para que componentes externos mínimos fossem necessários.
Algumas desvantagens dos resistores pull-up são o consumo extra de energia, quando a corrente é puxada através do resistor, e a velocidade reduzida de um pull-up comparada com uma fonte de corrente ativa. Certas famílias lógicas são suscetíveis de serem introduzidas fontes de tensão passageiras em entradas lógicas através de resistores pull-up, os quais podem forçar o uso de uma fonte de tensão filtrada para os pull-ups.

## Cálculo

O valor apropriado para o resistor de pull-up costuma ser limitado por dois fatores. O primeiro seria a dissipação de potência. Se a resistência for muito baixa, um valor de corrente alto vai passar pelo resistor de pull-up, causando o aquecimento do dispositivo e consumindo potência desnecessária quando a chave estiver fechada. Esta situação deve ser evitada quando estivermos trabalhando em baixa potência. O segundo fator é a tensão de entrada do dispositivo quando a chave está aberta. Se a resistência de pull-up for muito alta, somada à alta fuga de corrente elétrica do pino de entrada, a tensão de entrada pode se tornar insuficiente quando a chave for aberta.
Digamos que queremos a corrente limitada a 1mA quando o botão é pressionado no circuito da imagem, onde Vcc = 5V.
Facilmente calculamos o resistor de pull-up utilizando a Lei de Ohm:
$V=R*I$
Adaptando a Lei de Ohm para o nosso exemplo,temos:
$V_{cc}=I_{R1}*R1$
Rearranjando a equação para obtermos o valor de R1:
$R1=V_{cc}/I_{R1}=5V/0.001A=5k\Omega$
Lembre-se de converter todas as unidades para volts (V), amperes (A) and Ohms (Ω) antes do cálculo.

## Aplicações

Resistores de pull-up e pull-down são geralmente usados quando utilizamos chaves ou outros inputs em microcontroladores e porta lógicas digitais. São usados frequentemente em conversores analógico-digitais para manter o fluxo de corrente controlado no sensor resistivo.

### I²C

I²C requer resistores pull-up em suas linhas de clock (SCL) e de dados (SDA) devido aos pinos nos chips serem do modelo de coletor aberto. Isto significa que um chip pode apenas puxar as linhas para baixo, caso contrário eles variam acima de VDD. Em I²C, puxar a linha para o terra indica um zero lógico enquanto deixando ela variar para VDD é um "1" lógico.