Heure atomique sur TI-8x :
Pourquoi l'heure atomique ? Et bien, c'est la méthode la plus précise (1 seconde d'erreur pour 1 million d'années). Comme tout le matériel à mettre en oeuvre est assez encombrant la solution d'un émetteur était la plus logique. Cet émetteur, situé près de Frankfurt (Allemagne), à une puissance de 25 kW et couvre la zone suivante :
Les données sont sous forme de bits, chaque bit est émis au rythme de la
seconde.
Pour des raisons de coût et surtout par soucis de qualité de réception, il
est préférable d'acheté un module. La base de ce montage est donc un module
DCF77. Il se charge de réceptionner les données (date, heure...) provenant de
émetteur. La fréquence d'émission est de 77,5kHz (d'où le nom DCF77).
A l'origine j'avais l'intention de me servir d'un PC, mais comme ce type d'interface existait déjà (voir Mes liens préférés) je me suis tourné vers la TI.
Principe :
L'émetteur émet un bit toutes les secondes, excepter durant la 59ème
seconde afin de pouvoir détecter le début de la trame. Un niveau logique 0
correspondra à une impulsion de 100ms et un 1 à 200ms.
Le message codé en BCD contient toutes les informations horaires (le bit de
poids faible passe en premier):
Bit n° | Nom | Description |
0 | M | Début de la trame (toujours à 0) |
1 à 14 | Bits réservés | |
15 | R | Antenne (0=antenne normal , 1=antenne de réserve) |
16 | A1 | Si 0 : heure hiver (-1 heure durant le passage de 1 à 0) |
17,18 | Z1,Z2 | Fuseau horaire : 00=+0h , 01=+1h , 10=+2h , 11=+3h |
19 | A2 | Si 1 : annonce (1 heure à l'avance) qu'une seconde sera sautée |
20 | S | Début des informations temporelles (toujours à 1) |
21 à 27 | Minutes | |
28 | P1 | Bit de parité paire (bits 21 à 27) |
29 à 34 | Heure | |
35 | P2 | Bit de parité paire (bits 29 à 34) |
36 à 41 | Jour | |
42 à 44 | Jour de la semaine (1=Lundi , ... , 7=Dimanche) | |
45 à 49 | Mois | |
50 à 57 | Année codé sur 2 chiffres | |
58 | P3 | Bit de parité paire (bits 36 à 57) |
59 | Ce bit n'est pas envoyé (pas d'impulsion) |
Le bit de parité paire est modifié de sorte que le nombre de bit à 1 soit
paire.
Exemple: voici 8 bits , un bit de parité paire -> 10110101 , x
Au total il y a 5 bits à 1. Il faudra donc mettre x à 1 pour que le nombre de
bits à 1 (bit de parité compris) soit paire. Au final il y aura donc 6 bits à
1, 6 est un nombre paire, donc c'est bon !
Voici un exemple :
Entre chaque front montant il y a un intervalle de 1 seconde. La synchronisation est assurée lors de la 59ème seconde. En effet, il n'y a pas d'impulsion émise lors de la 59ème seconde. On obtient donc entre les impulsions n°58 et n°0 (le numéro du bit correspond au numéro de la seconde) une durée de 2 secondes. C'est grâce à cette durée que l'on pourra identifier le début de la trame.
Schéma :
Brochage du module DCF77 (il peut différer selon les modèles) :
Conrad : | Selectronic : |
|
Explications :
L'alimentation se fait par 2 piles 1,5V (évite un régulateur).
La sortie Data est de type collecteur ouvert, une résistance de tirage est donc
placée (47kOhms). Cette sortie est directement reliée à la calculatrice par
le Bit0.
L'entrée de sélection CS devra être mise à la masse (elle n'est pas
présente sur tous les modules).
La partie logiciel ne prendra en compte que les bits 21 à 59. Le programme affichera alors constamment les informations horaires reçues. L'inconvénient de cette méthode est qu'il est fréquent de recevoir des informations erronées, elles seront traduites par des "?". L'avantage est que la programme est plus facile à écrire (la taille du programme est aussi moins importante).
Réalisation :
Pour connecter l'interface à la TI, vous pouvez prendre un jack mâle (attention la base de ceux du commerce est trop grande) ou femelle. Un jack mono est amplement suffisant.
Vous pouvez télécharger gratuitement le programme Atome77 pour :
TI-82 * | TI-83 * | TI-83 Plus v1.01 | TI-85 * | TI-86 v1.03 |
* : si vous désirez une de ces version contactez-moi
Pour tester le programme sans l'interface voici un émulateur DCF77 (câble parallèle requis) : EmuDCF77 v1.03
Faites-moi part de tous les bugs.
Si vous avez du mal à trouver le module, vous pouvez toujours le commander par correspondance chez Selectronic ou Conrad.