Circuit compteur d'impulsions sur un microcontrôleur. Compteur d'impulsions sur LCD

Cet exemple d'application décrit comment implémenter un compteur d'énergie électronique sur le microcontrôleur de la série MSP430FE42x. Le document contient une description de certains principes fondamentaux et recommandations pour l'utilisation des microcontrôleurs de la série MSP430FE42x, ainsi que des dessins de cartes de circuits imprimés et des démonstrations de logiciels.

1. Introduction

Cet exemple d'application décrit le schéma électrique et le logiciel d'un compteur électrique électronique sur un microcontrôleur de la famille MSP430FE42x. En complément, il est prévu d'utiliser le manuel d'utilisation du module ESP430CE1.

La famille de microcontrôleurs MSP430FE42x avec processeur de signal intégré ESP430CE1 pour compteur d'énergie monophasé avec borne d'entrée analogique et capteur de température intégrés a été conçue spécifiquement pour une utilisation dans les applications de mesure de puissance. L'ESP430CE1 effectue automatiquement la plupart des tâches de détection de puissance, sans utiliser les ressources de base. Cela vous permet d'économiser les ressources du cœur de calcul pour les utiliser dans d'autres tâches, par exemple pour communiquer avec d'autres appareils. L'ESP430CE1 peut fonctionner avec une variété de capteurs de courant. Il peut utiliser un shunt Rogowski, des transformateurs de courant (TC), y compris des transformateurs couplés en courant continu avec un déphasage important, ou des inductances comme capteur de courant sans composants externes supplémentaires. Tous les paramètres peuvent être configurés par logiciel et les constantes d'étalonnage peuvent être enregistrées dans la mémoire Flash du microcontrôleur MSP430 et transférées à l'ESP430CE1 au démarrage du système.

2 Matériel

Le schéma du circuit imprimé et le schéma fonctionnel de l'appareil sont présentés dans l'annexe A et sont décrits dans les sections suivantes de cet exemple d'application. Le circuit imprimé peut être utilisé avec des transformateurs de courant ou des shunts et peut être reconstruit. Ce circuit imprimé est disponible auprès de Softbaugh et porte le numéro de série DE427. Vous pouvez le commander sur le site Internet de la société Softbaugh, dont l'adresse Internet est www.softbaugh.com.

Les connexions des canaux V1, I1 et I2 sont représentées dans le schéma donné en annexe A.

2.1 Utilisation d'un shunt comme convertisseur de courant

Figure 1. Schéma fonctionnel de connexion d'un shunt à un réseau monophasé à deux fils

2.2 Utilisation du CT comme convertisseur de courant


Figure 2. Schéma fonctionnel de connexion du TC à un réseau monophasé à deux fils

2.3 Connexion du CT et du shunt comme convertisseur de courant pour détecter les falsifications


Figure 3. Schéma fonctionnel de connexion d'un shunt et d'un TC à un réseau monophasé à deux fils, permettant la détection d'une connexion non autorisée

2.4 Raccordement TC pour le raccordement aux réseaux triphasés monophasés utilisés aux USA


Figure 4. Schéma fonctionnel ANSI d'un compteur électrique utilisé dans les réseaux monophasés à trois fils

2.5 Connexion des entrées du capteur de tension

Le circuit imprimé est équipé d'un diviseur de tension conçu pour fonctionner dans des réseaux avec une tension efficace de 230 V. Il contient également un circuit de protection conçu pour cette tension.

L'alimentation capacitive est capable de fournir une consommation de courant jusqu'à 4 mA. Il faut s'assurer que la consommation de courant ne dépasse pas cette valeur admissible. À cette fin, une LED à faible courant a été utilisée dans le circuit de démonstration.

2.6 Connexion des entrées du capteur de courant

Il y a de l'espace sur le PCB pour monter une résistance SMD utilisée comme charge pour le transformateur de courant, mais cette résistance n'est pas installée sur la carte fournie. Remarque : La résistance de charge PT n'est pas installée, mais lors de la connexion d'un PT, elle doit être installée, sinon le MSP430 sera endommagé.

2.7 Filtre anticrénelage

En tant que filtre anti-aliasing, il est recommandé d'utiliser une résistance de 1 kOhm connectée en série à l'entrée ADC et un condensateur de 33 nF connecté entre l'entrée du convertisseur et la masse. Pour éliminer l'influence des interférences de mode commun, il est recommandé d'utiliser des filtres de lissage dans les deux canaux du convertisseur de courant.

2.8 Canaux ADC inutilisés

Les canaux ADC inutilisés ne doivent être connectés à rien.

3 Calcul des constantes pour le compteur ESP430CE1

Le compteur nécessite des constantes qui correspondent aux transformateurs et/ou shunts utilisés. Cette section montre le calcul des constantes pour le compteur ESP430CE1.

3.1 Facteur de conversion de tension

Le coefficient de conversion de tension, selon lequel la tension d'entrée réelle est convertie en tension d'entrée du module ESP430CE1, est calculé à l'aide des formules ci-dessous :

    V(inp.max) = Gain de tension x V (Ligne, Nom.) x sqrt(2) x R2 /(R1 + R2)
    kV1 = Tension (Ligne, nominale) x 2 x sqrt(2) / (2 15 x (1- (Vref – V(inp.max) x 2)/Vref))

3.2 Coefficient de conversion de courant pour shunt

Le coefficient de conversion de courant pour le shunt, selon lequel le courant d'entrée réel est converti en courant du module ESP430CE1, est calculé à l'aide des formules ci-dessous :

    V (I, inp.max) = Gain actuel x Imax x R (Shunt) x sqrt (2)

3.3 Facteur de conversion de courant pour transformateur de courant

Le coefficient de conversion de courant pour le transformateur de courant, selon lequel le courant d'entrée réel est converti en courant du module ESP430CE1, est calculé à l'aide des formules ci-dessous :

    V (I, inp.max) = Gain actuel x Imax / CTRatio x R (Fardeau) x sqrt (2)
    kI1 = Courant (Ligne, nominal) x 2 x sqrt(2) / (2 15 x (1- (Vref – V(I, inp.max) x 2)/Vref))

3.4 Niveau de coupure de courant

Le niveau de découpage de puissance de l'ESP430CE1 est calculé à l'aide de la formule suivante :

    Niveau d'interruption = Impulsions/kWh x (1 000 / 3 600) x fADC / (kV1 x kI1 x 4 096)

Pulses/kWh détermine le nombre d'interruptions qui seront générées pour chaque kWh.

Étalonnage de 4 mètres

L'étalonnage d'un compteur électrique électronique basé sur le microcontrôleur de la famille MSP430 à l'aide d'un équipement d'étalonnage conventionnel utilisé pour calibrer les compteurs électriques conventionnels est possible, mais inefficace. La puissance de traitement du MSP430 vous permet de le faire d'autres manières, répertoriées ci-dessous.

L'étalonnage de base peut être lancé à l'aide de la commande c0 envoyée via UART. Pour exécuter cette commande, vous devez définir les valeurs d'entrée des paramètres suivants dans le fichier paramètre.h :

    - calVoltage
    - calCurrent
    - calPhi
    -calCosPhi
    - calFréq

L'étalonnage du déphasage entre le courant et la tension doit être effectué avec une précision de 0,5 degrés, car l'erreur de déphasage se produisant dans les capteurs dépasse cette valeur, une précision plus élevée ne peut donc pas être obtenue.

Pour calibrer le compteur électrique, il est nécessaire de séparer les voies de mesure du courant et de la tension. Cela permet d'effectuer un étalonnage avec de faibles pertes d'énergie et de déterminer les valeurs de tension, de courant et de déphasage. La figure 5 montre le schéma de circuit permettant d'allumer le compteur électrique pendant l'étalonnage.


Figure 5. Compteur d'énergie électronique sur MSP430 avec bornes externes

4.1 Calibrage pour mesure continue

Le mode de fonctionnement normal de l'ESP430CE1 est établi en envoyant la commande SetMode au cœur de calcul. La valeur de puissance mesurée, inscrite après chaque mesure dans le registre ActEnSPer1 (et dans le registre ActEnSPer2 pour les systèmes à deux capteurs), est convertie par le cœur de calcul en un signal de fréquence constante, proportionnelle à la puissance mesurée. Pour générer un signal à fréquence constante, le module timer Timer_A peut être utilisé.

Pendant l'étalonnage, les actions suivantes sont effectuées :

  • Le cœur de calcul définit les drapeaux Curr_I1, Curr_I2, correspondant au mode de mesure, dans le registre de contrôle zéro de l'ESP430CE1.
  • Les registres de paramètres sont initialisés pour mesurer la puissance dans la charge. Cela se fait à l'aide de la commande SET_PARAM.
  • Après avoir reçu la commande mSet_Mode, l'ESP430CE1 passe en mode mesure d'électricité.
  • Le premier résultat de mesure localisé par ActEnSPer1 (et ActEnSPer2 dans les systèmes à deux capteurs) n'est pas utilisé car le point de départ est inconnu.
  • Les résultats de mesure suivants trouvés dans ActEnSPer1 (et ActEnSPer2 dans les systèmes avec deux capteurs) sont corrects et sont utilisés pour les calculs.
  • L'indicateur St_ZCld dans le registre d'état zéro indique qu'au prochain échantillon disponible (l'indicateur St_NEVal est activé), de nouveaux résultats de mesure pour la période précédente sont disponibles dans les registres ActEnSPer1 et ActEnSPer2.
  • Le cœur de calcul réinitialise le flag St_NEVal à l'aide de la commande mCLR_EVENT et lit les données (voir la description de l'algorithme de lecture ci-dessous).
  • S'il est nécessaire, par exemple, de calculer le résultat sur une période plus longue, les quatre derniers points sont répétés.

Les étapes ci-dessus sont répétées au deuxième point d'étalonnage.

Les deux capteurs doivent être calibrés indépendamment. Lors de l'étalonnage d'un capteur du compteur, le courant traversant le deuxième capteur doit être nul. Et vice versa.

4.1.1 Formules

L'étalonnage est effectué sur une période principale (ou n par périodes principales) à deux courants de charge I1HI et I1LO. Puissance nominale calculée pour deux points d'étalonnage :

    nHIcalc = Cz1 x I1HI x V1 x cos?1 x (nper / fmains) x (fADC / 4096) [2 étapes]
    nLOcalc = Cz1 x I1LO x V1 x cos?1 x (nper / fmains) x (fADC / 4096) [2 étapes]

Valeurs résultantes pour l'inclinaison et le décalage :

    Pente : GainCorr1 = ((nHIcalc – nLOcalc) / (nHImeas – nLOmeas)) x 2 14
    Décalage : Poffset = (((nHImeas x nLOcalc) – (nLOmes – nHIcalc)) / (nHImeas – nLOmeas)) x (fmains / nper) x (4096 / fADC),

où fmains est la fréquence fondamentale en Hz ;

    fADC – Fréquence d'échantillonnage ADC en Hz (généralement 4096 Hz) ;
    nper – nombre de périodes principales utilisées dans l'étalonnage ;
    nHIclac est la puissance calculée au point d'étalonnage du courant élevé en incréments au carré ;
    nHImaes – puissance mesurée au point d'étalonnage du courant élevé en incréments carrés ;
    nLOclac est la puissance calculée au point d'étalonnage du courant faible en incréments au carré ;
    nLOmaes – puissance mesurée au point d'étalonnage de faible courant en incréments carrés ;

4.1.2 Exemple d'étalonnage

Pour le circuit illustré à la figure 1, l'étalonnage est effectué dans les conditions suivantes :

    V1 = 230 V, I1HI= 20 A, I1LO = 1 A, cos?1 = 1, nper = 1, fADC = 2048 Hz, fmains = 50 Hz.
    nHIcalc = Cz1 x I1HI x V1 x cos?1 x (nper / fmains) x (fADC / 4096) = 29 322,80806 x 20 x 230 x 1 x (1 / 50) x (2048 / 4096) = 1 348 849,171 = 14,94F1h [ étapes 2 ]
    nLOcalc = Cz1 x I1LO x V1 x cos?1 x (nper / fmains) x (fADC / 4096) = 29 322,80806 x 1 x 230 x 1 x (1/50) x (2048/4096) = 67 422,458 = 1,0772h [ étapes 2 ]

Résultat de la mesure aux deux points :

    n1Himeas = 14.6040h (-1% d'erreur par rapport à n1Hicalc = 14.94F1h)
    n1Lomeas = 1.0CB7h (+2% d'erreur par rapport à n1Localc = 1.0772h)
    GainCorr1 = ((nHIcalc – nLOcalc) / (nHImeas – nLOmeas)) x 2 14 = ((14.94F1h – 1.0772h) / (14.6040h – 1.0CB7h)) x 2 14 = 40С0h

    Poffset = (((nHImeas x nLOcalc) – (nLOmes – nHIcalc)) / (nHImeas – nLOmeas)) x (fmeins / nper) x (4096 / fADC) = (((14,6040h x 1,0772h) – (1 .0CB7h – 14,94F1h)) / (14,6040h – 1,0CB7h)) x (50 / 1) x (4096 / 2048) = -215,489 = FFFC,B63Fh

Si les points d'étalonnage sont corrigés pour l'inclinaison et le décalage, alors :

    ncorr = (nmeas x GainCorr1)) x 2-14 + (Poffset1) x (nper / fmains) x (fADC / 4096) nHIcorr = 14,6040h x 40C0h x 2-14 +FFFC,B63Fh x ((1 x 2048) / ( 50 x 4096)) = 1 348 890 = 14 951 Ah nLOcorr = 1,0CB7h x 40C0h x 2-14 +FFFC,B63Fh x ((1 x 2048) / (50 x 4096)) = 67 441 = 1,0771h

L'erreur résultante pour les deux corrections est de +3,1 E-5, c'est-à-dire 31 ppm.

4.2 Calibrage à l'aide d'un PC

La figure 6 montre l'une des options d'installation possibles pour l'étalonnage des compteurs électriques électroniques. Les compteurs électriques sont connectés au port série du PC via le port série USART0 fonctionnant en mode UART ou SPI. Tous les calculs nécessaires à l'étalonnage sont effectués par le PC et le MSP430 de chaque compteur électrique stocke uniquement les valeurs de correction résultantes dans la mémoire de données intégrée ou dans la mémoire EEPROM externe.

Le PC contrôle l'unité d'étalonnage, composée d'un générateur de tension, d'un générateur de courant et d'un déphaseur, via une interface de communication. Le PC lit les résultats de la multiplication de tension et de courant calculés par les CAN intégrés (ou le nombre d'impulsions Ws à la sortie de chaque compteur électrique) et compare cette valeur avec la valeur obtenue par le compteur électrique de référence, qui fait partie de l’équipement d’étalonnage. Le PC calcule l'erreur du compteur électrique à un (par exemple, au courant nominal) ou à deux (par exemple, à la consommation de courant maximale et nominale). Sur la base des résultats de ces erreurs, des facteurs de correction individuels pour la pente et l'angle de décalage sont calculés et transmis à un compteur électrique spécifique, dans lequel le microcontrôleur MSP430 stocke ces valeurs.


Figure 6. Calibrage des compteurs électriques électroniques à l'aide d'un PC

Les formules de calcul des valeurs constantes d'étalonnage sont fournies dans le manuel de l'utilisateur de l'ESP430CE1.

4.3 Auto-étalonnage

Une autre méthode d'étalonnage tire parti de la capacité du MSP430 à effectuer des calculs complexes. Le principal avantage de cette méthode d'étalonnage est sa simplicité : aucune connexion filaire n'est requise pour le transfert de données avec cette méthode (voir Figure 7). Les équations de correction d'erreur utilisées par le compteur pendant le test sont les mêmes que celles données dans la section Étalonnage de mesure continue ci-dessus.

  • Les compteurs à calibrer sont mis en mode calibrage à l'aide d'un interrupteur caché, d'un UART, d'une clé, d'une impulsion d'entrée, etc.
  • Le PC comprend un équipement d'étalonnage qui transfère une certaine quantité d'énergie, mesurée à l'aide d'un compteur de référence, aux compteurs électriques en cours d'étalonnage.
  • Les compteurs électriques mesurent la quantité d'énergie fournie et calculent la valeur de consommation d'énergie WEM1 pour 100 % du courant nominal Inom.
  • Après cela, l'équipement d'étalonnage est éteint (I = 0, U = 0). Cela permet de calculer et de mesurer le décalage de l'ADC lui-même si nécessaire.
  • Le PC allume l'équipement d'étalonnage, qui alimente à nouveau les compteurs électriques avec une certaine quantité d'électricité (par exemple, 5 % Inom, 100 % Vnom, cos?=1). Après cela, l'équipement est à nouveau éteint (i = 0, U = 0).
  • Les compteurs mesurent à nouveau l'électricité et calculent la valeur WEM0 pour 5 % du courant nominal Inom.
  • A partir des deux valeurs WEM1 et WEM0 trouvées pour 100 % et 5 % du courant nominal Inom, les compteurs électriques calculent les valeurs individuelles de décalage et de pente.
  • Après calibrage, vous pouvez effectuer un test visuel simple :
    - pour réinitialiser les indicateurs, on réinitialise les compteurs électriques - l'équipement d'étalonnage produit une quantité d'énergie précisément définie (à différentes valeurs de courant, de tension et de cos ?) - On vérifie visuellement que tous les compteurs électriques affichent la même valeur de la valeur mesurée de l'énergie consommée - À partir des lectures de l'écran LCD, il peut être déterminé que le coefficient d'inclinaison et de déplacement calculé se situe en dehors des limites acceptables.

Exemple : si vous calibrez avec les paramètres suivants :

  • 10 000 Ws (100 % Inom, 100 % Vnom, cos ? = 1)
  • 5 000 Ws (100 % Inom, 100 % Vnom, cos ? = 0,5)

les compteurs d'électricité étalonnés doivent afficher une valeur Ws égale à 15 900 ± précision acceptable. Si la valeur calculée se situe en dehors des limites acceptables, le compteur électrique est considéré comme ayant échoué à l'étalonnage.


Figure 7. Auto-étalonnage des compteurs d'électricité

5 Alimentation capacitive

La figure 8 montre une alimentation capacitive qui génère une seule tension Vcc = +3 V. Si son courant de sortie n'est pas suffisant, alors un tampon de sortie basé sur un transistor NPN peut être utilisé.

Les équations de conception pour les alimentations ci-dessous sont fournies dans la section 3.8.3.2 Alimentation capacitive de l'exemple d'application SLAA024. Ce chapitre décrit d'autres alimentations et les équations pour les calculer.


Figure 8. Alimentation capacitive

5.1 Détecteur de détection de tension de ligne

Le détecteur de sous-tension ESP430CE1 étant associé à un compteur de cycles de tension de ligne, il ne fonctionne pas en cas de perte de tension de ligne. Pour détecter cela, vous pouvez surveiller le VRMS pendant une certaine période en dessous d'un seuil spécifié ou utiliser un circuit externe pour détecter une perte de puissance secteur. Lorsque vous utilisez un circuit externe, vous pouvez éteindre le module ESP430CE1 pour réduire la consommation.


Figure 9. Détection de la présence de tension secteur

6.1 Mise à la terre

Un routage correct des PCB est très important pour les systèmes utilisant des CAN haute résolution. Vous trouverez ci-dessous quelques directives de base pour les cartes de routage.

1. Utilisez, dans la mesure du possible, des bus de masse analogiques et numériques séparés.

2. Épaisseur maximale des traces depuis l'alimentation vers les broches DVSS, AVSS, DVCC et AVCC.

3. Installation d'un condensateur au point de convergence de toutes les lignes de terre analogiques. Installation d'un condensateur au point de convergence de toutes les masses numériques.

4. Le condensateur Cb doit être situé au point de convergence de tous les rails d'alimentation. Ceci est nécessaire pour garantir la faible impédance de ce condensateur.

5. Les terminaux AVSS et DVSS doivent être connectés ensemble en externe.

6. Les terminaux AVCC et DVCC doivent être connectés ensemble en externe.

7. L'alimentation et le condensateur de stockage Cb doivent être situés aussi près que possible l'un de l'autre. Les condensateurs Ca et Cb doivent être installés entre les broches connectées aux bus d'alimentation analogiques et numériques.

8. Pour découpler les rails d'alimentation analogiques et numériques, vous devez utiliser une inductance L. Vous pouvez également utiliser une résistance, mais l'utilisation d'une inductance offre un meilleur filtrage passe-haut.

9. S'il y a une trace le long du périmètre de la carte de circuit imprimé, elle doit alors être connectée au bus de terre de la carte.


Figure 10 : Mise à la terre du convertisseur A/D

6.2 Sensibilité du DME

La figure 11 montre de manière simplifiée un routage non optimal : les zones pouvant recevoir des interférences externes provenant de sources EMR externes sont surlignées en gris. Pour réduire l'influence des sources externes de DME, ces zones doivent être minimes.


Figure 11. Trace d'une carte sensible aux EMI externes

La figure 12 montre une carte de circuit imprimé avec un routage optimal. Les zones qui sont des récepteurs EMR ont une superficie minimale.


Figure 12. Trace d'un circuit imprimé avec une sensibilité minimale aux EMI

7 Programme de démonstration

7.1 Initialisation du terminal analogique

Lorsque le module ESP430CE1 est désactivé, le MSP430 Compute Core a accès au module SD16. Tout d'abord, le cœur de calcul MSP430 doit initialiser un terminal d'entrée analogique. Dans ce cas, le gain, la fréquence d'échantillonnage et la fréquence du générateur d'horloge pour SD16 sont définis :

//================================================= ================ ==================== /** * Sous-programme d'initialisation du terminal analogique. * * Configuration d'un module ADC sigma-delta comme terminal analogique pour un compteur résistif de détection d'effraction * utilisant un transformateur de courant et un shunt comme capteur de courant * (voir configuration des canaux 0 et 1). */ void init_analog_front_end(void) ( /** * Vérifie d'abord que le processeur de signal intégré est désactivé, * sinon il ne sera pas possible de modifier les données dans le registre SD16. * */ ESPCTL &= ~ESPEN; / ** * Après cela, les paramètres de base du terminal analogique, * qui s'appliquent à tous les canaux : sélection des impulsions d'horloge (SMCLK), * paramètres du diviseur (en fonction de la fréquence du SMCLK) et de la tension de référence */ SD16CTL= SD16SSEL_1 // Sélection des impulsions d'horloge : SMCLK // SD16CTL = 0x800 + SD16SSEL_1 // Horloge Sélection de l'horloge : SMCLK + (Amp :) #if (MCLK_FREQ == 2) | SD16DIV_1 // division par 2 => Fréquence d'horloge ADC : 1,094 MHz #endif #if (MCLK_FREQ == 4) | SD16DIV_2 // division par 4 => Fréquence d'horloge ADC : 1,094 MHz #endif #if (MCLK_FREQ == 8) | SD16DIV_3 // division par 8 => Fréquence d'horloge ADC : 1,094 MHz #endif | SD16REFON; / / Utilisation de la référence intégrée SD16CCTL0 = SD16INCH_0 ; / / I1 SD16CCTL1 = SD16INCH_0 ; // I2 SD16CCTL2 = SD16INCH_0 ; //V SD16CONF0 |= 0x70; //SD16CONF1 |= 0x68; // Retard d'horloge ADC 40 ns // =========================== ============== =========== /** * - Sélection du gain ADC : * - VIN,MAX(GAIN = 1) = 0,5 V > VCT(crête) * - VIN,MAX(GAIN = 2) = 0,25 V< VCT(пиковое) * - VIN,MAX(GAIN = 16) = 0.031V >VShunt (crête) * - VIN, MAX (GAIN = 32) = 0,015 V< VShunt(пиковое) */ // =================================================================== // Настройка нулевого канала аналогового терминала - Ток 1 SD16INCTL0= I1_Gain; // Установка коэффициента усиления для нулевого канала (I1) SD16CCTL0 |= SD16OSR_256; // Установка коэффициента дискретизации = 256 (по умолчанию) // =================================================================== // Настройка первого канала - Ток 2 SD16INCTL1= I2_Gain; // Установка коэффициента усиления первого канала (I2) SD16CCTL1 |= SD16OSR_256; // Установка коэффициента дискретизации = 256 (по умолчанию) // =================================================================== // Настройка второго канала - Напряжение SD16INCTL2= V_Gain; // Установка коэффициента (V) SD16CCTL2 |= SD16OSR_256; // Установка коэффициента дискретизации = 256 (по умолчанию) /** * \Замечание * Пожалуйста запомните, что коэффициент дискретизации для всех каналов должен * быть идентичным. По умолчанию он равен 256. */ } // Конец init_analog_front_end()

7.2 Initialisation du compteur électrique

Avant d'utiliser l'ESP430CE1, vous devez le configurer. Exemple de routine de configuration de module :

//================================================= ================ ==================== /** * Initialisation de l'ESP430CE1. * */ void init_esp_parameter(unsigned char flashvars) ( volatile unsigned int timeout; // /\ Empêcher "l'optimisation" des variables. // Copie des valeurs d'initialisation dans la RAM if (flashvars) s_parameters = s_parameters_flash; /** * Vérifiez que le processeur de signal intégré * est activé, */ ESPCTL |= ESPEN; MBCTL = 0; /** * et n'est pas en mode mesure ou étalonnage, */ if ((RET0 & 0x8000) != 0) ( // Basculez le processeur de signal intégré en mode "Idle" MBOUT1= modeIDLE; // ESP_IDLE; MBOUT0= mSET_MODE; timeout= 0xffff; while (((RET0 & 0x8000) != 0) && (timeout?? > 0)) ; ) / ** * et prêt à recevoir le message , demandant * la version du logiciel. */ MBOUT0= mSWVERSION; timeout= 0xffff; do ( while (((MBCTL & IN0IFG) == 0) && (timeout?? > 0)) ; if (timeout == 0) ( display_error (); return; ) ) while (MBIN0 != mSWRDY); firmware_version= MBIN1; // Écrit la version du programme. /** * Après cela, les paramètres sont initialisés. * * Contrôle 0 : le réglage est effectué pour : * - La voie de mesure de courant I2 ? détection de connexion non autorisée * - Calcul de la valeur absolue de l'énergie active * (l'énergie négative est considérée comme une connexion non autorisée) * - Commutation de l'algorithme pour supprimer la composante continue du courant I1 * - Commutation de l'algorithme pour supprimer la composante continue du courant I2 */ set_parameter(mSET_CTRL0, defSET_CTRL0); /** * \définir le numéro de mesure : * c'est-à-dire 4096*50Hz. => interrompre une fois par seconde */ set_parameter(mSET_INTRPTLEVL_LO, s_parameters.pSET_INTRPTLEVL.w); set_parameter(mSET_INTRPTLEVL_HI, s_parameters.pSET_INTRPTLEVL.w); /** * Fréquence fondamentale nominale : * soit 50 Hz. */ set_parameter(mSET_NOMFREQ, defSET_NOMFREQ); /** * Correction d'erreur de phase : * Définit l'erreur de phase pour le courant 1/2 de la fréquence fondamentale nominale pour * le transformateur de courant en fonction de ses caractéristiques techniques * L'erreur de phase shunt est nulle. */ set_parameter(mSET_PHASECORR1, (int)s_parameters.pSET_PHASECORR1); set_parameter(mSET_PHASECORR2, (int)s_parameters.pSET_PHASECORR2); /** Définition des paramètres pour deux courants : * Transformateur de courant : * * Il existe deux options pour définir les valeurs de deux * courants : */ set_parameter(mSET_ADAPTI1, defSET_ADAPTI1); // = 1 * POW_2_14 = 16384 set_parameter(mSET_ADAPTI2, defSET_ADAPTI2); // = 1 * POW_2_14 = 16384 /** Réglage du gain configuré : */ set_parameter(mSET_GAINCORR1, s_parameters.pSET_GAINCORR1); set_parameter(mSET_GAINCORR2, s_parameters.pSET_GAINCORR2); /** Définit le décalage configuré : */ set_parameter(mSET_V1OFFSET, s_parameters.pSET_V1OFFSET); set_parameter(mSET_I1OFFSET, s_parameters.pSET_I1OFFSET); set_parameter(mSET_I2OFFSET, s_parameters.pSET_I2OFFSET); // set_parameter(mSET_POFFSET1_LO, s_parameters.pSET_POFFSET1_LO); // set_parameter(mSET_POFFSET1_HI, s_parameters.pSET_POFFSET1_LO); /** Les paramètres configurés deviennent actuels : */ #if withStartCurrent == 1 set_parameter(mSET_STARTCURR_INT, s_parameters.pSET_STARTCURR_INT); set_parameter(mSET_STARTCURR_FRAC, s_parameters.pSET_STARTCURR_FRAC); #else set_parameter(mSET_STARTCURR_INT, 0); set_parameter(mSET_STARTCURR_FRAC, 0); #endif /** Paramètres d'ajustement de la période de suppression du composant DC : */ set_parameter(mSET_DCREMPER, defSET_DCREMPER); ) // Fin de init_esp_parameter()) // Fin du sous-programme init_esp_parameter()

7.3 Programme Démo 1

Demo 1 est un programme de démonstration simple qui initialise l'ESP430CE1 pour mesurer l'énergie électrique et afficher le résultat sur un indicateur. Cela fait clignoter la LED. Ce programme peut fonctionner avec le kit de développement Kickstart d'IAR.

Vous trouverez ci-dessous les fichiers du programme de démonstration et leurs objectifs :

Déposer Objectif et fonctions
Principal c Contrôle les initialisations du système et appelle les fonctions pour indiquer la valeur mise à jour demandée par les routines d'interruption :
  • Init FLL et horloge système
  • Init Basic Timer et horloge en temps réel
  • Initialiser l'écran LCD
  • Initier le frontal analogique
  • Paramètres d'initialisation de l'ESP430CE1
  • Démarrer la mesure
FET4xx_RTCwLCD.s43 Sous-programme principal pour la maintenance des écrans LCD et RTC
Afficher.c Sous-programme de haut niveau pour LCD
FLL.c Routine de configuration du système PLL et horloge
PortFunc.c Sous-programme de traitement des interruptions du port Port1
MinuterieA.c Sous-programme d'initialisation et de maintenance du temporisateur Timer_A. Timer_A est utilisé pour générer des impulsions
EMeter.c EMeter.c Contient la routine d'initialisation et la routine de maintenance pour le terminal analogique, ESP430CE1 et les interruptions de l'ESP430CE1
FE427_Measure_v3.ewp
FE427_Measure_v3.eww
Fichiers de projet pour Workbench version 3 d'IAR
FE427_Measure.ewp
FE427_Measure.eww
Fichiers de projet pour Workbench version 2 d'IAR
FE427_Mesure.hzp
FE427_Mesure.hzs
Fichiers de projet pour le programme CrossStudio de Rowley

Le schéma fonctionnel du programme de démonstration est présenté à la figure 13.


Figure 13. Schéma fonctionnel du programme de démonstration

7.4 Génération d'une impulsion de consommation d'énergie

Cette impulsion peut être utilisée pour indiquer un certain niveau de consommation d'énergie. Trois méthodes peuvent être utilisées pour générer ce signal de sortie.

7.4.1 Utilisation directe de la sortie d'interruption de niveau

La première méthode utilise directement la sortie source d'interruption du module ESP430 à un niveau spécifié. La mise en œuvre de cette méthode est très simple et ne nécessite pas l'utilisation de ressources matérielles ou logicielles supplémentaires. Mais du fait que l'énergie des oscillations sinusoïdales est mesurée, ce signal peut présenter des oscillations transitoires.

Cette méthode est activée :

    // *définit TIMERA_PULSE_OUTPUT
    // *définir AVEC_AVERAGING

7.4.2 Utilisation de la sortie du module de minuterie Timer_A

La deuxième méthode utilise un module de minuterie Timer_A pour supprimer les oscillations transitoires. Cette méthode convient pour générer des impulsions avec une fréquence allant jusqu'à 30 Hz. Avant d'utiliser cette méthode, vous devez effectuer les réglages suivants dans le fichier paramètre.h.

    *définir TimerAClock TASSEL_1/* ACLK = 32 kHz
    *définir TACLOCK 32768ul
    *définir CLOCKSPERPERIOD (TACLOCK/defSET_NOMFREQ)

La méthode est activée comme suit :

    *définir TIMERA_PULSE_OUTPUT
    // *définir AVEC_AVERAGING

7.4.3 Utilisation de la sortie du module de minuterie Timer_A pour le calcul de la moyenne

La troisième méthode utilise uniquement le module de minuterie Timer_A pour effectuer une moyenne temporelle et générer des impulsions de fréquence porteuse.

Cette méthode est activée comme suit :

    *définir TIMERA_PULSE_OUTPUT
    *définir AVEC_AVERAGING

7.5 Gestion

Deux boutons sont utilisés pour exécuter les fonctions suivantes :

  • S_A : éteignez le module ESP430CE1 et mettez le MSP430 en mode faible consommation. L'horloge en temps réel continue de fonctionner.
  • S_B : Basculement entre les modes d'affichage.

7.5.1 Paramètre de fichier.h

Tous les paramètres de configuration sont effectués dans le fichier paramètre.h. Ceux-ci inclus:

  • Niveau d'impulsion de sortie.
  • Coefficients de transfert de tension et de courant
  • Paramètres de configuration du module ESP430CE1

#define for withDisplay permet au code d'évoluer pour différentes fonctions et tailles. Le code utilise des fonctions à virgule flottante pour la sortie et l'étalonnage UART. L’inclusion de l’une de ces deux parties augmentera la taille du code.

La définition d'un shunt, *define shunt, vous permet de sélectionner à quelle entrée I1 sera connectée - un shunt ou un transformateur de courant.

Pour simplifier le calcul des principaux paramètres utilisés dans le fichier paramètre.h, vous pouvez utiliser le fichier Excel FE427_Settings.xls. Après avoir saisi les informations requises dans les champs blancs, tous les paramètres seront calculés et affichés. En cliquant sur le bouton « Enregistrer le paramètre dans un fichier », tous les paramètres seront enregistrés dans le fichier « Test_Parameter.h ».

Ce fichier avec les paramètres calculés sera inclus dans le code source à la place des paramètres par défaut spécifiés dans le fichier 'Parameter.h' si la remarque est supprimée de la ligne '#define Test' dans le fichier 'Parameter.h' lui-même.

7.6 Programme de démonstration Démo 2

Le programme de démonstration Demo 2 est installé comme une application complète comprenant un UART et des routines d'étalonnage automatique qui enregistrent les paramètres dans la mémoire flash. Pour calculer la consommation électrique, au lieu de la fonction de génération de consommation lorsqu'un niveau spécifié est dépassé, les valeurs renvoyées par le module ESP430CE1 sont utilisées. Le programme Demo 1 initialise le module ESP430CE1, envoie des données à l'indicateur et contrôle la LED de mise sous tension. Ce programme de démonstration est trop volumineux pour être utilisé avec le kit IAR Kickstart.

La démo 2 inclut tous les fichiers contenus dans la démo 1 et les fichiers répertoriés dans le tableau suivant :

7.6.1 Communication UART

    Format des données transmises : 57600 / 8 N 1
    Chaque commande doit se terminer par le caractère « CR ».
    La commande 'h' affiche le texte d'aide suivant dans la fenêtre du terminal :

    Version du logiciel MSP430FE427 : 0114
    Commandes UART :

      SHxx : Régler l'horloge
      SMxx : Réglage des minutes
      SSxx : Réglage des secondes
      SDxx : Définir le jour
      SOxx : Réglage du mois
      SYxx : Réglage de l'année
      Dx : Réglage du mode indicateur
      D1 : Fermer
      D2 : Temps
      D3 : date
      D4 : Tension (V)
      D5 : Courant (A)
      D6 : Tension de crête (V)
      J7 : Courant de crête (A)
      D8 : Fréquence Hz)
      D9 : CosPhi
      DA : Température
      BD : Puissance, kWt)
      DC : Consommation électrique (kW*h)
      H : afficher le texte d'aide
      Émission : réglage du mode test
      R : réinitialisation du système
      MX : Effectuer des mesures de test pendant x*50 cycles
      JE: Initialisation
      C0 : Calibrage automatique de U/I/P/déphasage
      C1 :Étalonnage du niveau d'interruption
      C2 : Calibrage de correction de phase 1
      C3 : Calibrage de correction de phase 2
      C4 :Étalonnage du décalage V1
      C5 :Étalonnage du décalage I1
      C6 :Étalonnage du décalage I2
      C9 : Sauvegarde des paramètres dans la mémoire flash
      SA :Étalonnage du gain de tension
      VS : Calibrage du gain de courant
      SS : Calibrage du gain de puissance
      +: Augmentation de la valeur d'étalonnage
      -: Diminuer la valeur d'étalonnage

7.6.2 Étalonnage

La partie principale du processus d'étalonnage peut être effectuée à l'aide de la commande UART « C0 ».

Pour exécuter cette commande, les paramètres d'entrée doivent être définis dans le fichier paramètre.h :

  • calTension
  • calActuel
  • calPhi
  • calCosPhi
  • calFréq

À l'aide de la commande UART "C9", les valeurs calculées peuvent être enregistrées dans la mémoire flash.

7.6.3 Paramètre de fichier.h

Tous les paramètres de configuration sont effectués dans le fichier paramètre.h :

  • Réglage du niveau d'impulsion de sortie
  • Coefficients de tension et de courant
  • Paramètres du module ESP430CE1

#defines pour withUARTComm, withCalibration, withDisplay vous permettent de modifier le code pour différentes fonctions et tailles. L’inclusion de l’une de ces deux parties augmentera la taille du code.

Cet appareil est conçu pour compter le nombre de tours de l'arbre d'un appareil mécanique. En plus du simple comptage avec indication sur l'écran LED en nombres décimaux, le compteur fournit des informations sur le nombre de tours dans un code binaire à dix bits, qui peut être utilisé lors de la conception d'un appareil automatique. Le compteur se compose d'un capteur de vitesse optique, qui est un optocoupleur composé d'une LED IR allumée en permanence et d'une photodiode, entre lesquelles se trouve un disque en matériau opaque dans lequel un secteur est découpé. Le disque est fixé à l'arbre d'un dispositif mécanique dont il faut compter le nombre de tours. Et une combinaison de deux compteurs : un compteur décimal à trois chiffres avec sortie vers des indicateurs LED à sept segments et un compteur binaire à dix chiffres. Les compteurs fonctionnent de manière synchrone, mais indépendamment les uns des autres. La LED HL1 émet un flux lumineux continu qui pénètre dans la photodiode via une fente dans le disque de mesure. Lorsque le disque tourne, des impulsions sont générées, et comme il n'y a qu'un seul emplacement dans le disque, le nombre de ces impulsions est égal au nombre de tours du disque. Le déclencheur de Schmitt sur D1.1 et D1.2 convertit les impulsions de tension sur R2, provoquées par un changement du photocourant traversant la photodiode, en impulsions de niveau logique adaptées à la perception par les compteurs des séries K176 et K561. Le nombre d'impulsions (nombre de tours de disque) est compté simultanément par deux compteurs : un compteur décimal à trois décades sur les puces D2-D4 et un compteur binaire sur D5. Les informations sur le nombre de tours sont affichées sur un affichage numérique, composé de trois indicateurs LED à sept segments H1-H3, et sous la forme d'un code binaire de dix bits, qui est retiré des sorties du compteur D5. La remise à zéro de tous les compteurs au moment de la mise sous tension s'effectue simultanément, ce qui est facilité par la présence de l'élément D1.3. Si vous avez besoin d'un bouton zéro, il peut être connecté en parallèle avec le condensateur C1. Si vous avez besoin que le signal de réinitialisation provienne d'un périphérique externe ou d'un circuit logique, vous devez remplacer le microcircuit K561LE5 par K561LA7 et déconnecter sa broche 13 de la broche 12 et C1. La mise à zéro peut désormais être effectuée en appliquant un zéro logique provenant d'un nœud logique externe à la broche 13 de D1.3. Le circuit peut utiliser d'autres indicateurs LED à sept segments similaires à l'ALS324. Si les indicateurs ont une cathode commune, vous devez appliquer zéro, et non un, aux broches 6 D2-D4. Les microcircuits K561 peuvent être remplacés par des analogues des séries K176, K1561 ou des analogues importés. LED - n'importe quelle LED IR (depuis la télécommande de l'équipement). Photodiode - l'une de celles utilisées dans les systèmes de télécommande des téléviseurs de type USCT. Le réglage consiste à régler la sensibilité de la photodiode en sélectionnant la valeur de R2.

Radioconstructeur n°2 2003 p.24

La conception est réalisée sur une seule puce K561IE16. Puisque, pour son bon fonctionnement, un générateur d'horloge externe est nécessaire, dans notre cas nous le remplacerons par une simple LED clignotante. Dès que nous fournissons une tension au circuit de la minuterie, la capacité C1 commencera à se charger à travers la résistance R2, donc une capacité logique apparaîtra brièvement sur la broche 11, réinitialisant le compteur. Le transistor connecté à la sortie du compteur s'ouvrira et allumera le relais, qui connectera la charge via ses contacts.


On utilise ici le deuxième déclencheur du microcircuit K561TM2, qui n'intervient pas dans le premier circuit. Il est allumé en série avec le premier déclencheur, formant un compteur binaire à deux chiffres, qui ne diffère du compteur « standard » que par la présence d'un circuit à retard R3-C2 dans la première liaison de déclenchement. Désormais, l'état des sorties de déclenchement changera en fonction du code binaire. A la mise sous tension, les deux bascules sont mises à l'état zéro pour que cela se produise, l'entrée R de la deuxième bascule est connectée à la même entrée de la première. Désormais, le circuit C1-R2 agit sur les deux bascules, les remettant à zéro lors de la mise sous tension. À la première pression du bouton, le déclencheur D1.1 est réglé sur l'état unique et la lampe H1 est allumée.

Le premier compteur décrit ci-dessous est un générateur de nombres aléatoires. Il peut être utilisé pour déterminer l'ordre des coups dans diverses situations de jeu, comme machine de loterie, etc. Le générateur utilise des circuits intégrés de la série K155. Un générateur d'impulsions rectangulaires avec une fréquence de fonctionnement de l'ordre de plusieurs kilohertz est assemblé à l'aide des éléments DD1.1 -DD1.4 du circuit intégré K155LN1.


Lorsque vous appuyez sur l'interrupteur à bascule SB1, les contacts du bouton se ferment et les impulsions de la sortie du générateur suivent jusqu'à l'entrée de la première des 4 bascules JK connectées en série. Leurs entrées sont commutées de manière à ce que les bascules JK fonctionnent essentiellement en mode comptage. L'entrée de chaque déclencheur est connectée à la sortie inverse du précédent, ils commutent donc tous à une fréquence assez décente, et les LED HL1...HL4 clignotent en conséquence.

Ce processus continue tant que SB1 est enfoncé. Mais dès qu'il sera relâché, tous les déclencheurs se retrouveront dans une sorte d'état stable. Dans ce cas, seules les LED connectées aux sorties des déclencheurs qui seront à l'état zéro 0 s'allumeront.

Chaque LED se voit attribuer son propre équivalent numérique. Par conséquent, pour déterminer la combinaison gagnante, il est nécessaire de résumer les valeurs numériques des LED allumées.

Le circuit générateur de nombres aléatoires est si simple qu’il ne nécessite aucun réglage et commence à fonctionner immédiatement dès la mise sous tension. Au lieu des bascules JK, le compteur binaire K155IE5 peut être utilisé dans la conception.

La machine dispose de deux canaux identiques, dont chacun contient un générateur d'horloge basé sur les éléments DD1.1 - DD1.4 (DD2.1 - DD2.4), un compteur binaire à quatre bits DD3, DD5 (DD4, DD6), un contrôle circuits basés sur DD8.1 , DD8.2 (DD8.3, DD8.4), unités d'indication DD10.1 (DD10.2).


Le module de contrôle (DD7) qui implémente la formule « OU exclusif » combine les deux canaux. La logique de fonctionnement du DD7 est très simple : si deux niveaux logiques identiques arrivent à l'entrée d'un élément, alors un niveau logique de 0 se forme à sa sortie, sinon 1.

Lorsque l'appareil est sous tension et que le bouton « Réinitialiser » (SB1) est enfoncé, le commutateur DD3...DD6 passe à l'état unique et les LED s'éteignent. En parallèle, un 1 logique est formé aux sorties DD8.1 et DD8.3, permettant le démarrage des générateurs d'horloge. Les impulsions de leurs sorties suivent les déclencheurs et provoquent leur commutation synchrone. Les LED correspondantes clignotent également. La vitesse de commutation de ce dernier peut être contrôlée par les résistances R1 et R2 situées dans les consoles des joueurs.

Si le joueur, estimant que les états des LED des deux canaux sont équivalents, appuie sur le bouton SB2. Ensuite, un zéro logique est formé à la sortie de l'élément DD8, verrouillant les générateurs et fixant les états des déclencheurs. Le niveau un est formé à la sortie de DD8.2 et bloque la commutation du déclencheur vers DD8.3, DD8.4 et permet à l'indication de fonctionner. Grâce à cela, vous pourrez savoir lequel des deux joueurs appuiera le plus rapidement sur le bouton.

Les niveaux logiques des sorties inverses des déclencheurs sont transmis à l'unité de contrôle DD7.1 - DD7.4, où la comparaison a lieu. S'ils sont équivalents, alors un niveau zéro logique apparaît aux sorties des éléments du nœud de contrôle.

En inversant DD9.1-DD9.4, cela provoque l'apparition d'un niveau haut à la sortie du circuit OU (VD1-VD4). Ainsi, les deux unités seront simultanément uniquement à l'entrée DD10.1. Un zéro logique se forme à sa sortie et la LED HL9 commence à s'allumer, indiquant la victoire du joueur qui a appuyé sur le bouton SB2.

Si, lorsque SB2 a été enfoncé, les niveaux logiques étaient différents, alors un niveau zéro est formé à la sortie du circuit OU. Dans ce cas, un seul niveau est fourni uniquement à l'entrée DD10.2, et la LED correspondante s'allume, indiquant la victoire de l'autre joueur.

Le circuit se comportera de la même manière si vous appuyez d'abord sur le bouton SB3. Le temps de commutation de DD8.1 à DD8.4 est assez faible, donc la possibilité de panne est presque éliminée.

Le circuit dispose d'une unité de mise hors tension automatique après une demi-heure, mais si vous le souhaitez, il peut être déconnecté plus tôt en touchant le capteur avec votre doigt.

Pour assembler la structure, vous avez besoin de sept transistors et de trois circuits intégrés : K155LAZ et K155IE8.

Le décodeur se compose d'une unité de signalisation sonore sur VT1, VT2 et DD1 - DD3 et d'une unité de commutation d'alimentation sur VT3-VT7.


Le circuit d'alarme sonore est constitué d'un générateur d'horloge sur DD1.1, DD1.2 et VT1. Il génère des impulsions rectangulaires avec un taux de répétition d'environ 1 Hz.

Après la mise sous tension, le générateur d'horloge commence à envoyer des impulsions d'horloge et l'impulsion de réinitialisation générée par le circuit R4, C2 réinitialise le compteur et le déclencheur qui contrôle le facteur de division.

Le niveau logique provient de la sixième sortie du déclencheur DD3.1 et bloque la diode VD1, allumant le générateur de tonalité sur DD1.4 et le transistor VT2. En parallèle, les impulsions suivent jusqu'à la dixième entrée de l'élément DD1.4 à partir d'un générateur d'horloge avec une fréquence d'un Hz, allumant et éteignant le générateur de tonalité, qui génère un signal sonore intermittent.

De plus, le niveau logique 1 provenant de la sortie 6 du trigger fixe le facteur de division du compteur à seize. Après que la 17ème impulsion arrive à l'entrée du compteur, une impulsion positive est générée à la sortie de six DD2, faisant passer DD3.1 à l'état unique. Depuis la sortie 6, un niveau bas de ce déclencheur bloque le fonctionnement du générateur de tonalité et fixe le facteur de division du compteur à 64. Après l'arrivée des 64 impulsions suivantes, une impulsion positive est générée à la sortie du compteur, commutant le DD3.1. déclenchement à l'état zéro. La sortie de déclenchement active le générateur de tonalité et règle le facteur de division sur seize. Ainsi, le décodeur génère un signal sonore intermittent d'une durée de 16 secondes toutes les 64 secondes. Dans ce mode, le décodeur peut fonctionner jusqu'à ce que l'alimentation soit coupée.

Le circuit d'alarme sonore est alimenté par un « interrupteur électronique » et un dispositif de commutation automatique de l'alimentation, utilisant les transistors VT3-VT7. De plus, ce module limite la consommation actuelle du décodeur en mode veille au niveau du microampère, ce qui permet de ne pas utiliser d'interrupteur d'alimentation mécanique dans la conception.

Pour allumer le décodeur, nous fermons brièvement les points A et B. Dans le même temps, un potentiel de tension positif va à la base VT3 à travers la résistance R9 et le transistor composite formé à VT4-VT5 est déverrouillé, fournissant un diviseur de tension courant sur les résistances R10, R11. La chute de tension aux bornes de R10 et de la section collecteur-émetteur VT5 déverrouille le transistor composite VT6-VT7.

La tension d'alimentation passe par VT7 jusqu'à l'unité d'alarme sonore. En parallèle, via R6, R7 et la section collecteur-émetteur VT3, la capacité C4 est chargée. En raison de la chute de tension dans le circuit de charge de capacité, le transistor composite VT4-VT5 est maintenu ouvert, assurant le fonctionnement du transistor composite VT6-VT7.

Lorsque la capacité C4 est chargée, le potentiel aux points R6, VD2, C4, R7 chute et à une certaine valeur, le transistor composite VT4-VT5 est verrouillé, occupé et fermé par VT6-VT7, coupant ainsi le circuit d'alimentation du son. alarme.

La capacité C4 se décharge rapidement et le décodeur passe en mode veille. La durée de fonctionnement est fixée par la résistance R6 et la capacité C4, et pour les valeurs nominales indiquées, la durée est de 30 minutes. Vous pouvez également couper l'alimentation manuellement en touchant les contacts tactiles E1, E2.

Le potentiel de tension négatif, à travers la résistance de la surface de la peau et R8, atteint la base du transistor VT3, le déverrouillant. La tension au niveau du collecteur chute fortement et ferme le transistor composite VT4-VT5, qui ferme VT6, VT7.

Le compteur sur le microcontrôleur est assez simple à répéter et est assemblé sur le populaire microcontrôleur PIC16F628A avec une sortie d'indication sur 4 indicateurs LED à sept segments. Le compteur dispose de deux entrées de contrôle : « +1 » et « -1 », ainsi qu'un bouton « Reset ». Le contrôle du nouveau circuit de compteur est mis en œuvre de telle manière que, quelle que soit la durée de la pression sur le bouton d'entrée, le comptage ne continuera que lorsqu'il sera relâché et enfoncé à nouveau. Le nombre maximum d'impulsions reçues et, par conséquent, de lectures ALS est de 9999. Lorsqu'il est contrôlé par l'entrée « -1 », le comptage est effectué dans l'ordre inverse jusqu'à la valeur 0000. Les lectures du compteur sont enregistrées dans la mémoire du contrôleur même lorsque le l'alimentation est coupée, ce qui sauvegardera les données en cas d'interruptions aléatoires de la tension d'alimentation.

Schéma schématique d'un compteur inverse sur le microcontrôleur PIC16F628A :

La réinitialisation des relevés du compteur et en même temps de l'état de la mémoire à 0 s'effectue par le bouton « Réinitialiser ». Il ne faut pas oublier que lorsque vous allumez pour la première fois le compteur inverse sur le microcontrôleur, des informations imprévisibles peuvent apparaître sur l'indicateur ALS. Mais la première fois que vous appuyez sur l'un des boutons, les informations sont normalisées. L'endroit et la manière dont ce circuit peut être utilisé dépend des besoins spécifiques, par exemple, installé dans un magasin ou un bureau pour compter les personnes ou comme indicateur pour une bobineuse. En général, je pense que ce compteur sur microcontrôleur sera utile à quelqu'un.

Si quelqu'un n'a pas l'indicateur ALS requis sous la main, mais en possède un autre (ou même 4 indicateurs identiques distincts), je suis prêt à aider à redessiner le signe et à refaire le firmware. Dans les archives du forum, il y a un schéma de circuit, une carte et un firmware pour les indicateurs avec une anode commune et une cathode commune. Le circuit imprimé est illustré dans la figure ci-dessous :

Il existe également une nouvelle version du firmware pour le compteur du microcontrôleur PIC16F628A. dans le même temps, le circuit et la carte du compteur sont restés les mêmes, mais le but des boutons a changé : bouton 1 - entrée d'impulsions (par exemple, à partir d'un interrupteur à lames), le bouton 2 active le comptage pour soustraire les impulsions d'entrée, tandis que le point le plus à gauche de l'indicateur s'allume, le bouton 3 - ajout d'impulsions - Le point le plus à droite s'allume. Bouton 4 - réinitialiser. Dans cette version, le circuit de compteur d'un microcontrôleur peut être facilement appliqué à une bobineuse. Juste avant d'enrouler ou de dérouler des tours, vous devez d'abord appuyer sur le bouton « + » ou « - ». Le compteur est alimenté par une source stabilisée avec une tension de 5 V et un courant de 50 mA. Si nécessaire, il peut être alimenté par des piles. Le cas dépend de vos goûts et de vos capacités. Schéma fourni par Samopalkin

Principe de fonctionnement

L'état initial est le niveau zéro sur toutes les sorties de déclenchement (Q 1 – Q 3), c'est-à-dire le code numérique 000. Dans ce cas, le chiffre le plus significatif est la sortie Q 3. Pour transférer toutes les bascules à l'état zéro, les entrées des bascules R sont combinées et le niveau de tension requis leur est appliqué (c'est-à-dire une impulsion qui réinitialise les bascules). Il s’agit essentiellement d’une réinitialisation. L'entrée C reçoit des impulsions d'horloge qui augmentent le code numérique de un, c'est-à-dire qu'après l'arrivée de la première impulsion, la première gâchette passe à l'état 1 (code 001), après l'arrivée de la deuxième impulsion, la deuxième gâchette passe à l'état 1, et le premier à indiquer 0 (code 010), puis le troisième, etc. De ce fait, un tel appareil peut compter jusqu'à 7 (code 111), puisque 2 3 – 1 = 7. Lorsque toutes les sorties des triggers sont mis à un, ils disent que le compteur est débordé. Après l'arrivée de la prochaine (neuvième) impulsion, le compteur se remettra à zéro et tout recommencera depuis le début. Dans les graphiques, les changements dans les états de déclenchement se produisent avec un certain retard t h. Au troisième chiffre, le délai est déjà triplé. Le retard qui augmente avec le nombre de bits est un inconvénient des compteurs à transfert série, qui, malgré leur simplicité, limite leur utilisation dans des dispositifs à petit nombre de bits.

Classement des compteurs

Les compteurs sont des dispositifs permettant de compter le nombre d'impulsions (commandes) reçues à leur entrée, de stocker et de stocker le résultat du comptage, et d'émettre ce résultat. Le paramètre principal du compteur est le module de comptage (capacité) Kc. Cette valeur est égale au nombre d'états stables du compteur. Après l'arrivée des impulsions Kc, le compteur revient à son état initial. Pour les compteurs binaires Kс = 2 m, où m est le nombre de bits du compteur.

Outre Kc, les caractéristiques importantes du compteur sont la fréquence de comptage maximale fmax et le temps de stabilisation tset, qui caractérisent la vitesse du compteur.

Tst est la durée du processus de transition de commutation du compteur vers un nouvel état : tset = mttr, où m est le nombre de chiffres et ttr est le temps de commutation du déclencheur.

Fmax est la fréquence maximale des impulsions d'entrée à laquelle aucune perte d'impulsion ne se produit.

Par type d'opération :

– Résumer;

– Soustractif ;

– Réversible.

Dans un compteur sommateur, l'arrivée de chaque impulsion d'entrée augmente le résultat du comptage de un, dans un compteur soustractif, il le diminue de un ; Dans les compteurs inverseurs, la sommation et la soustraction peuvent se produire.

Par organisation structurelle :

- cohérent;

- parallèle;

– série-parallèle.

Dans un compteur série, l'impulsion d'entrée est fournie uniquement à l'entrée du premier chiffre ; l'impulsion de sortie du chiffre précédent est fournie aux entrées de chaque chiffre suivant.

Dans un compteur parallèle, avec l'arrivée de l'impulsion de comptage suivante, la commutation des déclencheurs lors du passage à un nouvel état se produit simultanément.

Le circuit série-parallèle inclut les deux options précédentes.

Dans l'ordre des changements d'état :

– avec un ordre naturel de comptage ;

– avec un ordre de comptage arbitraire.

Comptage modulo :

– binaire ;

– non binaire.

Le module de comptage d'un compteur binaire est Kc=2, et le module de comptage d'un compteur non binaire est Kc= 2m, où m est le nombre de bits du compteur.

Compteur série sommateur

Fig. 1. Compteur sommateur série 3 bits.

Les déclenchements de ce compteur sont déclenchés par le front descendant de l'impulsion de comptage. L'entrée du chiffre haut du compteur est reliée à la sortie directe (Q) du chiffre bas adjacent. Le chronogramme du fonctionnement d'un tel compteur est représenté sur la Fig. 2. Au moment initial, les états de toutes les bascules sont égaux à log.0, respectivement, à leurs sorties directes il y a log.0. Ceci est réalisé au moyen d'un log.0 à court terme appliqué aux entrées de réglage asynchrone des bascules sur log.0. L'état général du compteur peut être caractérisé par un nombre binaire (000). Pendant le comptage, la logique 1 est maintenue aux entrées de l'installation du déclencheur asynchrone dans log.1. Après l'arrivée du front arrière de la première impulsion, le bit 0 passe à l'état opposé - log.1. Le front montant de l'impulsion de comptage apparaît à l'entrée 1 bit. État du compteur (001). Une fois que le front descendant de la deuxième impulsion arrive à l'entrée du compteur, le bit 0 passe à l'état opposé - log.0, et le front descendant de l'impulsion de comptage apparaît à l'entrée du bit 1, qui commute le 1 bit à log.1. L'état général du compteur est (010). Le prochain front descendant à l'entrée 0 bit la définira sur le logique 1 (011), etc. Ainsi, le compteur cumule le nombre d'impulsions d'entrée arrivant à son entrée. Lorsque 8 impulsions arrivent à son entrée, le compteur revient à son état initial (000), ce qui signifie que le coefficient de comptage (CFC) de ce compteur est de 8.

Riz. 2. Chronogramme d'un compteur additionneur série.

Compteur série soustractif

Les déclenchements de ce compteur sont déclenchés par le front descendant. Pour mettre en œuvre l'opération de soustraction, l'entrée de comptage du chiffre de poids fort est connectée à la sortie inverse du chiffre de poids faible adjacent. Les déclencheurs sont préalablement réglés sur log.1 (111). Le fonctionnement de ce compteur est illustré dans le chronogramme de la Fig. 4.

Riz. 1 compteur soustractif série

Riz. 2 Chronogramme d'un compteur soustractif série

Compteur série réversible

Pour mettre en œuvre un compteur/décompteur, il est nécessaire de combiner les fonctions d'un compteur additionneur et les fonctions d'un compteur soustracteur. Le schéma de ce compteur est présenté sur la Fig. 5. Les signaux « somme » et « différence » sont utilisés pour contrôler le mode de comptage. Pour le mode sommation, « somme » = log.1, « 0 » est log.0 à court terme ; "différence" = log.0, "1" - log.0 à court terme. Dans ce cas, les éléments DD4.1 et DD4.3 permettent la fourniture de signaux depuis les sorties directes des déclencheurs DD1.1, DD1.2 vers les entrées d'horloge des déclencheurs DD1.2, DD2.1 via les éléments DD5.1 ​​​​​​et DD5.2, respectivement. Dans ce cas, les éléments DD4.2 et DD4.4 sont fermés, il y a un log 0 à leurs sorties, donc l'action des sorties inverses n'affecte en rien les entrées de comptage des bascules DD1.2, DD2.1. Ainsi, l'opération de sommation est mise en œuvre. Pour mettre en œuvre l'opération de soustraction, log.0 est fourni à l'entrée « somme » et log.1 à l'entrée « différence ». Dans ce cas, les éléments DD4.2, DD4.4 permettent de fournir les signaux des sorties inverses des déclencheurs DD1.1, DD1.2 aux entrées des éléments DD5.1, DD5.2 et, par conséquent, au comptage entrées des déclencheurs DD1.2, DD2.1. Dans ce cas, les éléments DD4.1, DD4.3 sont fermés et les signaux issus des sorties directes des déclencheurs DD1.1, DD1.2 n'affectent en rien les entrées de comptage des déclencheurs DD1.2, DD2. 1. Ainsi, l'opération de soustraction est mise en œuvre.

Riz. 3 Compteur série haut/bas 3 bits

Pour mettre en œuvre ces compteurs, vous pouvez également utiliser des déclencheurs déclenchés par le front montant des impulsions de comptage. Ensuite, lors de la sommation, un signal de la sortie inverse du bit de poids faible adjacent doit être fourni à l'entrée de comptage du chiffre le plus élevé, et lors de la soustraction, vice versa, l'entrée de comptage doit être connectée à la sortie directe.

L'inconvénient d'un compteur série est qu'à mesure que la profondeur de bits augmente, le temps d'installation (tset) de ce compteur augmente proportionnellement. L'avantage est la facilité de mise en œuvre.

Riz. 3 – Compteur inverseur

Il y a deux entrées pour compter les impulsions : « +1 » – pour augmenter, « -1 » – pour diminuer. L'entrée correspondante (+1 ou -1) est connectée à l'entrée C. Cela peut être fait à l'aide d'un circuit OU si vous l'insérez devant la première bascule (la sortie de l'élément est à l'entrée de la première bascule -flop, les entrées sont sur les bus +1 et -1). Le truc étrange entre les déclencheurs (DD2 et DD4) est appelé l'élément AND-OR. Cet élément est composé de deux éléments ET et d'un élément OU, réunis dans un seul boîtier. Tout d'abord, les signaux d'entrée sur cet élément sont logiquement multipliés, puis le résultat est logiquement ajouté.

Le nombre d'entrées de l'élément ET-OU correspond au numéro du chiffre, c'est-à-dire si le troisième chiffre, alors trois entrées, le quatrième - quatre, etc. Le circuit logique est un interrupteur à deux positions commandé par le direct ou l'inverse sortie du déclencheur précédent. Au journal. 1 en sortie directe, le compteur compte les impulsions du bus « +1 » (si elles arrivent, bien sûr), avec un log. 1 sur la sortie inverse – du bus « -1 ». Les éléments ET (DD6.1 et DD6.2) forment les signaux de transfert. En sortie >7, le signal est généré lorsque le code 111 (numéro 7) et la présence d'une impulsion d'horloge sur le bus +1, en sortie<0 сигнал формируется при коде 000 и наличии тактового импульса на шине -1.

Tout cela, bien sûr, est intéressant, mais c'est plus beau dans la conception des microcircuits :

Riz. 4 Compteur binaire à quatre bits

Voici un compteur prédéfini typique. CT2 signifie que le compteur est binaire ; s'il est décimal, alors CT10 est défini ; s'il est binaire-décimal, il s'agit de CT2/10. Les entrées D0 à D3 sont appelées entrées d'information et sont utilisées pour écrire n'importe quel état binaire sur le compteur. Cet état sera affiché à ses sorties et le compte à rebours commencera à partir de là. En d’autres termes, ce sont des entrées prédéfinies, ou simplement des préréglages. L'entrée V est utilisée pour activer l'enregistrement du code sur les entrées D0 – D3 ou, comme on dit, pour activer le préréglage. Cette entrée peut également être désignée par d'autres lettres. L'enregistrement préliminaire dans le compteur est effectué lorsqu'un signal d'autorisation d'écriture est envoyé au moment où l'impulsion arrive à l'entrée C. L'entrée C est cadencée. Les impulsions sont poussées ici. Le triangle signifie que le compteur est déclenché par la chute du pouls. Si le triangle pivote de 180 degrés, c'est-à-dire dos à la lettre C, il est alors déclenché par le front de l'impulsion. L'entrée R est utilisée pour réinitialiser le compteur, c'est-à-dire que lorsqu'une impulsion est appliquée à cette entrée, des journaux sont définis sur toutes les sorties du compteur. 0. L’entrée PI est appelée entrée de report. La sortie p est appelée sortie de report. Un signal est généré sur cette sortie lorsque le compteur déborde (lorsque toutes les sorties sont définies sur 1 logique). Ce signal peut être appliqué à l'entrée de report du compteur suivant. Ensuite, lorsque le premier compteur déborde, le second passera à l’état suivant. Les sorties 1, 2, 4, 8 sont simplement des sorties. Ils génèrent un code binaire correspondant au nombre d'impulsions reçues à l'entrée du compteur. Si les conclusions comportent des cercles, ce qui arrive beaucoup plus souvent, alors elles sont inverses, c'est-à-dire au lieu d'un log. 1 reçoit un journal. 0 et inversement. Le fonctionnement des compteurs avec d'autres appareils sera discuté plus en détail ultérieurement.

Totalisateur parallèle

Le principe de fonctionnement de ce compteur est que le signal d'entrée contenant les impulsions de comptage est appliqué simultanément à tous les bits de ce compteur. Et le réglage du compteur sur l'état log.0 ou log.1 est contrôlé par le circuit de commande. Le schéma de circuit de ce compteur est illustré à la Fig. 6

Riz. 4 Compteur cumulatif parallèle

Les bits du compteur sont les déclencheurs DD1, DD2, DD3.

Circuit de commande – élément DD4.

L'avantage de ce compteur est son temps d'installation court, qui ne dépend pas de la capacité en chiffres du compteur.

L'inconvénient est la complexité du circuit à mesure que la capacité du compteur augmente.

Compteurs de report parallèles

Pour augmenter les performances, une méthode de génération simultanée d'un signal de transfert pour tous les bits est utilisée. Ceci est réalisé en introduisant des éléments ET, à travers lesquels des impulsions d'horloge sont envoyées immédiatement aux entrées de tous les bits du compteur.

Riz. 2 – Compteur de portage parallèle et graphiques expliquant son fonctionnement

Tout est clair dès le premier déclencheur. Une impulsion d'horloge passera à l'entrée du deuxième déclencheur uniquement lorsqu'il y aura un journal à la sortie du premier déclencheur. 1 (une caractéristique du circuit ET), et à l'entrée du troisième - lorsqu'il y a un journal aux sorties des deux premiers. 1, etc. Le délai de réponse sur le troisième déclencheur est le même que sur le premier. Un tel compteur est appelé compteur de report parallèle. Comme le montre le diagramme, à mesure que le nombre de bits augmente, le nombre de journaux augmente. ET éléments, et plus le rang est élevé, plus l'élément possède d'entrées. C'est un inconvénient de ces compteurs.

Développement d'un diagramme schématique

Générateur d'impulsions

Un façonneur d'impulsions est un dispositif nécessaire pour éliminer les rebonds de contact qui se produisent lorsque les contacts mécaniques sont fermés, ce qui peut entraîner un mauvais fonctionnement du circuit.

La figure 9 montre des schémas de générateurs d'impulsions à partir de contacts mécaniques.

Riz. 9 Générateurs d'impulsions à partir de contacts mécaniques.

Bloc de visualisation

Des LED doivent être utilisées pour afficher le résultat du comptage. Pour effectuer une telle sortie d'informations, vous pouvez utiliser le schéma le plus simple. Le schéma de l'unité d'affichage LED est présenté à la figure 10.

Riz. Unité d'affichage à 10 LED.

Développement de CCS (circuit de contrôle combiné)

Pour mettre en œuvre ce compteur de la série TTLSh de microcircuits K555, j'ai choisi :

deux microcircuits K555TV9 (2 déclencheurs JK avec installation)

un microcircuit K555LA4 (3 éléments 3I-NOT)

deux microcircuits K555LA3 (4 éléments 2I-NOT)

une puce K555LN1 (6 onduleurs)

Ces puces fournissent un nombre minimum de packages sur une carte de circuit imprimé.

Etablir un schéma fonctionnel du compteur

Le diagramme fonctionnel est un ensemble de blocs de compteurs qui remplissent certaines fonctions et assurent le fonctionnement normal du compteur. La figure 7 montre le schéma fonctionnel du compteur.

Riz. 7 Schéma fonctionnel du compteur

L'unité de contrôle remplit la fonction d'envoyer un signal et de contrôler les déclencheurs.

Le bloc de comptage est conçu pour changer l'état du compteur et sauvegarder cet état.

L'unité d'affichage affiche des informations pour la perception visuelle.

Etablir un schéma fonctionnel du compteur

Schéma fonctionnel – structure interne du compteur.

Déterminons le nombre optimal de déclencheurs pour un compteur non binaire avec un coefficient de comptage Kc=10.

M = log 2 (Kc) = 4.

M = 4 signifie implémenter un compteur décimal binaire, 4 bascules sont nécessaires.

Les compteurs d'impulsions à un chiffre les plus simples

Le compteur d'impulsions à un chiffre le plus simple peut être une bascule JK et une bascule D fonctionnant en mode comptage. Il compte les impulsions d'entrée modulo 2 - chaque impulsion fait passer le déclencheur à l'état opposé. Un déclencheur compte jusqu'à deux, deux connectés en série comptent jusqu'à quatre, n déclencheurs comptent jusqu'à 2n impulsions. Le résultat du comptage est généré dans un code donné, qui peut être stocké dans la mémoire du compteur ou être lu par un autre appareil décodeur numérique.

La figure montre le circuit d'un compteur d'impulsions binaires à trois bits construit sur une bascule JK axe K155TB1. Montez un tel compteur sur un panneau de maquette et connectez les indicateurs à LED (ou à transistor - avec une lampe à incandescence) aux sorties directes des déclencheurs, comme cela a été fait auparavant. Appliquez une série d'impulsions avec une fréquence de répétition de 1 ... 2 Hz du générateur de test à l'entrée C du premier déclencheur du compteur et tracez le fonctionnement du compteur à l'aide des signaux lumineux des indicateurs.

Si au moment initial tous les déclencheurs du compteur étaient à l'état zéro (vous pouvez régler le bouton-interrupteur SB1 « Set.0 », en appliquant une tension de faible niveau à l'entrée R des déclencheurs), alors lors du déclin du première impulsion (Fig. 45.6), le déclencheur DD1 passera à l'état unique - un niveau de tension élevé apparaîtra à sa sortie directe (Fig. 45, c). La deuxième impulsion fera passer le déclencheur DD1 à l'état zéro et le déclencheur DD2-B à l'état unique (Fig. 45, d). Lorsque la troisième impulsion tombe, les déclencheurs DD1 et DD2 seront dans l'état 1, et le déclencheur DD3 sera toujours dans l'état zéro. La quatrième impulsion fera passer les deux premiers déclencheurs à l'état zéro et le troisième à l'état unique (Fig. 45, d). La huitième impulsion fera passer tous les déclencheurs à l'état zéro. Lorsque la neuvième impulsion d'entrée tombe, le prochain cycle de fonctionnement du compteur d'impulsions à trois chiffres commence.

En étudiant les graphiques, il est facile de remarquer que chaque chiffre haut du compteur diffère du chiffre bas du double du nombre d'impulsions de comptage. Ainsi, la période des impulsions à la sortie du premier déclencheur est 2 fois supérieure à la période des impulsions d'entrée, à la sortie du deuxième déclencheur - 4 fois, à la sortie du troisième déclencheur - 8 fois. Parlant dans le langage de la technologie numérique, un tel compteur fonctionne selon un code de poids 1-2-4. Ici, le terme « poids » fait référence à la quantité d'informations reçues par le compteur après avoir mis ses déclencheurs à l'état zéro. Dans les appareils et instruments de technologie numérique, les compteurs d'impulsions à quatre chiffres fonctionnant dans le code de poids 1-2-4-8 sont les plus largement utilisés. Les diviseurs de fréquence comptent les impulsions d'entrée jusqu'à un certain état spécifié par le coefficient de comptage, puis forment un signal de commutation de déclenchement vers l'état zéro, recommencent à compter les impulsions d'entrée jusqu'au coefficient de comptage spécifié, etc.

La figure montre le circuit et les graphiques du fonctionnement d'un diviseur avec un facteur de comptage de 5, construit sur des bascules JK. Ici, le compteur binaire à trois bits déjà familier est complété par un élément logique 2-NOT DD4.1, ce qui fixe le facteur de comptage à 5. Cela se passe comme ça. Pendant les quatre premières impulsions d'entrée (après avoir mis les déclencheurs à l'état zéro à l'aide du bouton SB1 « Set 0 »), l'appareil fonctionne comme un compteur d'impulsions binaires régulier. Dans ce cas, un faible niveau de tension fonctionne sur l'une ou les deux entrées de l'élément DD4.1, l'élément est donc dans un seul état.

Au déclin de la cinquième impulsion, un niveau de tension élevé apparaît à la sortie directe des premier et troisième triggers, et donc aux deux entrées de l'élément DD4.1, faisant passer cet élément logique à l'état zéro. À ce moment, une courte impulsion de bas niveau est formée à sa sortie, qui est transmise via la diode VD1 à l'entrée R de toutes les bascules et les fait passer à l'état zéro initial.

A partir de ce moment, le cycle suivant de l'opération de comptage commence. La résistance R1 et la diode VD1, introduites dans ce compteur, sont nécessaires pour éviter que la sortie de l'élément DD4.1 ne soit court-circuitée avec le fil commun.

Vous pouvez vérifier le fonctionnement d'un tel diviseur de fréquence en appliquant des impulsions d'une fréquence de 1 ... 2 Hz à l'entrée C de son premier déclencheur et en connectant un indicateur lumineux à la sortie du déclencheur DD3.

En pratique, les fonctions de compteurs d'impulsions et de diviseurs de fréquence sont assurées par des microcircuits spécialement conçus avec un haut degré d'intégration. Dans la série K155, il s'agit par exemple des compteurs K155IE1, K155IE2, K155IE4, etc.

Dans les développements radioamateurs, les microcircuits K155IE1 et K155IE2 sont les plus largement utilisés. Les symboles graphiques conventionnels de ces microcircuits compteurs avec la numérotation de leurs sorties sont représentés sur la Fig. 47.

Le microcircuit K155IE1 (Fig. 47a) est appelé compteur d'impulsions décennales, c'est-à-dire un compteur avec un facteur de comptage de 10. Il contient quatre déclencheurs connectés en série. La sortie (broche 5) du microcircuit est la sortie de son quatrième déclencheur. Toutes les bascules sont mises à l'état zéro en appliquant simultanément une tension de haut niveau aux deux entrées R (broches 1 et 2), combinées selon le circuit de l'élément ET (symbole « & »). Les impulsions de comptage, qui doivent avoir un niveau bas, peuvent être appliquées aux entrées C connectées ensemble (broches 8 et 9), également combinées le long de I., ou à l'une d'elles, si à ce moment la seconde a un niveau de tension élevé. Toutes les dix impulsions d'entrée, le compteur génère une impulsion de bas niveau d'une durée égale à l'impulsion d'entrée. Microcircuit K155IE2 (Fig. 48b)

Compteur binaire-décimal à quatre chiffres. Il dispose également de quatre bascules, mais la première a une entrée C1 séparée (broche 14) et une sortie directe séparée (broche 12). Les trois autres triggers sont connectés entre eux de manière à former un diviseur par 5. Lorsque la sortie du premier trigger (broche 12) est connectée à l'entrée C2 (broche 1) du circuit des triggers restants, le microcircuit devient un diviseur par 10 (Fig. 48, a), fonctionnant en code 1 -2-4-8, ce que symbolisent les chiffres aux sorties de la désignation graphique du microcircuit. Pour mettre les déclenchements du compteur à l'état zéro, une tension de niveau haut est appliquée aux deux entrées R0 (broches 2 et 3).

Deux entrées combinées R0 et quatre sorties de séparation du microcircuit K155IE2 vous permettent de construire des diviseurs de fréquence avec des facteurs de division de 2 à 10 sans éléments supplémentaires. Par exemple, si vous connectez les broches 12 et 1, 9 et 2, 8 n 3 (Fig. 48, 6), alors le facteur de comptage sera 6, et lors de la connexion des broches 12 et 1, 11. 2 et 3 (Fig. 48, c), le facteur de comptage deviendra 8. Cette caractéristique du microcircuit K155IE2 lui permet d'être utilisé à la fois comme compteur d'impulsions binaires et comme diviseur de fréquence.

Un compteur d'impulsions numérique est une unité numérique qui compte les impulsions arrivant à son entrée. Le résultat du comptage est généré par le compteur dans un code donné et peut être stocké pendant le temps requis. Les compteurs sont construits sur des déclencheurs et le nombre d'impulsions que le compteur peut compter est déterminé à partir de l'expression N = 2 n – 1, où n est le nombre de déclencheurs, et moins un, car dans la technologie numérique, 0 est pris comme point de départ. Les compteurs sont sommatifs lorsque le compte va vers l'augmentation, et le compte soustractif va vers la diminution. Si le compteur peut passer pendant le fonctionnement de la sommation à la soustraction et vice versa, alors il est dit réversible.