prec home dir suiv

CHOUR - Régleur de montres mécaniques / chronocomparateur d'atelier RM4

img

Appareil : Chronocomparateur d'atelier (régleur de montres mécaniques) - En cours de réalisation !
Date : 2021
Type : PC-RM4
Marque : Chour
Dernière version logicielle : V2.0
Principaux constituants : STM32F407, afficheur graphique tactile, amplificateur, circuiterie logique pour gestion horloge

Le logiciel est accessibles sur la page de téléchargement.

English version : img

Présentation

Ce site présente déjà deux chronocomparateurs d'atelier de faible coût que sont PC-RM1 et PC-RM3. Les deux sont à base d'Arduino et peuvent être réalisés pour environ 30 à 40€ (si vous souhaitez en savoir plus sur le réglage des montres, consultez cette page).

Les principales limites d'une réalisation à base d'Arduino sont les suivantes :

La conception de PC-RM4 permet d'éliminer ces inconvénients tout en conservant un coût de réalisation proche de PC-RM1 et PC-RM3 et une taille réduite permettant de l'utiliser facilement dans un atelier de réparation (en 2022, on est aux alentours 40€ pour la carte de développement et son écran). Comptez une vingtaine d'euros pour le reste des composants).

Mais surtout, sa résolution est de l'ordre de 25ns (elle dépend de la fréquence choisie pour la base de temps, la fréquence retenue ici est de 40MHz) ce qui autorise une précision sur 24heure de l'ordre de 0,02s à la précision de la base de temps près (on peut tabler sur 0,01%).

Cette précision est obtenue grâce à l'utilisation d'une logique de mesure indépendante du processeur (elle n'est donc pas perturbée par les traitements du processeur) et l'utilisation de 2 compteurs 32 bits disponibles sur le microcontrolleur qui est ici un STM32F04.

Enfin, la puissance du processeur permet de proposer d'autres fonction évoluées en plus de la mesure de la précision de la montre que l'on règle.

Les fonctions proposées par PC-RM4 sont les suivantes :

Avant de passer à la réalisation, voici le mode d'emploi de l'appareil.

Utilisation du chronocomparateur

Avertissement : certaines photos d'écran ont été prises avec l'écran 3,2", définition 320x240, d'autres avec l'écran 3,5", définition 480x320. Evidemment, ces dernières sont plus jolies mais il ne faut pas se laisser impressionner. La version 320x240 est beaucoup plus belle dans la réalité que sur les photos.

Le chronocomparateur

La version proposée ici dispose :

Fonctionnalités

Les principales fonctionnalités sont :

Ces différentes fonctionnalités sont détaillées ci-après.

Aspects ergonomiques

Les différentes fonctionnalités sont proposées à travers des affichages et des saisies par boutons tactiles qui ont des caractéristiques communes :

Première mise sous tension

Lors de la première mise sous tension, l'appareil affiche un écran de calibrage du TouchScreen. On sort de cet écran lorsque le calibrage est réussi.

Pour calibrer le TouchScreen, il faut appuyer le stylet sur les croix qui sont affichées. Si le calibrage réussi, on passe directement à l'écran d'accueil. Sinon, le programme redemande une calibration.

Les données de calibrages sont sauvegardée dans une mémoire alimentée par pile (modèle CR1220, sa durée de vie est de plusieurs années).

image

Ecran d'accueil

Il est affiché pendant environ 2 secondes. Si l'on appuie deux fois sur cet écran avec le stylet durant son affichage, l'écran qui suit sera celui du calibrage du TouchScreen. Sinon, on passe à l'écran de sélection du battement.

L'écran d'accueil affiche la version du programme et la configuration matérielle pour lequel il est prévu (carte de développement, contrôleur écran, contrôleur TouchScreen).

Sélection d'un battement et autre options

image

Cet écran affiche des boutons indiquant les battements possibles pour la montre à régler. La valeur sélectionnée par défaut est indiquée par un bouton avec un fond rouge (celle du choix précédent ou la première valeur disponible s'il s'agit de la première mise sous tension). Il donne également accès à l'écran de mesure des paramètres temporels de la montre ("Mesure") et à un écran de paramétrage du chronocomparateur ("Param.").

Pour choisir un battement, il suffit d'appuyer sur un des boutons affiché. La prise en compte de l'appui est indiqué par un clignotement du bouton qui reste ensuite en rouge.

A noter que le dernier battement proposé est paramétrable (voir bouton "Param." et écran de paramétrage). Il est signalé sur fond jaune lorsqu'il n'est pas sélectionné.

La valeur sélectionnée est conservée en mémoire sauvegardée.

Le bouton "Simulation" permet de faire fonctionner le chronocomparateur avec un simulateur de signal interne. Les mesures sont alors effectuées sur la base de ce simulateur. L'option est inactive par défaut.

Fonctionnement en mode simulation

En mode simulation, le chronocomparateur génère le signal d'une montre qui a un décalage de {+100µs, -110µs} autour de sa demi-période avec des petites variations aléatoires de 10µs de part et d'autre de la valeur nominale.

Ces petites variation entraînent une différence entre le Tic et le Tac d'environ 180µs et une différence sur la période qui peut varier entre un peu moins de 10µs jusqu'à près de 2ms selon le battement sélectionné. La raison de cette différence importante vient d'un effet de bord de l'implémentation. En simulation, le temps pour la période et la demi-période d'un battement est fourni en millisecondes (alors qu'en mesure réelle, les temps sont calculés en nanoseondes). Considérons un battement de 19800 coups par heure. Le reste de la division de 3600 par 19800, 0,181818181... La partie entière de la demi-période du battement est donc de 181 en milliseconde mais vaut 181181181 en ns. On a donc une différence de 181181ns ce qui n'est pas négligeable rapporté à 24h00. Cet effet de bord a été jugé intéressant car il permet de voir comment l'affichage varie lorsqu'une montre est très déréglée.

En fonction du paramétrage (voir "Paramétrage"), il est possible de changer le sens du décalage ce qui provoque, soit une avance (le signal va se déplacer vers le haut de l'écran), soit un retard (le signal va se déplacer vers le bas de l'écran).

Paramétrage

Quelques paramètres du chronocomparateur peuvent être modifiés via l'écran de paramétrage :

Pour modifier un paramètre, il suffit d'appuyer dessus avec le stylet.

Deux options de sorties sont disponibles : "Valid.", les valeurs saisies sont validées et enregistrées en mémoire sauvegardée, "Annul.", les valeurs saisies sont ignorées, les valeurs d'origine ne sont pas modifiées.

Pour les valeurs nécessitant une saisie numérique, le programme affiche un clavier basique comportant un afficheur qui affiche la valeur courante du paramètre. Le clavier comporte :

image image

Langue d'utilisation : la langue par défaut est le français. L'anglais est également implémenté. Il est très simple d'ajouter une autre langue (les textes sont regroupés dans un endroit unique) mais il faut recompiler le programme.

image image

Calcul de l'amplitude

Le calcul de l'amplitude se fait en mesurant le temps entre la première et la troisième impulsion d'un Tic ou d'un Tac en considérant qu'il y a une deuxième impulsion entre les deux (voir Scope pour plus de précisions).

Il arrive assez souvent que la deuxième impulsion soit noyée dans la première ce qui empêche la détection de la 3ème. Pour cette raison, deux modes de calcul sont proposés :

Les résultats du calcul de l'amplitude peuvent présenter une légère différence entre les deux modes sans que l'on puisse déterminer avec certitude celui qui donne le résultat le plus précis. Considérons une représentation du signal d'une impulsion. S'il peut paraitre assez différent de ceux que l'on trouve dans les explications habituelles, il est assez représentatif de ce que l'on peut voir sur un oscilloscope. En fait, sa forme réelle dépend de nombreux facteurs comme les caractéristiques du capteur, de l'amplification qui suit, etc.

img

Du point de vue théorique, le mode 3 impulsions devrait être plus précis car il se base sur des fronts et pas sur des maximum (T1 et T3 en rouge sur le dessin correspondent au mode 3 impulsions). En pratique, pour arriver à ce résultat, il faudra traiter le signal (en particulier, pour détecter T2 et T3) ce qui introduit une distorsion (voulue) et un décalage des signaux, sans compter la détermination d'un seuil à partir duquel on considère que le front est à prendre en compte et la fréquence d'échantillonnage de l'appareil de mesure.

Pour le mode 2 impulsions, T1 est détecté sur front. Cette approche est plus délicate pour T3 (rappelez vous que ce mode est utilisé sur un signal bruité, il n'est pas toujours possible de déterminer le front qui démarre T3).

Du coup, on a un démarrage de la mesure temporelle sur un front (celui de T1) et une fin sur un maximum (celui de T3). Par chance, ce maximum est souvent le front de T3 ou en est très proche mais on a potentiellement un petit décalage. Ce décalage augmente la différence entre T3 et T1 et diminue donc la valeur de l'amplitude ce qu'il faut avoir en tête.

De toute façon, quelle que soit la méthode employée, la précision de la mesure de l'amplitude est loin d'être parfaite, quelle que soit la qualité de l'appareil. En effet :

Pour mesurer la conséquence de cette imprécision, voici un petit exemple numérique du calcul de l'amplitude sachant que la formule est Amplitude = (3600 * AngleDeLevée)/(T*Π*n) ou T =|T1-T3| exprimé en secondes, Π est le nombre Pi et n, le nombre de battements par heure. Pour cet exemple, on suppose que la montre bat 18000 coups par heure et que son angle de levée est de 51°.

Avec 120µs, on peut déjà avoir des doutes sur le fait que le mouvement est dans sa meilleure forme. En pratique, si vous observez le battement de beaucoup de montres, vous constaterez que le déclenchement de T3 peut varier bien au delà des 120µs par rapport au meilleurs T3-T1 avec comme conséquence, une moyenne de l'amplitude qui aura tendance à être pessimiste. Il faut juste avoir ce point en tête lorsqu'on interprète la valeur affichée par le chronocomparateur.

Peut-être que dans une prochaine version du logiciel, j'afficherai la courbe de dispersion de l'amplitude. Après tout, il est intéressant de savoir qu'une montre arrive à une amplitude jugée correcte une partie du temps même si en moyenne, elle est inférieure à cette amplitude jugée correcte. Une autre montre qui n'arrive jamais à cette amplitude correcte pourra avoir la même valeur moyenne d'amplitude. Mais les conséquences ne sont pas les mêmes.

Ecran de mesure des paramètres temporels de la montre

image

Cet écran affiche :

Les commandes disponibles sont :

Quelques vues de mesures. La première série de 3 photos provient d'un mouvement Lorsa 237B qui a besoin d'une sérieuse révision. La première photo représente la mesure alors que le mouvement est horizonal. La courbe est caractéristique d'une amplitude insuffisante. Lors de la seconde mesure, le mouvement est vertical et les différences de temps entre Tic et Tac deviennent trop importants pour que l'affichage soit lisible. Il faut passer à une résolution de 1000µs pour qu'il soit de nouveau interprétable (3ème photo). Pour information, l'amplitude est de 150° !.

image image image

La série de deux photos suivantes provient d'un mouvement chinois neuf 2813 (automatique et date) qui coutait environ 15€ en 2019. Pour la première photo, le mouvement est horizontal. On note une petite irrégularité périodique qui doit pouvoir se régler par un simple nettoyage dans le meilleurs des cas. Pour la seconde photo, la mouvement est vertical. La précision s'améliore légèrement mais on retrouve le défaut cité précédemment. Pour information, l'amplitude est de 272°.

image image

Indicateur de synchronisation

Un indicateur de synchronisation comportant la lettre "S" est présent en bas à droite de l'écran de mesure temporelle. Cet indicateur est de couleur verte si l'appareil a réussi à se synchroniser avec la montre, orange s'il a réussi à se synchroniser mais qu'il perd des signaux de temps en temps, ou rouge lorsqu'il n'est pas synchronisé. La synchronisation se déroule de la façon suivante :

Fonction scope

image

Cet écran affiche :

Note sur la synchronisation

image

Pour effectuer ses mesures, le chronocomparateur a besoin de détecter les premiers fronts des signaux générés par les tic ou les tac. Lorsque c'est le cas, l'appareil est correctement synchronisé.

Comme on le voit sur la figure ci-avant, le signal est composé d'une ligne de très faible amplitude (encadrée par les deux lignes en bleu) et de pics à interval périodique.

Pour détecter le premier front, le déclenchement de la synchronisation doit se faire pour une valeur supérieure à la ligne de faible amplitude. Si le seuil de déclenchement se fait à une valeur inférieure, l'appareil ne pourra pas se synchroniser.

La ligne de faible amplitude est un bruit plus ou moins aléatoire qui est produit par tout élément électronique. Du bruit extérieur peut s'ajouter à ce bruit interne. Par exemple, les éclairages à LED ou d'autres équipements électriques peuvent générer du bruit qui sera capté par les éléments conducteurs qui composent l'appareil, par exemple, son câble d'alimentation ou le câble qui relie le capteur au chronocomparateur.

Si le bruit est trop important, il peut noyer le signal utile. Dans ce cas, toute synchronisation est impossible. Il faut en trouver la cause et l'éliminer (par exemple, parfois, il suffit d'éteindre un éclairage à LED trop proche).

La fonction scope visualise ce bruit comme le reste du signal et permet de détecter quelque chose d'anormal.

Note sur les filtres et l'échantillonnage

Le signal affiché provient de mesures qui sont faites à intervalle de temps régulier, comme sur un oscilloscope numérique. Cela signifie que certains phénomènes peuvent ne pas apparaitre si leur durée est inférieure à la période d'échantillonnage.

Supposons que l'échantillonnage soit de 50µs. Cela signifie que l'appareil prend une mesure toutes les 50µs. Entre deux mesures, les éventuels signaux qui pourraient être présents ne sont tout simplement pas pris en compte.

Si un signal a une durée de plus de 50µs, il apparaitra, parfois sous la forme d'un simple trait.

Dans une montre, il est peu probable que des signaux aient une durée inférieure à 50µS. Les ordres de grandeurs sont plutôt de l'ordre de la milliseconde. Toutefois, cette durée de 50µs varie selon le zoom que l'on utilise. Si on veut visualiser le signal sur une longue période (par exemple, 4 Tic ou Tac), le signal affichée représentera une durée de 800ms pour une montre qui bat 18000 coups par heure. Sur un écran de 360 pixels de large, chaque pixel représentera donc 2ms ce qui arrive dans les ordres de grandeurs des signaux de faibles durées sur une montre. Il y a donc plus de risques de manquer certains signaux.

On pourrait sur-échantillonner mais à un moment, il faudra bien réduire l'ensemble des mesures pour qu'elles soient affichables sur un écran d'une définition donnée. Cette réduction devra se faire via un traitement qui est en fait un filtre. Et le choix d'un filtre a une conséquence sur la représentation graphique qui est donnée du signal et qui peut ne ne pas avoir grand chose à voir avec sa représentation réelle, telle qu'on pourrait la voir sur un oscilloscope analogique par exemple. Il faut donc dire quelques mots sur les filtres, leur intérêt et leurs limites.

image image image

Un filtre est un traitement qui a pour but de mettre en évidence certains phénomènes et/ou d'en éliminer d'autres. Le résultat de l'application d'un filtre sur le signal brut modifie donc la forme de ce signal, parfois de façon très importante. Prenons quelques exemples :

Il existe toute sortes d'algorithmes de filtres numériques. Mais évidemment, tous ne sont pas applicables à un domaine particulier.

Dans PC-RM4, 3 filtres sont proposés à la date de rédaction de cette page (06/2022). D'autres pourront être ajoutés par la suite s'ils s'avèrent utiles.

Le premier filtre (F0) est... l'absence de traitement (de filtre). Enfin, pas tout à fait puisqu'il faut bien mettre en forme le signal pour qu'il tienne sur l'écran. Et en pratique, l'amplificateur (analogique) a une fonction de filtre passe-bande qui élimine les signaux basse fréquence (typiquement, ceux introduits par le secteur) et les signaux haute fréquence qui n'ont rien à voir avec une montre. Néanmoins, on peut considérer que ce qui est affiché à l'écran est la représentation la plus fidèle de ce que la montre produit, à la fréquence d'échantillonnage près.

Le second filtre (F1) calcule une moyenne glissante de chaque point du signal et effectue également une symétrisation (pour un signal au dessus de la valeur moyenne, on ajoute sa contrepartie en dessous de la valeur moyenne, et inversement). Concrètement, le filtre a tendance à lisser l'enveloppe de la courbe du signal et donne les résultats visuels les plus intéressants. Il élimine également une grande partie du bruit de fond. Par contre, en conséquence, un signal de faible amplitude risquera de disparaitre de l'affichage.

Le troisième filtre (F2) applique d'abord le filtre F1 puis réalise le traitement suivant (l'explication ne considère que la partie du signal supérieure à sa valeur moyenne) :

Ce filtre est particulièrement efficace pour mettre en évidence T3 (et T2).

Le quatrième filtre (F3) ne visualise que la partie supérieure du signal par rapport à sa valeur moyenne (la partie inférieure est ramenée sur la partie supérieure). Il privilégie les fronts montants et leur applique une fonction d'atténuation sur leur partie descendante. Il n'est pas très intéressant visuellement mais peut aider à l'identification de T1 et surtout T3, et éventuellement, T2.

Connexion du chronocomparateur au capteur et réglages

Le chronocomparateur dispose de son propre amplificateur pour amplifier les signaux provenant d'un capteur piezo. Ce capteur doit être branché dans la prise jack prévue à cet effet.

Une LED clignote en fonction des battements reçus. Si elle ne clignote pas, cela signifie que l'amplification est insuffisante (ou que le capteur ne génère pas de signaux). Si elle clignote erratiquement, cela signifie que l'amplification est trop importante. Si elle clignote régulièrement, l'amplification est correctement réglée.

On règle le gain de l'amplification en agissant sur le potentiomètre en façade.

Que faire si...

L'indicateur de synchronisation est en rouge. La LED en façade est toujours allumée ou éteinte.

Vérifiez que vous avez branché le capteur et qu'une montre qui fonctionne se trouve dessus.

Vérifiez que le niveau de sensibilité est suffisant (réglage par potentiomètre).

Vérifiez que vous avez sélectionné le bon battement.

Vous pouvez vérifier la présence ou l'absence d'un signal de la façon suivante :

L'indicateur de synchronisation passe de rouge à vert en permanence. La LED en façade clignote de façon irrégulière.

Agissez sur la sensibilité en la diminuant ou en l'augmentant. Un niveau trop faible fait que certains signaux ne seront pas détectés ce qui fait perdre la synchronisation. Inversement, une sensibilité trop élevée peut introduire des signaux parasites issus du bruit de fond.

Vérifiez que vous avez sélectionné le bon battement. Si vous avez des doutes, essayez en plusieurs. Ayez en tête qu'il peut s'agir d'un battement non standard. La fonction de paramétrage vous permet d'entrer des battements non standards.

Dans l'écran de mesures temporelles, des points s'affichent n'importe-où sur l'écran.

Il est probable que le zoom est trop élevé. Appuyez sur la touche "-" jusqu'à ce que l'affichage présente une seule ligne ou deux lignes plus ou moins parallèles. Pour mémoire, le nombre affiché à gauche de l'écran dans la zone d'affichage graphique indique le nombre de µs par pixel sur l'écran. S'il affiche 1000µs, cela signifie qu'un pixel représente 1ms. S'il affiche 1µs, un pixel représente 1µs. Si au zoom minimum (100µs), les points continuent de s'afficher n'importe où sur l'écran, il est probable que vous avez une montre fortement déréglée avec un très grand écart entre le Tic et le Tac. Il faut d'abord procéder à une révision de la montre avant de tenter de régler sa marche.

Dans l'écran de mesures temporelles, la trace de la marche de la montre est presque verticale.

Vous avez une montre dont l'avance ou le retard est très élevé. Regardez la valeur "A/R Jour" pour vous en convaincre. A noter que la trace tendra d'autant plus vers la verticale que le zoom sera élevé.

La valeurs de l'amplitude semble élevée.

En zoom maximum, si le signal bouge beaucoup de droite à gauche et de gauche à droite, il est probable que la sensibilité n'est pas suffisante. Du coup, de temps en temps, la mesure se déclenche sur T1 et d'autres fois, sur T2 ou T3. Essayez d'augmenter la sensibilité.

Détail de la réalisation

Schéma bloc

Le schéma bloc se présente ainsi :

schéma bloc PC-RM4

Alimentation

Le chronocomparateur se connecte directement au secteur avec prise de terre. L'alimentation délivre une tension continue de 5V. Je n'ai pas mesuré l'intensité mais elle se situe très en deça d'un ampère.

Module de traitement

Le bloc "traitements, affichages, saisies" est une carte de développement à base de STM32F407 accompagnée de son écran LCD avec TouchScreen. Elle est alimentée en 5V continu (rouge sur le schéma) et délivre une tension de 3.3V (orange sur le schéma) qui est utilisée pour alimenter d'autres parties du montage.

Amplificateur

Il s'agit d'un montage adapté de celui proposé par le site Watchoscope. Il utilise un quadruple amplificateur opérationnel.

Logique signal

Ce bloc transforme le signal analogique en signal logique selon un automate qui est décrit plus loin. Il est composé d'une double bascules J/K et est alimenté en 3,3V (orange sur le schéma).

Vue globale

Le signal non amplifié provient typiquement d'un capteur piezo qui réagit au chocs générés par les Tic et Tac de la montre à régler. Ce signal est très faible en tension et doit être fortement amplifié pour être exploité.

On peut également brancher le capteur d'un appareil de mesure existant, comme celui associé au Vibrograph, au Bandelin pickoprint ou tout appareil équivalent.

Si on dispose d'un capteur déjà amplifié, on peut également le connecter à au chronocomparateur sur l'entrée prévue. Un contacteur permet de sélectionner, soit la sortie de l'amplificateur, soit le signal déjà amplifié comme source pour le bloc logique qui traite le signal.

Pour les signaux déjà amplifiés, on veillera à ce que la tension injectée ne dépasse pas 3.3V. Cette entrée est protégée contre les tensions négatives (jusqu'à -100V) et les tensions positives au delà de 3.3V.

Le bloc logique est commandé par le module de traitement et délivre deux signaux permettant de commander le comptage des timers du microcontrôleur.

Le signal analogique en sortie de l'atténuateur est également fourni au module de traitement pour la visualisation analogique du signal (fonction scope) et est disponible sur une prise en sortie de l'appareil pour, par exemple, le visualiser sur un oscilloscope ou le traiter sur un ordinateur via l'entrée "microphone".

Capteur

Le capteur standard utilise un module piezo

img

On peut mettre ce capteur dans un étau prévu pour la réparation des montres. Avec un peu d'huile de coude, il est également possible de réaliser une mécanique adaptée telle que celle proposée sur cette page.

img

Amplification du signal

Pour l'amplification du signal issu du capteur piezo, on peut reprendre le principe du schéma proposé sur le site de Watchoscope avec cependant quelques modifications. Je l'ai utilisé pour PC-RM1 et PC-RM3 et il donne entière satisfaction.

img
Cliquez sur l'image pour agrandir

Quelques explications :

Le reste des modifications est plutôt lié à des aspects fonctionnels ou conjoncturels.

img

img

Logique pour le comptage

Une horloge interne du processeur (42 à 84MHz) fournit une horloge AB1 qui va alimenter des compteurs 32 bits (TIM2 et TIM5) du microcontrôleur, les compteurs étant pilotés par une logique de commande réalisée autour de deux bascules J1 et J2 pilotée par le microcontrôleur. C'est la principale nouveauté de PC-RM4 par rapport aux précédents chronocomparateurs PC-RM1 et PC-RM3, la commande des compteurs est indépendante de l'activité du microcontrôleur.

Notations:

La sortie de la carte du capteur "H Bascule J" est reliée aux entrées CLK1/2 (CLK par la suite) des bascules.

La sortie de la carte du capteur "Analog µP" est reliée à l'entrée analogique PA4 du microcontrôleur.

Les entrée PRE1/2 sont inactive (reliée à H).

Le microcontrôleur génère un signal "Enable 1" (EN1) sur PA2 et "Enable 2 (EN2) sur PA3.

Les entrées CLR1/2 sont reliées au OU de EN1 et EN2. Donc, pour arrêter tout comptage, il faut positionner EN1 et EN2 à L.

L'entrée D1 est reliée à EN1. L'entrée D2 est reliée à EN2.

/Q1 et /Q2 sont reliés à PA0 et PA1 du microcontrôleur. Le changement d'état de /Q1 ou /Q2 génére une interruption sur le microcontrôleur et surtout, autorise le comptage en mode Gated sur le microcontrôleur.

Le schéma théorique du système de comptage est donné ci-dessous et est d'une grand simplicité:

Les entrées CLR1/2 sont reliées au OU de EN1 et EN2. Donc, pour arrêter tout comptage, il faut positionner EN1 et EN2 à L.

L'entrée D1 est reliée à EN1. L'entrée D2 est reliée à EN2.

/Q1 et /Q2 sont reliés à PA0 et PA1 du microcontrôleur. Le changement d'état de /Q1 ou /Q2 génére une interruption sur le microcontrôleur et surtout, autorise le comptage en mode Gated sur le microcontrôleur.

Le schéma théorique du système de comptage est donné ci-dessous et est d'une grand simplicité :

schema de la partie logique et comptage
Cliquez sur l'image pour agrandir

Récapitulatif du câblage :

Carte capteur Microcontrôleur
/Q1 (6)Compteur 1PA0TIM2
/Q2 (8)Compteur 2PA1TIM5
D1 (2)EN1PA2EN1
D2 (12)EN2PA3EN2
H Bascule JCLK1/2
Analog µPSignal analogiquePA4Entrée analogique

Le tableau ci-après donne les différents états du comptage avec pour chaque état, la valeur initiale des principales entrées et sorties (0=L, 1=H).

La partie en bleu donne les entrées avant un changement d'état sur CLK, la partie orange donne les sortie après ce changement d'état. Un X dans la colonne CLK indique que les valeurs des sorties sont les mêmes que CLK change détat ou non. Un 0 dans la colonne CLK indique que la valeur de CLK vaut 0 (ou L) et ne change pas. Une flêche indique un changement d'état (dans le cas présent, uniquement de L vers H).

Etats du système de comptage
Etats du système de comptage

Durée d'occultation

Pour comprendre les explications ci-après, il est nécessaire d'expliquer la notion de fenêtre d'occultation qui a émé mise en oeuvre sur PC-RM3 (puis reprise sur PC-RM1).

img

Supposons qu'un certain Tic intervienne au temps T1. Le suivant doit intervenir au temps T2 = T1+durée d'une demi période.

La fenêtre de mesure autorisée est centrée sur T2. Les impulsions ne sont prises en compte que dans la zone verte. Si une impulsion survient dans la première zone grisée en rouge (avant T2), elle est ignorée. Si l'impulsion survient au delà de la zone verte, cela signifie probablement qu'un signal a été perdu. Le chronocomparateur ignore cette donnée et tente de se resynchroniser sur une autre impulsion.

Pour une montre qui bat à 18000 coups par heure, la demi-période (durée entre un Tic et un Tac) est de 200ms. Si l'on choisit une durée d'occultation de 9/10, les impulsions ne seront prises en compte qu'entre T1+180ms et T1+220ms.

Une durée d'occultation de 9/10 de la pdemi-période permet d'éliminer les phénomènes parasites.

Etat initialisation (Etat0)

Le programme du processeur bloque le comptage en mettant EN1 et EN2 à L ce qui active /CLR1-2 et positionne les sorties Q1 et Q2 à L. Donc, quelque soit la valeur de H1, /Q1 et /Q2 valent L et ce, quelques soient les variations de CLK et TIM2 et TIM5 ne s'incrémentent donc pas.

Démarrage du comptage (Etat1)

Le programme attend un début de TIC (ou de TAC). Pour ce faire, il attend que le signal sur CLK vaille L "un certain temps" qui dépend du battement de la montre. Ce temps écoulé sans qu'un TIC ou un TAC ait eu lieu, le programme initialise TIM2 et TIM5 à 0 et positionne EN1 à H alors que EN2 reste à L. D1 = EN1 vaut H et D2 = EN2 vaut L.

Tant qu'il n'y a pas de signal sur CLK, /Q1 et /Q2 restent à leur valeur initiale (celle de l'état précédent), c'est à dire H. Donc, TIM2 et TIM5 ne s'incrémentent pas.

Etat Comptage 1 (Etat2)

Une première impulsion arrive sur CLK1-2. Comme D1 vaut H, /Q1 va passer à L ce qui va entrainer le comptage dans TIM2. Comme D2 vaut L, /Q2 reste à H et donc TIM5 ne s'incrémente pas.

Le changement d'état de /Q1 génère une interruption sur le processeur qui va alors déclencher le timer de la fenêtre d'ocultation ce qui correspond à l'Etat3. A la fin de cette fenêtre, on passe dans l'état Fin Fenêtre 1 (Etat 4).

Etat Fin Fenêtre 1 (Etat4)

Le microcontrôleur positionne EN2 à H et EN1 à L (dans cet ordre, sinon, on réinitialise les bascules à /Q1 = /Q2 = H).

Puisqu'on vient de sortir de la fenêtre d'occultation, le signal en sortie d'amplificateur connecté à CLK ne bouge pas et est à l'état L (sauf si la montre présente de graves défauts ou si la valeur du battement sélectionnée est (très) incorrecte). On a donc toujours /Q1 qui vaut L et Q2 qui vaut H. Donc, TIM2 continue de s'incrémenter et TIM5 ne s'incrémente pas.

Tant que le signal en sortie de l'amplificateur ne change pas, on reste dans cet état. Si le signal change (passe à l'état H sur CLK, Etat5), la logique passe dans l'état Comptage 2 (Etat6).

Etat Comptage 2 (Etat6)

EN1 vaut L, EN2 vaut H, un front d'horloge arrive sur CLK.

Puisque D2 vaut EN2 qui vaut H, la sortie /Q2 va prendre la valeur L et donc TIM5 va commencer à compter les impulsions d'horloge. A l'inverse, /Q1 va passer à H et donc TIM2 ne s'incrémentera plus. On utilise le changement d'état de /Q1 ou /Q2 pour générer une interruption qui permettra au microprocesseur de lire la valeur du compteur TIM2, le remettre à 0 et déclencher le timer de la fenêtre d'occultation. A la fin de cette fenêtre, on passe dans l'état Fin Fenêtre 2 (Etat 7).

Etat Fin Fenêtre 2 (Etat7)

Le microcontrôleur positionne EN1 à H et EN2 à L (dans cet ordre, sinon, on réinitialise la bascule à /Q1 = /Q2 = H).

Puisqu'on vient de sortir de la fenêtre d'occultation, le signal en sortie de l'amplificateur ne bouge pas et est à l'état L (sauf si la montre présente de graves défauts ou si la valeur du battement sélectionnée est (très) incorrecte). On a donc toujours /Q2 qui vaut L et /Q1 qui vaut H, et donc, TIM5 continue de s'incrémenter tandis TIM2 ne compte pas d'événements.

Au premier changement d'état de CLK, on passe dans l'Etat Comptage 1bis (Etat8).

Etat Comptage 1bis (Etat8)

EN1 vaut H, EN2 vaut L, un front d'horloge arrive sur la logique de commande.

Puisque D1 vaut EN1 qui vaut H, la sortie /Q1 va prendre la valeur L. A l'inverse, /Q2 va passer à H et donc STM5 ne s'incrémente plus. On utilise le changement d'état de /Q1 ou /Q2 pour générer une interruption qui permettra au microprocesseur de lire la valeur du compteur STM5, de le remettre à 0 et de déclencher le timer de la fenêtre d'occultation. A la fin de cette fenêtre, on passe dans l'état Fin Fenêtre 1 (Eta4), et ainsi de suite.

L'intérêt de cette logique est que le comptage ne dépend plus du programme avec les risques de masquage des interruptions dues au traitement d'autres interruptions.

Les interruptions générées par /Q1 ou /Q2 ne nécessittent pas un traitement immédiat. Les durées se comptent en dizaines de millisecondes du côté du signal provenant de la montre alors que le déclenchement de l'interruption et le traitement vont se compter en microsecondes côté programme. Mais ce qui est important, c'est que le comptage ne dépend pas des éventuels délais de réaction du microprocesseur, tant qu'on ne passe pas quelques dizaines de millisecondes ce qui (sauf bug) ne se produit jamais (on sera plutôt au niveau de quelques microsecondes).

Avec les timers TIM2 et TIM5, il est possible de compter jusqu'à 107 secondes avec une précision de 25nS (40MHz).

Carte microcontrôleur

Le microcontrôleur est un STM32F04 à 72MHz. Les premiers essais de programmation ont été faits sur une carte Diymore que l’on trouve pour environ 7€ mais je suis passé ensuite sur une carte de développement STM32F407VET6.

stm32F407vet6
Carte STM32F407VET6, face avant

Vous trouverez des informations sur sa mise en oeuvre sur la page qui lui est consacrée.

Afficheurs

L’afficheur LCD est de type 3.2" TFT LCD Color Screen Module 380*240 + Touch Pen. Il est prévu pour se brancher directement sur le connecteur de la carte de développement ce qui évite toute complication et il convient très bien pour l'usage.

écran PC-RM4
Afficheur 3,2 pouces, 380 x 240 pixels, tactile

Comme j'avais également un afficheur SPI 3.5" en 480x320, j'ai également réalisé une version adaptée à cet écran. Evidemment, l'affichage est beaucoup plus beau. Par contre, il est plus lent que sur le précédent (bus SPI oblige) mais ce n'est pas très gênant. Plus gênant, cet affichage a tendance à perturber la synchronisation avec le capteur, je suppose, à cause du DMA. Donc, je ne recommande pas d'utiliser cette version que j'ai néanmoins conservé pour réaliser les illustrations de cette page.

Il y a un tableau et une photo qui explique comment faire les branchements juste après les illustrations.

Quelques vues de la version en cours de développement, les affichages de la version finale ne correspondent plus tout à fait à celles-ci-dessous.

écran PC-RM4 480x320branchements

écran PC-RM4 480x320branchements

L'affichage utilise le bus SPI1, le TouchScreen utilise le bus SPI2.

Ecran Processeur
MISO PB4MISO SPI1
MOSIPB5MOSI SPI1
SCKPB3SCK SPI1
LED(réroéclairage)PB1(LCD_BL)
CD/RSComd. donnéesPB7(CS)
CSChip SelectPB6(CE, chip enabled)
ResetReset écranPB8Sur connecteur SPI1
Vcc3,3V3,3VSur connecteur SPI1
GNDGNDSur connecteur SPI1
T_IRQTouchScreen Appui sur écranPC_5INT
T_DOTouchScreen Data OutPB14MISO SPI2
T_DINTouchScreen Data InPB15MOSI SPI2
T_CSTouchScreen Chip SelectPB12SCS
T_CLKTouchScreen ClockPB13SCK SPI2

écran PC-RM4 branchements

Le reste de la carte comporte une LED commandée par le processeur (en plus de celles qui sont déjà sur la carte de développement). Une prise Jack permettant le branchement du capteur complète l'ensemble.

Précision et résolution de l’appareil

La précision et la résolution de l’appareil doivent être définies pour les 3 mesures réalisées :

L’horloge de la carte microcontrôleur utilisée a une résolution de 25ns. Sa précision dépend de celle du quartz et est probablement très inférieure à 0,01%. On la nommera P% par la suite. Dans ce contexte, on peut dire que :

Pour la mesure de l'avance/retard, on effectue la différence entre la somme des durées des Tic et des Tac mesurées et la durée attendue. Si NB est le nombre de mesures de Tic et de Tac, l'écart avec la durée attendue est Ecart = somme(durées des Tic et des Tac) - NB x durée d'une période.

Il suffit ensuite de ramener cette valeur à 24 heures pour avoir l'écart sur 24 heures.

Dans le pire des cas, la résolution de la mesure se cumule en valeur absolue sur la période de mesure. Si NB24 est le nombre de périodes sur 24 heures, alors, la résolution la plus mauvaise est NB24 * résolution. Pour une montre qui bat à 18000 coups par heure, Cette résolution est inférieure ou égale à 18000 x 24 x resolution d'une mesure soit environ 21ms.

avril 2019-mai 2022

sommaire