F6HCC
Décodeur DCF77
à circuits TTL et CMOS . . .
Voici une réalisation à la fois "radio" (77,5 kHz) et circuits logiques "rétro" (TTL, CMOS).
Ce montage permet d'analyser et de comprendre le fonctionnement de la transmission des signaux horaires provenant de l'émetteur "DCF77" de Mainflingen (Allemagne).
Evidemment il y a mieux (à microcontrôleur) et même du "tout fait" pour quelques euros dans n'importe quelle boutique, mais c'est moins amusant...
La transmission DCF77
Le système de synchronisation est assez simple:
- le top de chaque seconde dure 100 ms ou 200 ms et code ainsi un 0 ou un 1 binaire.
- il n'y a pas d'impulsion à la 59ème seconde ce qui fait que le décodeur détecte le début de la minute et remet le compteur des secondes à zéro.
- on obtient donc un message de 59 bits qui code les minutes, les heures, le jour du mois, le jour de la semaine, le mois, l'année...
- la minute (sur 7 bits, P1 est le bit de parité) et l'heure (sur 6 bits) se trouvent codées de la 21ème à la 34ème seconde.
- la seconde affichée est celle du compteur de secondes...
- La vidéo suivante montre les afficheurs indiquant ce qui se présente en sortie des registres à décalage 74HC164 (d'où l'affichage aléatoire à partir de la 20ème seconde):
- A la 20ème seconde les bits "glissent" dans le registre.
- A la 34ème seconde les bits sont correctement calés et l'heure s'affiche (il s'agit de l'heure qui sera valide au passage à la minute suivante (donc H + 1 minute).
- On bloque les registres de façon à maintenir l'affichage de l'heure jusqu'à la 20ème seconde suivante.
Le schéma
Fonctionnement du décodeur
Le signal du récepteur (impulsions positives) passe dans un filtre R C (150 k / 100 nF) destiné à éliminer des pics parasites courts, puis est inversé par une porte de 74HC14.
Ces impulsions arrivent au circuit de détection de la minute. A chaque seconde la diode 1N4148 charge le condensateur 1,9 µF (4 x 470 nF en parallèle) qui se décharge lentement dans la résistance de 1,5 Mohms.
La 59ème impulsion étant absente le condensateur n'est pas rechargé et la porte suivante bascule, provoquant la mise à zéro du compteur de secondes (4518).
Les impulsions arrivent aussi à un circuit de masquage. Ce monostable de 700 ms (2 x 470 nF en parallèle et 1,5 Mohms) est destiné à éliminer des parasites qui pourraient arriver entre les impulsions et créeraient des "secondes fantômes".
Une porte NAND reliée au 4518 détecte l'affichage d'un "6" sur les dizaines de secondes (erreur dépassement de 60 secondes) et bloque la logique jusqu'à la prochaine RAZ.
La sortie de ce monostable en lance un autre destiné à récupérer le niveau logique présent 150 ms après le début d'une impulsion.
Comme une impulsion "0" dure 100 ms on récupère un niveau "0" à 150 ms.
Une impulsion "1" dure 200 ms on récupère un niveau "1" à 150 ms.
Pour récupérer ce niveau on fait avancer les registres à décalage 74HC164 à la fin des 150 ms et le niveau "entre" dans le 1er bit du registre (par la broche 1 du 74HC164 de gauche).
Les niveaux entrés précédemment sont "poussés" d'un bit dans les registres.
A la 20ème seconde, le bit "B" des dizaines de secondes (br.12 du 4518) passe à 1 (010 0000 = "2 0") provoquant une mise à zéro des 74HC164 à travers le circuit R C et l'inverseur.
L'impulsion de la 20ème seconde, qui est toujours à "1", entre dans le registre.
Elle est suivie des impulsions codant les minutes et l'heure.
A la 34ème seconde elle arrive à la sortie "D" (broche 13) du 74HC164 de droite et va bloquer la 2ème porte du circuit d'échantillonnage, donc bloquer l'avance des registres.
Le code binaire des secondes et des minutes se trouve alors figé en sortie des 74HC164.
A la seconde "0" (début de la minute qui arrive) on crée une impulsion par les 2 portes NAND de gauche qui valide le passage sur les afficheurs.
Les composants
- Les afficheurs utilisés sont des TIL311 récupérés sur d'anciens équipements informatiques (années 1980). Difficiles à trouver et assez coûteux on peut les remplacer par des décodeurs CMOS 4511 associés à des afficheurs 7 segments cathode commune.
- Des 74164 (anciens circuits TTL) ont parfaitement fonctionné à la place des 74HC164. Je suppose que des 74LS164 fonctionneraient aussi.
- Par contre les inverseurs doivent être obligatoirement des 74HC14 et les portes NAND des MC14011 (il y a quelques défauts de comptage avec les HEF4011 et je n'ai pas eu le temps d'en chercher la cause).
- Les condensateurs sont pour la plupart des 470 nF miniatures. On peut utiliser aussi des 470 nF pour les découplages de l'alimentation des circuits.