Comment inverser un signal numérique


29

J'ai besoin d'un moyen d'inverser un signal numérique, c'est-à-dire que si l'entrée est élevée, je veux que la sortie soit faible et si l'entrée est faible, je veux que la sortie soit élevée.

Je pense que cela peut être accompli avec un seul transistor PNP, mais je voulais vérifier cela ici. Les tensions auxquelles je fais face sont inférieures à 5 V.


Traitement détaillé d'un onduleur BJT: EE 307 Section 2 Projet MoHAT - "Le but de cette page est de guider les personnes intéressées par les opérations fondamentales d'un onduleur BJT."
Peter Mortensen

Réponses:


34

Ou, puisque vous parlez de signaux numériques de toute façon, vous utilisez un onduleur .

entrez la description de l'image ici

Aest l'entrée (pour les portes avec plus d' entrées qui seront A, B, C, etc.), Yest la sortie. Si cela ne complique pas trop votre schéma, placez le symbole avec l'entrée à gauche.

NXP a des onduleurs à porte unique . Seulement quatre connexions: alimentation, masse, entrée et sortie.

Cela peut être fait avec un transistor et deux résistances. C'est un schéma simple, mais vous devez encore faire quelques calculs simples. Vous aurez exactement les mêmes connexions qu'avec l'onduleur.
BTW, un PNP est une option, mais le plus souvent un NPN sera utilisé.

modifier (re votre commentaire)

entrez la description de l'image ici

Si le signal d'entrée est élevé, un courant passera par R2 et la jonction base-émetteur du transistor (base, pas grille). Ce courant sera amplifié et le courant du collecteur passant par R1 provoquera une chute de tension de sorte que la sortie sera faible. Entrée haute, sortie basse.
Si le signal d'entrée est faible, il n'y aura pas de courant de base et pas de courant de collecteur. Aucun courant passant par R1 signifie aucune chute de tension, de sorte que la sortie sera à + V. Entrée basse, sortie haute.

Cela mène déjà un peu plus loin, mais comme je l'ai dit en commentaire à Sandun la sortie est très asymétrique. Si la sortie est connectée à un condensateur, un niveau de sortie élevé signifierait que le condensateur est chargé via R1, ce qui entraînera une pente exponentielle avec une constante de temps R1C. Lorsque la sortie devient faible, le condensateur sera déchargé par une résistance beaucoup plus faible et la pente sera beaucoup plus raide. Vous n'obtiendrez pas cette différence avec les portes CMOS, qui ont des capacités symétriques source / puits.

L'entrée de la version à transistor consommera également (un petit) courant lorsqu'elle est élevée. La version CMOS n'aura qu'un faible courant de fuite à la fois haute et basse.

Dans l'ensemble, la porte logique intégrée est la gagnante.


Je pourrais certainement être confus ici, mais un NPN s'allume lorsque l'alimentation est fournie à la porte et un PNP s'éteint lorsque l'alimentation est fournie. Il est logique d'utiliser un NPN pour l'amplification du signal, mais cela ne provoquerait pas l'inversion du signal. Pensées?
Matt Ruwe

2
Les portes sont pour les MOSFET, pas pour les BJT. Les NFET s'activent et les PFET s'éteignent. Mais vous devez vous assurer que la source est correctement connectée. Un NPN et un PNP sont des BJT et nécessitent un peu plus de calculs pour s'assurer qu'ils fonctionnent correctement
ajs410

en ce qui concerne le NXP, vous avez une très petite pièce de liberté. Il y a des contraintes comme le timing, le fan-in, le fan-out, les marges de bruit d'entrée, les pépins, etc. Dans ce cas, il est plus que facile d'utiliser un transistor. Tout simplement parce que vous n'êtes pas bloqué par ces contraintes.
Standard Sandun

@Matt - a modifié ma réponse.
stevenvh

1
@sandundhammika, Si vous construisez le vôtre, vous avez toujours des limites de fan-out et de marge de bruit (fan-in ne s'applique pas ici). Mais vous devez calculer vous-même quelles sont ces limites. Si vous utilisez la porte standard, vous pouvez simplement lire la fiche technique pour le savoir. En outre, la consommation d'énergie (une autre contrainte typique du système) est susceptible d'être bien meilleure pour la porte standard.
The Photon

24

Oui, cela peut être accompli avec un seul transistor et une seule résistance, mais il existe des puces spécialement conçues pour inverser les signaux numériques. Curieusement, ils sont appelés onduleurs . Découvrez le 74HC04, par exemple. Cela vous donne six onduleurs séparés dans un seul boîtier à 14 broches. Il existe également des onduleurs simples (et d'autres petites portes logiques) disponibles dans de petits boîtiers SOT-23, qui sont les mêmes transistors individuels.

Il n'y a aucune raison d'essayer de fabriquer votre propre onduleur, mais oui, c'est possible.

Ajouté en réponse au commentaire:

Comme je l'ai dit, un seul transistor bipolaire peut être utilisé comme base pour un simple onduleur. Au minimum, vous avez besoin du transistor et d'une résistance de base. Pour être complet, j'ajouterai également une résistance de charge de sortie, que vous devez supposer nécessaire à moins que vous ne sachiez que ce qui sera connecté à la sortie fournira la charge nécessaire. Le transistor PNP n'a rien de magique en particulier. Un NPN peut également être utilisé. Voici comment chacun serait utilisé:

Notez que chacun a 4 connexions: alimentation, masse, entrée et sortie. La différence entre les deux est la direction dans laquelle il charge l'entrée et la direction dans laquelle la sortie est activement entraînée par rapport à la traction passive de la charge. Si vous ne vous souciez pas de ces problèmes, les deux circuits sont fonctionnellement équivalents.

Cependant, c'est plus simple:

Il est également plus rapide, consomme moins d'énergie en régime permanent, a une impédance d'entrée plus élevée et est plus petit. Il a les mêmes quatre connexions que les onduleurs ci-dessus. Des grilles simples comme celle-ci sont disponibles dans les boîtiers SOT-23, qui sont les mêmes transistors simples que ceux fournis. Cela ne nécessite qu'une seule partie externe, le capuchon de dérivation. Il n'a pas besoin de résistance de charge car sa sortie fonctionne activement dans les deux sens.

Vraiment, pour une inversion générale des signaux numériques, fabriquer son propre onduleur est idiot pour les applications normales.

Hors sujet à part sur le dessin schématique:

Le script n'est vraiment que de trois lignes. Voici le dossier complet:

@Écho off
rem
rem MAKE_SCHEM_GIF
rem
rem Crée un fichier GIF schématique bien filtré à partir de la sortie brute Eagle
rem /temp/a.tif. Le fichier GIF résultant sera /temp/b.gif et sera
échelle de gris rem.
rem
filtre_image /temp/a.tif /temp/b.img -shrink 5
copie_image /temp/b.img /temp/b.gif -form -gray
image_disp /temp/b.gif -zoom 1 -dev medium

C'est un script unique très spécifique, mais qui fonctionne assez bien à cet effet. Dans Eagle, j'exporte le schéma vers le fichier image \ temp \ a.tif, exécutez le script qui crée \ temp \ b.gif. Le paramètre Eagle pour l'exportation d'image est 600 DPI et monochrome. Vraiment, c'est tout ce qu'il y a à faire. Cela semble probablement plus compliqué qu'il ne l'est.


1
@MattRuwe cela "suffirait" mais le point d'Olin est qu'une puce dédiée ferait mieux (les temps de montée et de descente seraient plus symétriques). Un PNP peut "remonter" vers Vdd, mais vous avez besoin de quelque chose pour le tirer vers le bas lorsque le PNP laisse flotter la sortie. Ce «quelque chose» créera une asymétrie dans le temps de montée / descente, en fonction de son impédance.
ajs410

Gotcha, fait sens
Matt Ruwe

1
Comment se fait-il que votre schéma soit plus joli que le mien? :-)
stevenvh

4
@stevenvh: Ça doit être parce que je suis juste meilleur. Sérieusement, j'utilise Eagle et je fais attention. Après avoir dessiné dans Eagle, j'exporte le schéma à 600 DPI dans un fichier image, puis exécute un script qui le filtre et le réduit 5x et écrit le résultat dans un fichier GIF à échelle de gris. Cela fait du résultat une taille raisonnable sans artefacts de pixels. Cela rend les lignes un peu floues, ce qui est le compromis pour ne pas avoir d'aliasing et de pixellisation visible.
Olin Lathrop

1
@abdullah: Voir l'addition pour répondre.
Olin Lathrop

8

Voici quelques valeurs de résistance qui fonctionnent pour les signaux CMOS:

J'ai trouvé ce fil parce que je voulais câbler un ancien "LCD Digital Backpack" à un Arduino. L'Arduino émet des signaux série positifs et le sac à dos numérique veut des signaux inversés. La nouvelle version du contrôleur LCD a un cavalier inversé / non inversé, mais pas le mien. De même, il est possible de générer des signaux série inversés via un logiciel, mais cela implique l'exécution d'une bibliothèque non standard. Je voulais utiliser les Serial.writecommandes standard .

J'ai initialement câblé l'un des 4 NOR d'une porte quad NOR 4001 CMOS en tant qu'onduleur, mais cela prend beaucoup de place sur ma planche à pain, et puisque vous êtes censé relier toutes les entrées inutilisées à la terre, implique beaucoup de câblage. (Je pense que je devais connecter toutes sauf 3 des 14 broches du boîtier; tout sauf les sorties des 3 NOR non utilisés.)

Je voulais une solution plus simple à câbler. J'ai utilisé le circuit fourni par @stevenvh.

Lié ici:

entrez la description de l'image ici

J'ai affaire à une logique CMOS 5V à 9600 bauds, donc l'impédance d'entrée est très élevée / le courant est très faible. Comme je ne commute qu'à 9600 bauds, je ne pense pas que le comportement asymétrique de l'onduleur à transistor me fasse beaucoup de mal.

J'ai trouvé qu'une résistance de 100K sur l'entrée (R2 dans le diagramme de Stevenvh) fonctionnait et j'ai utilisé une résistance de 3,3k comme résistance de pull-up à R1. Sur la base de mes calculs (I = V / R, 5/3300), cette configuration tirera <= 1,5 mA à l'état ON (un peu moins en raison de la résistance interne du transistor.) Je pourrais brancher un pot et voir la taille une résistance que je peux m'en tirer avec un écran LCD toujours recevoir un signal.


4

Voici comment vous le faites à la manière CMOS:

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

La tension du rail d'alimentation peut aller aussi haut que vous le souhaitez tant qu'elle est inférieure à la tension de claquage de la porte.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.