Génération signal basse fréquence pilotage horloge

  • Auteur de la discussion tronix
  • Date de début
T

tronix

Compagnon
Bonsoir,

c'est un petit jeu avec JCS, à qui je tire mon chapeau pour ses différents posts, y compris pour son post d'initiation à l'Arduino. Le but n'est pas de contrer son post, mais de montrer une approche différente.

Arduino, très bien pour faire pas mal de choses, mais si c'est juste pour générer un signal basse fréquence stable pour piloter une horloge, il y a plus simple. :wink:

Je redonne le schéma, il reste à ajouter un bouton pour la mise à l'heure, plus ce qui pourra apparaitre nécessaire.

Comme je connais bien Microchip, même si je n'utilise quasiment que des processeurs 32 bits qui tournent à 80MHZ (en attendant les nouveaux avec encore plus de mémoire et tournant à 200MHz), il m'arrive ponctuellement d'utiliser les PIC12 en boîtier SO8 voire même les PIC10 en minuscule boîtier SOT23, bien adaptés ici.

Il est évident que l'on peut porter le schéma et le code sur d'autres familles telles que l'Arduino, c'est un peu le but de ce post (et pas pousser vers Microchip, je n'ai pas d'intérêt chez eux). Je ne veux pas polluer le post de JCS ni sembler faire une critique, mais la communication entre les 2 reste possible.

Le schéma

ScreenShot103.png



Le processeur existe en DIP8, même si la référence est celle d'un SO8. Il y a plein de variantes, peu importe ici, rien de spécifique, c'est juste celle que j'ai dans mes tiroirs


Le programme, en C

Voir la pièce jointe Horloge.c


Les macros et constantes

ScreenShot011.png


Le programme principal

ScreenShot010.png



La fonction d'interruption, partie utile du programme. Quelques lignes, et encore, on sort des signaux en plus.

ScreenShot008.png


L'initialisation du timer

ScreenShot005.png


Et c'est tout !


Le plus dur est d'initialiser le timer et le processeur, il faut se plonger dans la doc du processeur utilisé.

Il manque aussi quelques lignes pour gérer un bouton et faire la mise à l'heure. A suivre...

Je ferai aussi la version avec le PIC10, qui sera soudé directement au dos de l'oscillateur, pour obtenir un montage minimaliste et minuscule.

Je vais ajouter plus tard des photos et des relevés à l'analyseur et à l'oscilloscope, ainsi qu'une vérification de la stabilité.

Composants :

http://www.mouser.fr/ProductDetail/Fox/FOX924B-10000/?qs=sGAEpiMZZMt8zWNA7msRCr8qH5p3IKFlxLulqT%2bPqVs=
http://www.mouser.fr/Search/Refine.aspx?Keyword=pic12f1840
http://www.mouser.fr/Semiconductors...trollers/_/N-6hpef?Keyword=pic10lf320&FS=True

Coût pour avoir un signal de référence à la fréquence et forme voulues : environ 4€. Précision et stabilité prévues : 1.5 à 2.5ppm (1 minute / an).

Avec un peu d'habilité, cela peut se câbler sur un petit bout de cuivre pastillé ou même en l'air.
 
Dernière édition:
J

JCS

Compagnon
Salut Tronix,

Je salue ton excellente initiative ! Elle est profitable à tous.
Je vais la suivre avec beaucoup d'intérêt. Ta solution est plus "catholique" et semble effectivement plus simple, à priori.
Toutefois, elle demande de sérieuses connaissances en électronique et un matériel conséquent.

La solution que je propose s'adresse à un novice qui ne dispose pas d'un labo d'électronicien, mais juste un fer à souder
et 5 cm de soudure pour faire 2 soudures pour modifier un mouvement de pendule de cuisine à quartz en base de temps précise !

Cette solution a 2 objectifs :
- L'initiation à L'Arduino en entrant directement dans le vif en réalisant un montage très simple.
- La réalisation d'une horloge mère fiable et précise. Sur des forums spécialisés, il existe des quantités de posts fantaisistes et
prétentieux sur le sujet, beaucoup de baratin théorique mais, me semble-t-il, rien de concret et d'éprouvé.

@+

JC
 
T

tronix

Compagnon
Nos deux posts sont en effet complémentaires. Le tien sera un excellent (je suppose...) tuto d'initiation à la programmation, avec un projet simple, même si on peut le faire autrement, mais l'arduino est une très bonne base pour faire des choses plus complexes, là où ce sera plus dur en prenant les composants nus.
La solution que je propose ne demande aucun matériel, en dehors du programmateur, mais un peu plus d'habilité pour souder 2 ou 3 composants. Je donnerai quelques infos sur l'outil de compilation et de programmation, sans trop m'étendre cependant, car je suis d'accord sur le fait qu'un débutant aura plutôt intérêt à se tourner vers l'Arduino. Mais la solution est portable sur les processeurs des Arduino.
Quant à la précision, je vois que tu doutes toujours ! De ce côté, je ne m'inquiète pas trop : je fais (relativement) confiance à la doc d'un composant destiné au marché professionnel, et elle est assez claire sur ce point.
 
D

DEN

Compagnon
On peut faire un générateur précis à basse fréquence avec un 4060 et un Quartz à 32768Hz,

on arrive à 2Hz en faisant la division complète, si on veut 1Hz alors il faut diviser encore par deux avec un 4013 par exemple ...

voir sur cette page par exemple sur la fabrication d'une horloge avec tube "Nixie"

http://www.mcamafia.de/nixie/ncp_en/ncp.htm
 
T

tronix

Compagnon
Oui, mais on en revient toujours au même, le quartz aura une tolérance déjà moins bonne, et surtout, l'oscillateur doit être monté avec les condensateurs parfaitement adaptés, en tenant compte des capas parasites et des caractéristiques précises du quartz. Comme cela se joue à quelques pF, il faut mettre un condensateur ajustable...et régler le machin. Sans moyen de mesure, on tourne en rond. Avec un oscillateur précis, on évite ces problèmes. Et avec le processeur, on sort la forme de signal qui convient.
 
S

stanloc

Compagnon
De mon point de vue avec un affichage à aiguilles Brillié ou autres, la précision de n'importe quel quartz sera toujours suffisante car il est rare de lire l'heure en s'occupant de la trotteuse sur ce genre de garde-temps.
Stan
 
D

DEN

Compagnon
Bein, j'ai raté un truc alors, le PIC fonctionne sur un Quartz, non ? Ou c'est le fait de se trouver à une fréquence plus élevée qui le rend plus précis à la division ?
En effet il faut utiliser un condensateur ajustable, pour caler l'horloge, quoique ça influence très peu la fréquence (vérifié sur oscilloscope).
On peut mettre utiliser un compteur, pour à la fin du comptage se caler sur le temps reçu sur signal dcf77, ou utiliser le DCF77 directement comme base de temps.
 
T

tronix

Compagnon
Non, mais un quartz a une tolérance initiale et une stabilité en température, auxquelles il faut ajouter le décalage introduit par la réalisation de l'oscillateur. Sans réglage ou sélection précise des composants, la fréquence de base n'est pas très bonne, l'erreur peut être de 50 à 100ppm, voire plus. Evidemment, c'est déjà largement mieux que beaucoup d'horloges ou de montres mécaniques.
En prenant un oscillateur intégré, on est déjà nettement meilleur, classiquement entre 10 et 20ppm. Et si on choisit un oscillateur plus précis et plus stable (référence donnée plus haut), on a directement, sans aucun réglage, autour de 2ppm. Reste à faire une division du rapport voulu, sans se tromper ni se faire piéger par la doc, et on a la même précision en sortie, sans aucun réglage ni appareil de mesure.

Là, de base, avec un oscillateur ordinaire de 8MHz, j'ai une fréquence intermédiaire à 500.0017 Hz (it 1000Hz), soit une erreur de 4 ppm, c'est l'erreur que j'ai au départ à l'oscillateur (8.000027 MHz théoriquement, je mesure 8.000045 MHz). Mais mon moyen de mesure a lui-même une précision, de cet ordre de grandeur, il faut donc que je récupère un fréquencemètre plus précis ou que je mesure l'erreur du fréquencemètre lui-même.
 
T

tronix

Compagnon
Un oscilloscope est totalement insuffisant pour mesurer la fréquence d'oscillation. On peut caractériser un quartz à l'analyseur de spectre, et on voit d'abord la fréquence du mode d'oscillation série, puis celle du mode parallèle. En chargeant en parallèle le quartz avec un condensateur (ou avec deux avec un point milieu à la masse, comme sur la plupart des schémas), on voit que l'on peut faire baisser un peu la fréquence du mode parallèle. Un quartz prévu pour être utilisé en mode parallèle est spécifié avec une capacité de charge, pour avoir la fréquence annoncée. Et si on fait osciller un quartz en mode parallèle alors que sa fréquence (taille) a été calculée pour le mode série, l'erreur est bien plus grande, sans être catastrophique dans la plupart des cas. Quand vous achetez un quartz à l'épicerie du coin, demandez au vendeur si sa fréquence est donnée pour le mode série ou parallèle, et sa capacité de charge nécessaire. J'imagine déjà la tête du vendeur !!! :-D Pour avoir d'ailleurs fait moi-même la même pendant longtemps !
C'est bien pour cela qu'un quartz seul ne donne pas forcément une précision suffisante si on le câble n'importe comment. D'où l'intérêt d'utiliser un oscillateur complet dont les caractéristiques sont mieux maîtrisées, et qui peut être compensé en température et en tension. Un oscillateur réalisé en discret, avec un quartz, un condensateur et un condensateur ajustable, pourra être ajusté, mais sa stabilité pourra être médiocre.
 
D

DEN

Compagnon
Ok, c'est plein de bon sens ! Merci pour ces éclaircissements !
Je compte me faire un tachymètre à base de PIC18F4550, je peux m'attendre alors à une précision hors pair !
 
S

stanloc

Compagnon
@tronix ; tu n'exagères pas un peu sur les qualificatifs pour argumenter en faveur de tes choix ??????
C'est le B A BA des métiers que d'utiliser le bon produit pour le bon emploi sinon le résultat pourra être autre que prévu.
Stan
 
T

tronix

Compagnon
Non, c'est JCS qui veut de la précision, et qui émet des doutes sur celle des montages à quartz classiques, en fonction aussi de son expérience. Quand on creuse un peu et que l'on fait les mesures, on comprend mieux pourquoi un montage à quartz standard fait sans précautions n'aura pas une précision aussi grande que le seul mot "quartz" laisse espérer. Il y a alors deux choix, celui de JCS de s'appuyer sur un mouvement d'horloge, et celui que je propose : simplement prendre un (bon) oscillateur. Mais je n'ai rien à vendre, chacun fait ce qu'il veut ! :wink:
 
S

stanloc

Compagnon
La question qui se pose est : est ce qu'il y a encore des fournisseurs de quartz nus avec un descriptif suffisamment précis pour bien choisir ce que l'on veut ? Moi je choisirais alors un quartz dont la résistance série est la plus faible possible, un F/delta F le plus grand possible et le ferais osciller sur son fondamental dans un montage série. Si ces fournisseurs n'existent plus (Quartz Electronique de mon temps) il est clair qu'il faut choisir un oscillateur tout fait.
Stan
 
T

tronix

Compagnon
Chez les fournisseurs pros, il y a encore des quartz avec des fiches techniques.
La plupart des composants nécessitant un quartz et ayant déjà les entrées pour réaliser l'oscillateur sans composant supplémentaire sont sur un schéma en oscillation sur le mode parallèle. Cas des RTC et des processeurs en particulier.
Au prix des oscillateurs, quand on trouve la bonne fréquence, il ne faut pas hésiter. On est tranquille, pas de problème de démarrage d'oscillation, et fréquence plus précise de base.
Il existe même peut-être des oscillateurs intégrés en 32,768kHz. A voir.

Il suffisait de chercher !
http://www.mouser.fr/ProductDetail/AVX/KR3225Y32768EAW30TAA/?qs=sGAEpiMZZMtpQ9m7utombAw2qVF3CF3w
http://www.mouser.fr/ProductDetail/AVX/KC3215A32768C33AAE00/?qs=sGAEpiMZZMtpQ9m7utombMoBXdrfAD/u

Il y en a d'autres. Le premier composant peut être une alternative intéressante au mouvement d'horloge pour les utilisateurs d'Arduino. C'est un module RTC tout intégré avec surtout un oscillateur très stable, ce qui n'est pas le cas des modules RTC classiques, pour les raisons déjà évoquées.
 
T

tronix

Compagnon
Quelque chose m'avait semblé curieux dans l'initialisation du timer, et dans la valeur à programmer, ce n'était pas comme d'habitude. En effet, je m'étais trompé dans un registre et avait corrigé pour avoir le bon résultat (ne jamais faire comme cela...), mais ce n'était pas propre et surtout dépendait du nombre d'instructions dans l'interruption. En reprenant la doc et le code, j'ai trouvé le problème et tout corrigé. Cette fois, c'est carré, prévisible et cohérent, et le fichier est aussi compilable pour le minuscule PIC10 (il faut que je vérifie le fonctionnement, mais cela compile).
Il faut aussi que j'achète un oscillateur plus stable, avant de passer un proto et quelques composants à JCS pour avoir son verdict :wink:
 
J

JCS

Compagnon
Salut Tronix,

Ton projet est excellent, mais il n'est pas à la portée, à mon avis, d'un non électronicien qui dispose pas d'un minimum de matériel et d'expérience.

Il me semble que la solution que je propose, même si elle est moins "élégante" que la tienne à le grand avantage d'être à la portée du plus grand nombre
et d'être une initiation aux micro-contrôleurs.

J'ai réalisé ma première horloge mère avec des circuits intégrés il y a une vingtaine d'années.
Puis je me suis mis au PIC 16F84 que je programmais en BASIC. Mais il fallait faire des circuits imprimés, souder, mettre au point, recommencer,etc...

L'Arduino a un très gros avantage pour un amateur en électronique comme moi, c'est que c'est comme un Meccano, même pas besoin de souder !
En plus, sur le Net il y a une énorme communauté d'entre-aide.

Ta solution est idéale pour une réalisation en série. Mais le problème est d'arriver à un coût de commercialisation très bas et ce n'est pas évident
et il y a déjà de la concurrence sur le marché.

Par contre il y a quelque chose q'un spécialiste comme toi pourrait peut-être faire, c'est d'asservir le balancier d'une horloge mère. J'ai réalisé un montage
qui fonctionne parfaitement bien, sauf que la pile ne tiens pas longtemps.

J'ai aussi d'autres idées plus intéressantes. Si cela t'intéresse, je peux en parler et on pourrait ouvrir une nouvelle discussion du genre :
l'électronique au service de l'horlogerie".

@+

JC.
 
T

tronix

Compagnon
Bonsoir,

en effet, on peut ouvrir une discussion. Mais comme je ne suis pas horloger, à toi l'honneur !

Tu parles d'asservir le balancier : tu peux m'expliquer un peu ?
 
V

vax

Modérateur
Super sujet qui me donne l'envie d'aller lire celui de JCS (j'avais juste survolé le titre sans rentrer dans le post...)

Deux autres approches à votre problématique :

Un récepteur GPS qui va vous donner l'heure à quelques centième de seconde près.

Vous faire votre propre horloge atomique ! (je vous poserait des photo demain)

4 sources au césium en corrélation et on arrive à moins d'une micro seconde de dérive sur 100 jours... !
Bon d'accord c'est plus gros que deux machines à laver !!!!!

Merci pour le partage d'idée, avoir deux solutions en parallèle c'est vraiment super intéressant.
 
T

tronix

Compagnon
Tous les GPS donnent (normalement) l'heure avec une résolution de la ms, mais la transmission de la donnée, souvent en série, fait que la précision est moins élevée. Avec un port série à 9600 bauds, il faut environ 1ms pour transmettre un octet, et un message d'heure contient plusieurs octets. Avec toutes les couches soft et hard, il est illusoire d'espérer s'appuyer là-dessus. Certains (et rares) GPS fournissent en plus un pulse à chaque seconde (pps). J'ai un module de ce type qui va justement servir à synchroniser tout un système de relais radio séparés de plusieurs dizaines de km afin que leur modulation numérique soit parfaitement synchrone, pour faciliter le basculement d'un mobile d'un relais à l'autre avec une resynchronisation plus rapide. Je n'ai plus le chiffre en tête, mais la précision est redoutable, je vais voir si la stabilité du petit montage peut être évaluée.
 
V

vax

Modérateur
@Tronix : je parlais de se faire un récepteur GPS dédier à la captation du top horaire GPS qui de mémoire est bien supérieur à 1ms en précision.

@ JCS : j'allais le dire ! (:wink:)
 
J

JCS

Compagnon
Il y a aussi le 50 Hz du réseau EDF, qui est une excellente solution si notre montage est alimenté à partir du 220 V.

Dans les années 60, Calor fabriquait des pendules 220 V avec un petit moteur synchrone qui étaient d'une précision redoutable.

@+

JC.
 
T

tronix

Compagnon
Le module GPS que j'utilise indique : pps accuracy +/- 11ns !!! Pour l'exploiter au mieux, un processeur n'est d'ailleurs pas la meilleure solution. Tout ça pour un prix très faible, autant dire que le DCF77 est à ranger au musée, je n'ai même pas envie de m'y pencher dessus. Et je pense être un peu loin pour une bonne précision et stabilité, fortement dépendantes de la propagation des ondes dans cette bande de fréquence (échos et erreurs de phase).
 
E

erolhc

Guest
Bonjour

Avant de ranger quoique ce soit au musée ...

1 - Ton horloge super méga précise au GPS prendra autant de retard que de temps depuis qu'elle sera installée vu que le signal ne passe pas dans mon sous sol alors que le DCF passe sans soucis.

2 - Le signal GPS dépend uniquement du bon vouloir des militaires US, le DCF de civils EU
 
S

stanloc

Compagnon
La précision des tops horaires DCF est en moyenne de + ou - 1 seconde sur 1 million d'années. J'espère que cela peut vous suffire.
Stan
 
T

tronix

Compagnon
Pour la réception du gps, c'est simple, il suffit de mettre une antenne déportée, c'est ce qui est fait pour toute application industrielle en bâtiment. Pour le DCF77, quand on est loin, les solutions ne sont pas aussi simples. Ensuite, on parlait gps juste pour vérifier la dérive d'un système simple et autonome. Donc, précision et stabilité à court terme. La dérive globale peut être très faible, avec de petites variations sur le court terme, comme c'est le cas pour le 50Hz EdF. Chaque système a bien sûr ses avantages et inconvénients. Encore une fois, je ne vends rien, on donne avec JCS des pistes (différentes) et un avis, cela s'arrête là. Chacun fait ce qu'il veut !
 
V

vax

Modérateur
stanloc a dit:
La précision des tops horaires DCF est en moyenne de + ou - 1 seconde sur 1 million d'années. J'espère que cela peut vous suffire.
Stan



Petit rappel pour ceux qui ne se sont pas penché sur le problème de la précision du temps : "Ce truc est une drogue" soit vous en avez besoin et vous allez au plus simple, soit ça devient votre plaisir et c'est sans limites. Alors même si je propose des trucs je comprend tout à fait les deux démarches qui sont menées en ce moment.

Vive le T.UC. et les secondes intercalaires !
 
J

JCS

Compagnon
Je ne suis pas un spécialiste en la matière mais il me semble que tous ces systèmes sont constamment remis à l'heure et donc que leur
dérive est purement théorique.

Entre l'ultra précision et ceux qui croient qu'avec un quartz on a une bonne précision horlogère, il y a un monde...

Quel est l'objectif ? Si c'est pour piloter une réceptrice (fille pour les novices, qui devraient alors dire orpheline),
il faudra de toutes les façons la remettre à l'heure tous les six mois, au changement d'heure.

Ici 1 montage curieux trouvé sur le web :

schemas.jpg


Je ne comprends pas comment l'impulsion peut s'inverser alors que la bobine est reliée à la masse.
Déjà on voit que le gars est resté dans la théorie car s'il avait eu des grosses réceptrices entre les mains, il saurait que ces minuteries
ont une certaine inertie mécanique et je vois mal une avance rapide à 1/2 seconde.

@+

JC.
 
S

stanloc

Compagnon
@JCS ; ne confond pas la petite seconde que l'on ajoute ou retire au temps universel de temps en temps avec une dérive ou une imprécision des horloges atomiques. Je signale d'ailleurs que le temps universel est définit en moyennant l'heure donnée par, de mémoire, 250 horloges atomiques. Ce réajustement tient au fait que la terre ne tourne pas régulièrement parce que sa vitesse de rotation diminue.
Stan qui vous invite à mettre vos montres à l'heure :-D :-D
http://time.gov/HTML5/
 
Dernière édition par un modérateur:
J

JCS

Compagnon
Merci Stan pour le lien.
C'est curieux, il y a 14 secondes d'écart avec le site de l'horloge parlante : http://www.horlogeparlante.com/

Je ne confonds pas avec la petite seconde ajoutée en fin d'année, je crois, pour compenser l'imprécision de rotation de notre bonne vieille terre.
Je parle d'un réajustement de fréquence correcteur qui permet de rattraper la dérive détectée de façon à la rendre inexistante.

J'ai lu quelque par qu'EDF s'arrangeait pour qu'il y ait toujours le même nombre d'oscillations 50 Hz en 24 H.
Cela pourrait expliquer la précision quasi absolue des pendules Calor sur secteur, hormis les coupures de courant.

@+

JC.
 

Sujets similaires

Miqs
Réponses
13
Affichages
719
chabercha
chabercha
laurenttanguy
Réponses
0
Affichages
439
laurenttanguy
laurenttanguy
L
Réponses
11
Affichages
1 689
lecoyote
L
K
Réponses
18
Affichages
5 880
kikivalsky
K
Satamax
Réponses
17
Affichages
3 046
midodiy
midodiy
D
Réponses
0
Affichages
203
dodochef
D
T
Réponses
2
Affichages
396
pascalp
P
Haut