ISSLg - Cours d'électronique
Les compteurs binaires
Navigation> electronique/automatisme/codage/compteur
Pour plus de détail, voir Floyd - Systèmes numériques 9ème édition :
p426 : Chap8 : Compteurs
Le début de ces notes est tiré et adapté de : http://etronics.free.fr/dossiers/num/num13/compteur.htm
Description du compteur binaire
Un
compteur est un circuit séquentiel qui permet de dénombrer
des impulsions appliquées sur son entrée d'horloge CK (clk :
clock ) et de restituer sur ses sorties Q0 à Q3 le nombre d'impulsions
codé en binaire. A chaque impulsion l'état du compteur est modifié (+1
ou -1 suivant le type de compteur)
et entre deux impulsions son état reste stable. L'entrée RAZ ou CLR ou
MR ou R sert de remise à zéro. L' entrée CE (count enable )
sert à activer ou interrompre le comptage .
Le compteur asynchrone
Le compteur asynchrone est basé sur le diviseur
de fréquence. Il s'agit d'une bascule D dont la sortie
inverseuse est envoyée sur son entrée D. Ainsi, à chaque front
montant de l'entrée d'horloge, la donnée transférée sur la
sortie est complémentée (change d'état). La fréquence du signal est donc divisée
par deux :
Un
compteur asynchrone est constitué
de plusieurs diviseurs de fréquences (autant que de bits requis) monté
en cascade (la sortie de l'un pilotant la CLK du suivant). Un compteur à N sortie (Q0 à QN-1) permet de compter au maximum (2N - 1) impulsions d'entrées.
Si l'on désire un compteur, les entrées d'horloge
doivent être actives sur le front descendant. Exemple de compteur 4 bits qui compte de 0 à 15
:
Les sorties Q0 Q1 Q2 Q3 sont
successivement égales à 0000, 0001, 0010, ..., 1111, puis à nouveau 0000, 0001, 0010, ... c'est-à-dire
0, 1, 2, ..., 15, 0, 1, 2, ... Ce cycle continue indéfiniment,
aussi longtemps que le signal d'horloge est présent.
L'activation du comptage CE est une combinaison avec CLK au moyen d'une porte AND (les impulsions sont bloquées si CE est à 0).
La remise à 0000 se fera si le MR pilote les Reset des 4 bascules D.
Pour réaliser un décompteur le signal d'horloge
est actif sur le front montant. Exemple de décompteur 3 bits, qui décompte de 7 à 0 :
Les
sorties Q0 Q1 Q2 sont
successivement égales à 111, 110, 101, 100, ..., 000, puis à
nouveau 111, 110, 101, 100, ... c'est-à-dire 7, 6, 5, 4,
..., 0, 7, 6, 5, 4, ... Ce cycle continue indéfiniment,
aussi longtemps que le signal d'horloge est présent.
L'activation du comptage CE est une combinaison avec CLK au moyen d'une porte AND (les impulsions sont bloquées si CE est à 0).
La remise à 111 se fera si le MR pilote les Set des 3 bascules D.
Pourquoi ce type de compteur est-il qualifié d'asynchrone ou
à propagation ?
Comme tout circuit logique, la bascule D ne réagit pas immédiatement
à un changement sur son entrée d'horloge. Il existe un temps de
transfert (quelques nano secondes) entre Clk et Q0. Le même écart
existe entre Q0 et Q1, et entre Q1 et Q2. Pour n bits, le dernier
signal est décalé de n fois cet écart élémentaire, ce qui
peut devenir un décalage assez important. Les signaux ne sont
plus synchrones, et si une combinaison logique de ces signaux
doit être réalisée, des glitchs apparaissent (transitions
parasites 0-1-0 ou 1-0-1). Généralement ces glitchs ne sont pas gênants.
Les principaux types de compteurs
Compteur asynchrone/synchrone
Le compteur asynchrone
peut être facilement réalisé avec des bascules D en cascade. Mais les
bits de comptage ne basculent pas en même temps à cause du délai de
propagation des signaux dans la bascule D. Si une combinaison logique
des bits de comptages
doit être réalisée, des glitchs apparaissent (transitions
parasites 0-1-0 ou 1-0-1). Généralement ces glitchs ne sont pas gênants.
Pour
supprimer les glitchs, les bascules D sont remplacées par des bascules
JK + d'autres portes en périphérie (montage plus complexe non détaillé
ici). Dans le cas du compteur synchrone, les bits de sorties ne sont
plus décalés dans le temps, mais basculent simultanément.
Compteur binaire/BCD
Le nombre d'étage N d'un compteur binaire est libre. Ce type de compteur balaye les valeurs de 0 à (2N - 1) en boucle.
Un
compteur binaire de 4 étages balaye les valeurs de 0 à 15 en boucle : 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Pour
réaliser un afficheur numérique décimal au moyen d'afficheurs à 7
segments, il faudrait plutôt des compteurs balayant les valeurs de 0 à
9 en boucle. C'est ce que réalise le compteur BCD
(Binary Coded Decimal), c'est un compteur binaire auquel une logique de
reset est ajoutée lorsque le compteur arrive à 10. Il balaye donc les
valeurs de 0 à 9 en boucle : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 ...
Le signal de reset lorsque le compteur retourne à 0
est disponible en sortie : c'est le signal de CARRY OUT (report). Ce
CARRY OUT permet de mettre plusieurs compteurs BCD en cascade pour
compter les unités, les dizaines, les centaines, les milliers...
Certains compteurs 4 étages peuvent être programmé en binaire ou BCD via un bit d'entrée (activation du RESET à 10).
NB
: pour réaliser des horloges, il faudrait des compteurs balayant les
valeurs de 0 à 5 pour les dizaines de seconde et les dizaines de
minutes. Ce type de compteur n'existe pas, vous devez le réaliser avec
un compteur binaire ou BCD et une combinaison logique qui provoque le
RESET pour la valeur 6 (110)2.
Compteur up/down
Le compteur UP
est actif sur le flanc descendant du signal de clock, il balaye les
nombres croissants : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
5 6 ...
Le compteur DOWN
est actif sur le flanc montant du signal de clock, il balaye les nombres
décroissants : 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 ...
Certains compteurs peuvent être programmé soit en UP ou DOWN via un bit d'entrée (inversion du flanc de clock).
Compteur avec PRESET
Certains
compteurs peuvent être programmé pour démarrer leur comptage à partir d'une
certaine valeur (par exemple 4 au lieu de 0 : 4 5 6 7 8 9 0 1 2 3 4 5 6
...). Cette valeur est codée en binaire et appliquée aux bits de
PRESET. Ce PRESET peut être chargé dans le compteur au moyen du bit
d'entrée PRESET ENABLE.
Les principaux CI
CD4040 : 14-Stage Ripple Carry Binary Counters
CD4029 : Presettable Binary/Decade Up/Down Counters
CD4026 : Decade Counter with Decoded 7seg display
CD4510 : Presettable Decade Up/Down Counters + Reset
CD4516 : Presettable Binary Up/Down Counters + Reset
Auteur : Philippot Marc - 22/03/2014