Cada um dos pinos de IO deve ter seu próprio resistor pull-up / down?

13

Uma pergunta muito básica:

Cada pino de E / S de um microcontrolador que serve como entrada de um comutador ou jumper deve ter seu próprio resistor de pull-up / down?

Esquema simples de E / S de 3 pinos

Neste exemplo, cada pino é puxado para baixo por um resistor e, em seguida, puxado por um interruptor 1P3T para VCC.

Parece simples, mas à medida que mais pinos IO são usados, mais resistores são absolutamente necessários? Existe alguma maneira inteligente de manter a contagem do resistor baixa?

Pergunta relacionada: Compartilhando um resistor pull-up

JYelton
fonte

Respostas:

16

De acordo com o esquema fornecido, se todas as 3 entradas compartilharem um resistor, qualquer uma das linhas que estão sendo puxadas para o alto pelo comutador aumentaria todas as 3 linhas para o alto, contrariando o objetivo do projeto - o MCU não saberia qual posição do comutador está selecionado.

Uma maneira comum de reduzir a contagem de peças , e não a contagem de resistores, para esses projetos é usar uma rede ou matriz de resistores de barramento comum:
Matriz de resistor de barramento comum (a partir daqui )


Estão disponíveis como SIP / DIP de furo passante e SMD, em uma variedade de contagens de resistores, dependendo de suas necessidades. O pino do barramento está conectado ao terra e os outros pinos estão conectados às respectivas entradas do MCU, como no seu esquema. Matrizes de resistores SIP ( daqui )

Matrizes de resistores SMD ( daqui )

Anindo Ghosh
fonte
8

A maioria das MCUs possui resistores opcionais de pull-up (e não para baixo) embutidos para cada pino; portanto, é normal puxar os pinos para baixo com a chave (e lidar com a inversão de polaridade no software).

Então - não são necessários resistores.

Quanto ao porquê de pullup, não down, é um hábito que resta dos circuitos lógicos TTL dos anos 70, onde era necessária muito menos corrente para puxar uma entrada para cima do que para baixo - um resistor de pulldown gastaria mais energia. Isso não se aplica mais à lógica CMOS de hoje, mas a tradição de pull-ups persistiu, de modo que os chips CMOS de 5V iniciais eram compatíveis com a lógica TTL mais antiga.

Brian Drummond
fonte
Eu pensei que o motivo da pull-up era porque o uso comum deles era com saídas de coletor aberto, e quando você tem o hábito de seguir um caminho, continua assim sem um bom motivo.
dunkers
Além disso, as saídas TTL podem afundar 16mA, mas fornecem apenas 800uA; portanto, um pull-up pode ser usado para adicionar músculos a uma saída. Uma entrada TTL se abriria se você não a conectasse, portanto, uma entrada por razões de entrada me parece um pouco estranha. (Desculpe, esperou muito tempo na edição do comentário anterior ...)
dunkers
"uma entrada TTL se elevaria" ... até certo ponto sim, mas não de forma confiável - o grande livro laranja especifica 40 microamp Ih para garantir Vin> 2,4V (para 7400; 20ua para 74LS) Deixar definitivamente as entradas TTL abertas foi definitivamente não recomendado em qualquer lugar eu trabalhava ...
Brian Drummond
1
Pulldowns versus pullups não são meramente históricos. Com um resistor de pullup, o outro lado do comutador pode ser aterrado, o que geralmente é conveniente.
Olin Lathrop
1
A família de microcontroladores TI MSP430 possui pull ups internos e baixos.
quer
0

Você nunca deseja deixar uma entrada para a lógica aberta, supondo que ela se mova para cima ou para baixo. se uma entrada é deixada aberta, é uma pequena antena e também está sujeita às correntes dentro do dispositivo lógico. Então você puxa para cima ou para baixo para garantir uma entrada limpa e previsível. Eu aprendi essa regra enquanto trabalhava na Fairchild Semiconductor na década de 1980.

Lma Ranger
fonte
1
Isso não responde à pergunta que foi feita.
The Photon
Eu acho que o contexto da pergunta original é que existem botões e comutados que são entradas para um MCU. Se um pino de E / S não for usado, pode ser feita uma saída e então baixa (ou alta) do firmware. Isso deve resolver os problemas ocultos da EMI e não requer um resistor externo.
Nick Alexeev