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

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 )


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.