vendredi 28 juin 2019

Étude de CI: le compteur binaire 74LS193

Comme son nom peut le laisser deviner, un compteur est un circuit intégré qui compte le nombre d'impulsions reçues sur sa broche d'entrée.  Cette fonction peut sembler banale en cette époque où un microcontrôleur bas de gamme peut accomplir des tâches beaucoup plus complexes, mais il y a quelque années, c'était impressionnant! De plus, l'utilisation d'un compteur demeure encore pertinente  de nos jours si la fréquence des impulsions à compter est élevée (jusqu'à 32 MHz, dans le cas du compteur que nous étudiants aujourd'hui).

Il existe un grand nombre de compteurs. Nous en avons même déjà construit un à partir de quelques bascules (flip flops) CD4013. Le 74LS193 de Texas Instruments, que nous étudions aujourd'hui, est un compteur binaire synchrone de 4 bits, qui peut compter de façon ascendante et descendante. Il se présente sous la forme d'un circuit intégré comportant 16 broches.  Comme à mon habitude, je vous encourage à expérimenter avec le circuit intégré, pour vérifier qu'il se comporte bien de la façon décrite dans la fiche technique.


Broches d'alimentations

Commençons par les broches numéros 8 et 16: elles servent à alimenter le circuit intégré, qui est conçu pour fonctionner à une tension de 5 V. Ces deux broches doivent obligatoirement être branchées à une alimentation continue de 5 V, sinon le circuit intégré ne fonctionnera pas.

2 broches d'entrée

La broche numéro 4 "DOWN" et la broche numéro 5 "UP" sont les entrées.  Chaque fois que la broche "UP" retourne à une tension de 5 V après avoir brièvement été soumise à une tension nulle, la valeur du compteur augmente d'une unité. Pour la broche "DOWN", c'est la même chose, sauf que la valeur du compteur diminue d'une unité.

4 broches de sortie

La valeur du compteur est accessible sous la forme d'un nombre binaire à 4 bits grâce aux broches QA, QB, QC et QD. QD est le bit de poids fort, alors que QA est le bit de poids faible. Ainsi, si QA, QB et QC sont à 0 V pendant que QD est à 5 V, le compteur affiche le nombre binaire 1000 qui correspond à 8 en notation décimale.

Un premier circuit exploratoire

Pour tester le 74LS193, nous devons l'alimenter avec une tension de 5 V, soumettre sa broche "UP" à des impulsions de 5 V, et lire la tension de ses 4 broches de sortie: tout ça peut facilement être accompli par un Arduino Uno, c'est pourquoi je vous propose le montage illustré ci-dessous.


  • Les broches 4, 11 et 16 du 74LS193 sont branchées à la sortie 5 V de l'Arduino.
  • Les broches 8 et 14 du 74LS193 sont branchées à une des broches GND de l'Arduino.
  • Les sorties QA, QB, QC et QD (broches 3, 2, 6, 7) du 74LS193 sont branchées respectivement aux broches 2, 3, 4 et 5 de l'Arduino.
  • La broche 5 (entrée UP) du 74LS193 est branchée à la broche 6 de l'Arduino.
  • Les broches 1, 9, 10, 12, 13 et 15 du 74LS193 ne sont pas branchées (nous les utiliserons plus tard).
Le sketch n'est pas très long: il consiste à envoyer chaque seconde une impulsion sur l'entrée UP du compteur, puis de lire la tension de chacune de ses 4 sorties afin d'afficher le résultat sur le moniteur série de l'IDE Arduino.


Tel que prévu, chaque fois qu'une impulsion est détectée par la broche UP, la valeur binaire présentée par les sorties QA, QB, QC et QD augmente d'une unité. Lorsque la valeur maximale "1111" (qui est l'équivalent de 15 en décimal) est atteinte, le compteur recommence à zéro.

Réglage de la valeur du compteur

Il est parfois utile de régler la valeur du compteur. Pour ce faire, nous plaçons les entrées A, B, C et D du compteur aux valeurs désirées, puis nous plaçons brièvement la broche LOAD (broche #11) à 0 V pour enregistrer le résultat.

Par exemple, si vous désirez régler le compteur à la valeur "0100", vous mettez D à 0 V, C à 5 V, B à 0 V et A à 0 V, puis vous envoyez une impulsion sur la broche LOAD pour enregistrer le résultat.

Modifions notre circuit afin de pouvoir régler la valeur du compteur (nous en profiterons également pour activer la broche DOWN, ce qui nous permettra de diminuer la valeur du compteur.


Il s'agit donc du même circuit que plus haut, sauf que maintenant:
  • La broche DOWN (#4) du 74LS193 est branchée à la broche 7 de l'Arduino (et non à 5 V).
  • La broche LOAD (#11) du 74LS193 est branchée à la broche 8 de l'Arduino (et non à 5 V).
  • La broche A (#15) du 74LS193 est branchée à la broche 9 de l'Arduino.
  • La broche B (#1) du 74LS193 est branchée à la broche 10 de l'Arduino.
  • La broche C (#10) du 74LS193 est branchée à la broche 11 de l'Arduino.
  • La broche D (#9) du 74LS193 est branchée à la broche 12 de l'Arduino.
Le sketch ci-dessous règle le compteur à la valeur "0111", puis envoie 4 signaux de soustraction par la broche "DOWN" avant de régler le compteur à "0101" et d'envoyer 4 signaux d'addition.




Notez que si vous désirez mettre le compteur à zéro, vous pouvez aussi placer temporairement la broche CLR du compteur à 5 V, puis la remettre à 0 V.

Détection des débordements

Il ne nous reste plus que 2 dernières broches du 74LS193 à explorer:  BO et CO. Ces deux sorties sont généralement à 5 V, mais leur tension devient brièvement nulle lorsque le compteur "déborde". Par exemple, lorsque vous ajoutez "1" au compteur alors qu'il se trouve à la valeur maximale "1111", la broche CO prend brièvement une valeur nulle juste avant que le compteur n'affiche "0000". De la même façon, si vous soustrayez "1" du compteur alors qu'il se trouve à la valeur minimale "0000", la tension de la broche BO devient momentanément nulle avant que le compteur n'affiche "1111".

Pour tester ces deux broches, j'ai branché CO (#12) à la broche A0 de l'Arduino, et BO (#13) à A1.


Le sketch ci-dessous effectue 25 additions, en nous alertant à chaque débordement, puis 25 soustraction, en nous alertant à chaque débordement.




Plusieurs compteurs en cascade

Grâce aux sorties CO et BO, il est facile de relier plusieurs compteurs en cascade. En reliant la sortie CO du premier compteur à l'entrée UP du deuxième, et en reliant la sortie BO du premier compteur à l'entrée DOWN du deuxième, vous obtenez un compteur binaire à 8 bits, capable de compter de 0 à 255.

Un circuit vintage, sans microcontrôleur

Évidemment, le 74LS193 peut être utilisé sans le moindre microcontrôleur.  Dans le circuit ci-dessous, les impulsions transmises à l'entrée UP du compteur sont générées par un timer 555 (en mode astable), et chacune des 4 sorties du compteur contrôle une LED.

Voici ce que ça donne:



Yves Pelletier   (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire