Como inverter um sinal digital


29

Eu preciso de uma maneira de inverter um sinal digital, ou seja, se a entrada for alta, quero que a saída seja baixa e se a entrada for baixa, quero que a saída seja alta.

Eu acho que isso pode ser conseguido com um único transistor PNP, mas queria verificar isso aqui. As tensões com as quais estou lidando são menores que 5V.


Tratamento detalhado de um inversor BJT: EE 307 Seção 2 Projeto MoHAT - "O objetivo desta página é orientar os interessados ​​nas operações fundamentais de um inversor BJT".
Peter Mortensen

Respostas:


34

Ou, já que você está falando de sinais digitais de qualquer maneira, usa um inversor .

insira a descrição da imagem aqui

Aé a entrada (para portas com mais entradas que vão ser A, B, C, etc.), Yé a saída. Se isso não complicar muito o esquema, coloque o símbolo com a entrada à esquerda.

O NXP possui inversores de porta única . Apenas quatro conexões: fonte de alimentação, terra, entrada e saída.

No entanto, isso pode ser feito com um transistor e dois resistores. É um esquema simples, mas você ainda precisa fazer alguns cálculos simples. Você terá exatamente as mesmas conexões que o inversor.
BTW, um PNP é uma opção, mas mais frequentemente um NPN será usado.

editar (re seu comentário)

insira a descrição da imagem aqui

Se o sinal de entrada for alto, a corrente fluirá através de R2 e da junção base-emissor do transistor (base, não porta). Essa corrente será amplificada e a corrente do coletor através de R1 causará uma queda de tensão, de modo que a saída será baixa. Entrada alta, saída baixa.
Se o sinal de entrada estiver baixo, não haverá corrente de base nem corrente de coletor. Nenhuma corrente através de R1 significa que não há queda de tensão, de modo que a saída será de + V. Entrada baixa, saída alta.

Isso já leva um pouco mais longe, mas, como eu disse no comentário de sandun, a saída é altamente assimétrica. Se a saída estiver conectada a um capacitor, um nível de saída alto significaria que o capacitor é carregado através de R1, o que resultará em uma inclinação exponencial com uma constante de tempo R1C. Quando a saída for baixa, o capacitor será descarregado com uma resistência muito menor e a inclinação será muito mais íngreme. Você não terá essa diferença com portas CMOS, que possuem recursos simétricos de fonte / coletor.

A entrada da versão do transistor também consumirá (uma pequena) corrente quando estiver alta. A versão CMOS terá apenas uma pequena corrente de fuga quando alta e baixa.

No geral, o portão lógico integrado é o vencedor.


Eu certamente poderia estar confuso aqui, mas um NPN liga quando a energia é fornecida ao portão e um PNP desliga quando a energia é fornecida. Faz sentido usar um NPN para amplificação de sinal, mas isso não faria com que o sinal fosse invertido. Pensamentos?
Matt Ruwe

2
Gates são para MOSFETs, não BJTs. NFETs ligam e PFETs desligam. Mas você deve verificar se a fonte está conectada corretamente. Um NPN e uma PNP são BJTs e exigem mais um pouco de matemática para garantir que eles funcionem corretamente
ajs410

quando se trata do NXP, você tem um espaço de liberdade muito pequeno. Existem restrições como tempo, ventilação, ventilação, margens de ruído de entrada, falhas etc. etc. Nesse caso, é mais do que fácil usar um transistor. Só porque você não está bloqueado por essas restrições.
Standard Sandun

@ Matt - editou minha resposta.
Stevenvh

1
@sandundhammika, Se você criar o seu próprio, ainda terá limites de margem de fan-out e ruído (fan-in não se aplica aqui). Mas você precisa calcular por si mesmo quais são esses limites. Se você usar o portão de prateleira, basta ler a folha de dados para descobrir. Além disso, o consumo de energia (outra restrição típica do sistema) provavelmente será muito melhor para o portão de prateleira.
The Photon

24

Sim, isso pode ser conseguido com um único transistor e resistor, mas existem chips projetados especificamente para inverter sinais digitais. Curiosamente, eles são chamados de inversores . Confira o 74HC04, por exemplo. Isso oferece seis inversores separados em uma única embalagem de 14 pinos. Também existem inversores únicos (e outros pequenos portões lógicos) disponíveis em pequenos pacotes SOT-23, que é o mesmo pacote de transistores individuais.

Há poucas razões para tentar fazer seu próprio inversor, mas sim, é possível.

Adicionado em resposta ao comentário:

Como eu disse, um único transistor bipolar pode ser usado como base para um simples inversor. No mínimo, você precisa do transistor e de um resistor de base. Para completar, também adicionarei um resistor de carga de saída, que você deve considerar necessário, a menos que saiba o que será conectado à saída fornecerá a carga necessária. Não há nada mágico sobre um transistor PNP em particular. Um NPN também pode ser usado. Aqui está como cada um seria usado:

Observe que cada um possui 4 conexões: energia, terra, entrada e saída. A diferença entre os dois é em qual direção ele carrega a entrada e em qual direção a saída é ativamente acionada versus passivamente puxada pela carga. Se você não se importa com esses problemas, os dois circuitos são funcionalmente equivalentes.

No entanto, isso é mais fácil:

Também é mais rápido, consome menos energia em estado estacionário, tem maior impedância de entrada e é menor. Possui as mesmas quatro conexões que os inversores acima. Portões únicos como este estão disponíveis nos pacotes SOT-23, que é o mesmo pacote de transistores únicos. Isso requer apenas uma parte externa, a tampa de derivação. Ele não precisa de um resistor de carga, pois sua saída funciona ativamente nos dois sentidos.

Realmente, para inversão geral de sinais digitais, fazer seu próprio inversor é tolo para aplicações normais.

Fora do tópico de lado sobre desenho esquemático:

O script é realmente apenas três linhas. Aqui está o arquivo inteiro:

@echo off
rem
rem MAKE_SCHEM_GIF
rem
rem Cria um arquivo GIF esquemático bem filtrado a partir da saída bruta do Eagle
rem /temp/a.tif. O arquivo GIF resultante será /temp/b.gif e será
rem escala de cinza.
rem
image_filter /temp/a.tif /temp/b.img -shrink 5
image_copy /temp/b.img /temp/b.gif -form -gray
image_disp /temp/b.gif -zoom 1 - dispositivo médio

É um script pontual muito específico, mas funciona bem o suficiente para esse fim. No Eagle, eu exporto o esquema para o arquivo de imagem \ temp \ a.tif, execute o script que cria \ temp \ b.gif. A configuração Eagle para exportação de imagem é de 600 DPI e monocromática. Realmente, isso é tudo o que existe. Provavelmente parece mais complicado do que é.


1
@MattRuwe seria "suficiente", mas o argumento de Olin é que um chip dedicado faria melhor (o tempo de subida e descida seria mais simétrico). Um PNP pode "subir" para o Vdd, mas você precisa de algo para baixá-lo quando o PNP deixar a saída flutuar. Esse "algo" criará assimetria no tempo de subida / descida, com base em sua impedância.
ajs410

Peguei, faz sentido #
Matt Ruwe 18/04/12

1
Como é que o seu esquema parece mais bonito que o meu? :-)
stevenvh 18/04/12

4
@stevenvh: Deve ser porque eu sou apenas melhor. Sério, eu uso Eagle e tomo alguns cuidados. Depois de desenhar no Eagle, exporto o esquema a 600 DPI para um arquivo de imagem, depois executo um script que o filtra e reduz em 5x e grava o resultado em um arquivo GIF em escala de cinza. Isso torna o resultado um tamanho razoável sem artefatos de pixel. Isso torna as linhas um pouco confusas, o que é a desvantagem de não ter aliasing e pixelagem visível.
Olin Lathrop

1
@abdullah: Veja a adição à resposta.
Olin Lathrop

8

Aqui estão alguns valores de resistores que funcionam para sinais CMOS:

Encontrei esse tópico porque queria conectar uma "Mochila Digital LCD" mais antiga a um Arduino. O Arduino emite sinais seriais positivos e a mochila digital deseja sinais invertidos. A versão mais recente do controlador LCD possui um jumper invertido / não invertido, mas o meu não. Da mesma forma, é possível gerar sinais seriais invertidos por meio de software, mas envolve a execução de uma biblioteca não padrão. Eu queria usar os Serial.writecomandos padrão .

Inicialmente, conectei uma das 4 NORs em um gate NOR de 4001 CMOS quad como inversor, mas isso ocupa muito espaço na minha placa de ensaio, e como você deve amarrar todas as entradas não utilizadas no chão, envolve muito fiação. (Eu acho que precisava conectar todos os 3 pinos, exceto os 3 do pacote; tudo, menos as saídas nos 3 NORs não utilizados.)

Eu queria uma solução mais simples para conectar. Eu usei o circuito fornecido pelo @stevenvh.

Linkado aqui:

insira a descrição da imagem aqui

Estou lidando com lógica de 5V CMOS em 9600 baud, então a impedância de entrada é muito alta / a corrente é muito baixa. Como estou apenas alternando a 9600 baud, não acho que o comportamento assimétrico do inversor baseado em transistor me machuque muito.

Descobri que um resistor de 100K na entrada (R2 no diagrama de stevenvh) funcionava e usei um resistor de 3,3k como resistor de pull-up no R1. Com base nos meus cálculos (I = V / R, 5/3300), esta configuração atrairá <= 1,5 mA no estado LIGADO (um pouco menos devido à resistência interna do transistor.) Talvez eu conecte uma panela e veja qual um resistor que eu possa usar e ainda assim o LCD receba um sinal.


4

Aqui está como você faz da maneira CMOS:

esquemático

simular este circuito - esquemático criado usando o CircuitLab

A tensão do trilho de força pode atingir o nível máximo que você desejar, desde que seja menor que a tensão de interrupção do portão.

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.