Radio 3 pour compteur d'eau
SCHLUMBERGER/ACTARIS/ITRON

SCHLUM8_0

1    Les raisons de ce montage
2    Le principe de base
2.1    Les bases de calculs
2.2    Les éléments de temps
2.3    Fonctionnement général
2.4    Organigramme programme
2.5    Partie Radio RX/TX
2.6    Le circuit oscillant série
2.7    Problème de la température
2.8    Alimentation
3    La mesure du temps
4    Le circuit de la self
4.1    L'hystérésis
5    Le schéma
6    Programmation ICSP
7    Réalisation
8    Mise au point
8.1    Mode réglage (branche du logiciel)
8.2    Réglage de l'ULPWU    15
8.3    Réglage de la fréquence des oscillations
8.4    Le réglage du nombre d'impulsions
8.5    Réglage de la tension des piles
8.6    Erreurs à ne pas commettre
8.7    Précisions sur le circuit oscillant (Ajout du 4/12/2015)

9    Conclusions
10  Suivi


Si vous arrivez directement sur cette page par un moteur de recherche, vous pouvez avoir accès à la table des matières et à chaque article, en page d'accueil.    L'accès se fait par l'un des deux liens en tête de colonne de droite ----->
Les questions correctes en fin d'un article recevront toujours une réponse, mais pas les questions par "CONTACTER L'AUTEUR" qui n'auront pas de REPONSE (car je suis obligé de répondre par mail).
A voir aussi  en colonne de droite (lien direct) ------> les articles "BONJOUR" ainsi que "INFOS rapides"... Il est déconseillé d'indiquer dans les commentaires ses coordonnées (mail, adresse ou téléphone).
Ce blog est modéré et vous pouvez demander simplement en tête de question à ce que vos informations restent confidentielles si nécessaire. Rien ne sera publié, mais ma réponse sera faite sur l'article correspondant (et non par mail).

 


  Avant propos

Cet article fait suite à l'article sur le relevé à date fixe des compteurs d'eau.

L'objet en a été revisité, puisque le cœur disparaît (relevé à date fixe !)

Cela correspondant à la demande des particuliers d'avoir quelque chose de plus simple, leur permettant d'avoir à distance l'information de l'index de leur compteur d'eau, cela sans avoir à tirer de fils.
Les tops d'index (Une impulsion à chaque tour de Cyble (litre)) sont également utiles pour les systèmes qui doivent assurer une mesure de débit, (ou utiliser un affichage existant), dans ce premier cas c'est le passage d'un ou plusieurs litres dans un temps donné qui détermine le débit. (Cette information unitaire est seulement transmise par fils et non par radio. C'est aussi une nécessité de précision)

L'index (Comptage des M3 et des litres) est transmis par radio (avec quelques autres informations également), mais les informations complémentaires sont moins nombreuses que dans le projet initial.

Ce projet est volontairement très réduit au niveau des composants, et le capteur (Self L1) est un élément standard de récupération dans des Lampes Basse Consommation (LBC).

Ce montage pourra servir également de plateforme pour un futur relevé à date fixe qui ne verra le jour qu'avec un accompagnement industriel, car je m'arrêterai sur ce sujet SCHLUMBERGER, ACTARIS, ITRON, avec ce dernier montage qui pour l'instant fonctionne depuis plusieurs semaines sans anicroches.

Les données sont aussi bien des tops index avec un open drain, que l'Index complet transmis par radio.
Si vous utilisez seulement la radio, vous pourrez supprimer certains composants et réciproquement, si seuls les tops index sont utilisés. Dans ce dernier cas l'autonomie en sera largement augmentée puisque le poste "radio" est le plus gros consommateur d'énergie.

Vous aurez deviné que le montage est prévu pour fonctionner avec 3 simples petites piles LR03 ou AAA. On peut escompter avec les très faibles débits sur une capacité des piles de 1250mAh ? Ceci autoriserait une autonomie théorique d'environ 7 à 8 années.
Rien n'empêche cependant d'utiliser des modèles plus courants de type LR6, ce qui donnerait une plus longue autonomie de fonctionnement.
La grande difficulté dans ces systèmes réside dans la durée réelle des piles, car les fabricants de piles restent résolument très avares d'informations sur la capacité à très long terme (Bien entendu en fonction du courant demandé).
Même les plus connus n'osent pas même donner une capacité pour un courant donné même exprimé en sous multiple de la capacité (Par exemple Courant à C/10, à charge constante pour le plus simple !)

Alors en ce qui me concerne je me vois mal garantir la durée de fonctionnement !
L'autonomie serait supérieure à 4 années, c'est à peu près ce dont je suis sûr.

ATTENTION : Vous n'oublierez pas non plus que ce système ne traite pas les retours d'eau et qu'un clapet ou douille de purge est absolument nécessaire pour que le comptage soit exact (À cause des retours d'eau)

NOTA : "Cyble" est une marque attachée aux fabricants SCLUMBERGER, ACTARIS et ITRON

1 Les raisons de ce montage

A l'origine, sur l'article du relevé à date fixe, je pensais faire un montage assez généraliste avec une autonomie sur piles d'au moins 10 à 15 années, mais c'était un peu présomptueux, car très délicat avec des critères de temps très serrés et autonomie maxi, aussi j'ai dû diviser les difficultés, bien que celles-ci ne soient pas totalement disparues…
On a d'ailleurs du mal d'imaginer qu'une simple "roue" qui tourne au grand maximum à 120 tours par minute, nécessite autant de travail. Ceci est du essentiellement au principe retenu qui nécessite de scanner de façon permanente.

En effet, l'un des problèmes important réside dans le capteur à courants de Foucault, constitué simplement d'une self, mais il faut une self "courante" ayant un bon coefficient de qualité "Q".

L'autre problème majeur est la tenue en température, car si en eau potable c'est souvent des températures de 5 à 20°C environ, il n'en est pas de même si on veut mesurer des volumes d'eau chaude sanitaire par exemple, car la proximité des canalisations et du compteur lui-même sont des sources de chaleur, qui pourraient influer sur  l'électronique.

Un point non abordé dans ce montage est l'étanchéité, car je ne suis pas vraiment au top de ce sujet, mais le montage peut être enrobé de résine sans toutes fois inclure les piles. Ce point non traité reste important, car le domaine est presque toujours le siège d'une importante condensation.
Vernir l'ensemble /ou l'enrober sont hautement souhaitable pour une application AEP.


Les fils d'alimentation peuvent être raccordés avec des bornes étanches auto dénudantes style téléphonique (Scotch), qui nécessiteront le remplacement toutes les X années (Avec un peu moins de fil chaque X années…!)
(L'enrobage comprenant les piles est un non-sens que je ne préconise pas au nom de l'écologie)

Les problèmes restants sont plus simples, mais non quantité négligeable car avec les dernières possibilités des PIC, cela devrait être résolvable, mais l'autonomie des piles reste difficile à traiter, surtout à la lumière des dernières découvertes… (Vitesse de transmission et durée de capture des impulsions)

Je rappelle aussi que l'article initial évoquait le relevé à date fixe des compteurs d'eau AEP, mais en exploitation par un concessionnaire. Ce point n'est pas oublié, mais nécessite beaucoup plus de travail et les particuliers sont très demandeurs d'un produit simple dont une partie des Français (Et de nombreux autres pays du monde) sont équipés par leur distributeur d'eau potable, car ces marques sont mondiales.

Ce montage est donc une version simplifiée en performances (Débits plus modestes) et bénéficiant des différents acquis précédents, ainsi que d'une puissance radio légèrement supérieure, d'une protection du régulateur lors de la programmation, etc…

Quelques zones d'ombre peuvent peut-être subsister notamment l'alignement par valeur inférieure du nombre d'impulsions pour une réponse en température optimale de qq degrés à 67°C…
On en reparlera ultérieurement, mais dans l'immédiat, j'ai deux montages qui fonctionnent, l'un sur l'eau de citerne  et sur le panneau solaire pour l'autre (eau chaude).

2 Le principe de base

Un petit croquis rappelle mieux qu'un long discours le principe de ce montage qui trouve sa place au dessus du compteur. IL faut donc réaliser aussi l'émetteur récepteur radio connecté au PC !

 

SCHLUM8_2


Le principe de base reste la transmission radio en clair de l'index d'un compteur d'eau de marque SCHLULMBERGER, ACTARIS, ITRON équipé d'un secteur 120° appelé "Cyble" par le constructeur.
(Accessoirement les tops index, également disponibles peuvent être transmis par liaison filaire vers d'autres dispositifs spécifiques).
Le montage est alimenté par 3 piles de 1.5 V (ou accus de 1.25V) dont l'autonomie devrait être de plusieurs années environ. (À préciser par la suite)
L'envoi d'un minimum de caractères autorise une durée des piles plus importante, mais on admettra que l'envoi du seul Index est insuffisant pour caractériser la mesure et cet envoi d'index devra être accompagné (Précédé) de caractères d'identification par exemple, discriminant d'éventuels autres dispositifs radio ou évitant de confondre avec une perturbation du signal radio.

On admettra donc l'envoi de 25 caractères ASCII à 2400 bps seulement. (Des essais à 4800 bps ont été décevants avec le matériel utilisé, et principalement à cause du récepteur).

SCHLUM2_courant
NOTA : Durant l'envoi de caractères, il y a consommation de quelques mA pour la radio ainsi que de celle du PIC qui doit durant ce temps rester actif bien qu'en interrupts, car la sérialisation des données doit être faite par le PIC en fonctionnement (Baud Rate Générateur) !!! (Et non en SLEEP)

L'oscillogramme ci-contre concerne un montage précédent mais le courant reste similaire.

Les particuliers équipés au moins d'un ordinateur et d'internet, suivront leur index grâce à l'excellent logiciel "Terminal" de BRAY++ (à télécharger gratuitement), moyennant la réalisation du petit (émetteur) / récepteur radio 433.92MHz connecté à un port COM ou à une émulation de port COM, car les ports série RS232 ont malheureusement disparu des PC (portables et tours) et c'est un véritable regret car les données séries sont de plus en plus utilisées !
Au niveau d'un particulier, la récurrence des émissions radio peut se limiter à toutes les 30 secondes, ce qui améliore l'autonomie et reste je pense un compromis acceptable.

Les plus "costauds" en programmation pourront développer un logiciel spécifique permettant de "trier" les différentes données qui passent par la RS232 et issues de la fréquence de 433.92 MHz. (Clé de condamnation de voiture, portails de clôture, volets roulants, parfois casques audio et divers appareils…)

2.1 Les bases de calculs

Le problème a été repris à l'envers cette fois, car je suis parti non pas de la fréquence maxi de 8Hz du constructeur, mais bien d'une consommation encadrée par la capacité d'un compteur standard de DN15 de particulier.

Ces compteurs ont en général une capacité nominale de débit de 1500 l/h (1.5M3/h). Compte tenu des caractéristiques de précision, de débit limite avant destruction, j'ai tablé sur une fréquence de 2Hz soit de 2 litres par seconde.
(Encore que ce ne soit pas toujours le débit réel mais seulement la vitesse de rotation de la "Cyble" en tr/s, car certains "gros" compteurs de réseau peuvent avoir par tour de Cyble des valeurs beaucoup plus importantes (10, 100 voire plus)

Dans notre cas, le débit maximum correspondant est donc de 2L/s*3600=7200 l/h soit donc plus de 4 fois le débit nominal et l'on est pratiquement au débit de destruction d'un compteur de DN15.
En supposant un scan tous les 1/10 de tour de la Cyble (36° angulaires), qui permet de différentier avec certitude le passage devant la Cyble, cela donne un temps de scan de 50 ms. (Voir courbes angulaires § 2.7)

En réalité, j'espère mieux, compte tenu qu'il n'y a pas de retour arrière prévu, et que la "montée" de la Cyble peut être confondue avec la descente, du fait que le fonctionnement est avec hystérésis.

(A vérifier ! car que l'on franchisse un seuil haut à la montée ou à la descente est suffisant, contrairement au fait de rechercher absolument un maximum ou un minimum. Cas d'un débit très important où on manquerait le seuil à la montée, mais que l'on enregistrerait lors de la descente)

Le temps d'acquisition des impulsions de comptage restait toujours de 250 µs et était figé de part les essais précédents…

Mais cela, c'est ce qui était AVANT ! Maintenant c'est 500 µs, voir les raisons § ci-dessous !

2.2 Les éléments de temps

Les impulsions amorties d'un circuit LC série (100KHz) étaient comptées durant environ 250µs (suivant la fréquence exacte du circuit).
A ce jour, et lors de l'essai final en température, je me suis aperçu que le comptage bloqué à un temps de 250 µs était un fiasco au niveau du fonctionnement en température, car de nombreuses autres impulsions (variables en quantités suivant la température et le coefficient Q), pouvaient être comptées bien au delà de ce temps trop court.

Ce temps a donc dû être porté à 500 µs bien qu'il y ait encore des possibilités de comptage jusqu'à plus de 70 impulsions et peut être plus suivant les selfs (Soit environ 700µS)
(Ce temps est malheureusement un temps où le processeur est actif pour pouvoir compter en TMR0, d'où un surcroît de consommation non prévu)

J'ai gardé un scan toutes les 50ms et les rapports de temps diminuent de ce fait (500µS/50ms)….
Ces principes associés aux limites de l'entrée T0CKI de TMR0 (qui reçoit les alternances des oscillations amorties) font que l'ensemble est relativement imbriqué et que les solutions restent très restreintes.


NOTA : Au niveau de l'entrée T0CKI, ce n'est pas la fréquence de 100 KHz qui pose problème puisque l'on pourrait presque atteindre 4MHZ, mais c'est la largeur des impulsions qui peut être très étroite et de ce fait hors spécifications de l'entrée T0CKI.

La fréquence de l'oscillateur L1 C4 en ondes amorties est toujours de 100 KHz et il faut avoir les écarts les plus importants entre présence ou non du secteur Cyble sous la self.
Le comptage a lieu en T0CKI (sur le Timer 0), ce qui interdit donc son utilisation en timer standard.

Cet ensemble fonctionne avec ULPWU en interrupts chaînées de façon permanente sans que le programme proprement dit modifie ce scénario.
ULPWU conditionne à la fois le démarrage du délais de comptage des impulsions (500µs), mais également la prochaine mesure (Scan toutes les 50ms) pour être sûr de na pas perdre d'informations.

Cet enchaînement est ainsi complètement automatique par interrupts et permet de ne pas avoir à le gérer, mais de diriger le programme en fonction de flags positionnés pour savoir si l'on est dans les 500µs ou au contraire après.

2.3 Fonctionnement général

La self qui constitue le capteur à courants de Foucault, envoie des impulsions en plus ou moins grand nombre, suivant qu'elle se trouve à l'aplomb du secteur Cyble ou à côté.
Ces impulsions ont une fréquence à peu près fixe, car leur niveau change régulièrement du fait de l'amortissement permanent et de ce fait il y a un petit glissement (La largeur des impulsions diminue en permanence au fil de leur rang depuis l'instant initial).
Ces impulsions sont comptées automatiquement en interruptions et de ces valeurs associées aux précédentes, on en déduit le franchissement de seuils haut et bas (Hystérésis sur le nombre d'impulsions).
Le franchissement d'un seuil pour un nombre élevé d'impulsions ("Vers le haut") est interprété comme un volume de 1 litre passé (ou un tour de Cyble).
Le retour par un seuil "bas" est effectué au mieux 50 ms plus tard et dépend de la vitesse de rotation de la Cyble et constitue le retour du signal au repos.

Toutes les 30 secondes une trame radio RS232 est envoyée vers un récepteur radio 433.92 Mhz connecté à l'entrée RS232 d'un PC avec l'excellent logiciel "terminal" de BRAY++

Le fait d'envoyer systématiquement l'index par radio est le consommateur d'énergie principal, mais c'est le prix à payer si l'on veut avoir les résultats d'un index au moins toutes les 30 secondes et sans tirer de fils.

Le Timer1 définit le temps de comptage de 500 µs (Maintenant), à partir de l'horloge interne à 4MHz, temps pendant lequel on enregistre les impulsions amorties issues du circuit oscillant. (Durant ce temps, le processeur est nécessairement actif pour pouvoir compter les impulsions dans le TIMER0)
C'est ce temps du Timer1 qui détermine la durée de l'échelon de tension. Il est initialisé lors de l'interrupt ULPWU et débute en // avec les 50ms du temps de scan

(Ce même Timer1 pourrait être aussi utilisé pour définir le temps entre scans, mais ce n'est pas possible sans OSC1 et 2 car le processeur devrait rester actif pour Fosc/4, ce qui empêche toute économie d'énergie et ne convient donc pas).

On utilisera donc pour le temps total du scan l'ULPWU, avec la charge/décharge d'un condensateur qui fournira une interrupt en fin de décharge et permettra ainsi de réveiller le processeur (En SLEEP le plus souvent).
Un autre problème se situe au niveau des temps de traitement qui sont variables (Transmission RS232 par exemple) et que le cycle de scan doit être à peu près fixe, de même que "l'écoute" durant 500µs.

Il faut donc lancer les 2 délais en même temps, calculer les nouvelles valeurs éventuelles d'index, surveiller les fuites et le blocage compteur, tant que les 500µs ne sont pas passées, alors il est nécessaire d'attendre pour pouvoir enregistrer les impulsions en TIMER0. (En fonctionnement à 4 MHz impérativement à cause de T0CKI) .

Pour utiliser ce temps utilement sans attendre la fin des 500 µs, ne pas attendre "bêtement" et espérer passer en SLEEP rapidement, on effectue tous les calculs sur la valeur PRÉCÉDENTE du nombre d'impulsions (Valeur issue des 500 µs (Et 50ms) précédentes.
Ce point est particulièrement intéressant pour économiser l'énergie due à la consommation d'attente du CPU.
(Il faut compter environ 350 µA de courant pour le PIC seul à 4 MHz sous 2.5V)

Dès que 500µs sont passées, outre la gestion de l'index et la gestion sommaire de l'horloge basée sur l'ULPWU, on regarde si le délai pour une émission radio est atteint (Toutes les 30 secondes). Si c'est le cas, on lance l'émission SANS passer en SLEEP.
Par opposition, si rien d'autre n'est à faire, on passe en SLEEP pour attendre la fin des 50 ms. (Une  émission sera à cheval sur plusieurs scans car elle dépasse 100 ms).

On remarquera (Et j'avais fait l'erreur lors des projets précédents), que pour assurer la SÉRIALISATION en RS232 (TX), il est impératif que le processeur soit actif (Et non PAS en SLEEP !).
C'est évident quand on le dit, mais beaucoup moins quand on cherche les raisons d'un mauvais fonctionnement RS232, "la tête dans le guidon", alors que le simulateur (qui ne simule pas le mode SLEEP), considère la transmission comme bonne !

Pour les particuliers, je n'avais pas prévu d'implémenter la mesure de la valeur de la tension des piles, pas plus que l'implantation de l'ILS en série sur l'alimentation de la photodiode. La mesure précise du temps étant inutile, cela libèrera également l'oscillateur à quartz de 32 KHz.
En réalité je n'ai pas résisté à implémenter la mesure de la tension des piles, car cela ne prend pas beaucoup de temps CPU dans l'esprit et cela me parait tout de même très utile.

(Pour L'ILS, ceux qui voudront le remplacer par un switch pourront le faire, car il est seulement utile lors de la programmation du numéro de compteur et de l'index en cours. Attention cependant à ne pas mettre un simple interrupteur car la consommation en cas d'oubli de re-basculement diminuera significativement la durée des piles, utiliser un poussoir avec retour automatique au repos, c'est plus contraignant, mais c'est mieux !)

NOTA : Le port RC1 est seulement prévu pour la version à "date fixe". Il n'est pas utilisé mais peut perturber un peu par son courant de fuite la décharge du condensateur de l'ULP. Cela pourrait perturber lors de la validation de cette entrée ANA, mais je n'ai fait aucune vérification en ce sens et je n'ai pas de problèmes sur l'ULP. (Mon deuxième montage n'a pas cette liaison et fonctionne tout aussi correctement)

2.4 Organigramme programme

SCHLUM8_OrganiBC'est un organigramme général mais un peu plus détaillé au niveau fuites ainsi qu'au niveau du traitement RS232 et du passage en SLEEP, qui sont des points critiques de l'organisation.

La partie Réglages est spécifique pour les émissions toutes les secondes, mais fortement imbriquée avec le fonctionnement standard, pour les trames toutes les 30 secondes qui subsistent et sont signalées par "MAP" (Mise au Point).

Vous pourrez télécharger le fichier complet SCHLUM8_Organi en cliquant sur ce lien, car l'organigramme est trop grand et ne pourrait pas être inséré ici sans nuire à la description.

2.5 Partie Radio RX/TX

Comme ce montage est destiné aux particuliers, la transmission sera en ASCII et non en binaire. C'est tout de même plus "digeste" !

Peu de choses à dire sinon que l'on profite au maximum des piles en place (3 de préférence) et que l'on alimente ce circuit radio 433.92 MHz en direct par les piles, sans réguler la tension, ceci pour bénéficier d'une meilleure portée par une tension un peu plus élevée, car la tension régulée de 2.5V n'est pas spécialement "élevée".

Cyble17Une petite précision cependant, issue des mesures réalisées…
Le circuit émetteur RT4 pour son entrée "DATA" est directement la base d'un transistor, aussi si l'on maintient un niveau logique 0, sur cette entrée, la consommation radio est rigoureusement nulle.
C'est une chance qui évite d'avoir à commuter la tension d'alimentation !

Cela représente tout de même une contrainte, car cela oblige à inverser le niveau de repos de la sortie TX du PIC (Niveau de repos à 1 logique à l'origine passé à 0). Cette inversion est heureusement programmable par le bit SCKP du registre BAUDCTL.
Par contre cette inversion devra être réalisée au niveau réception, (Ce qui est prévu dans le petit récepteur radio)

Ce petit récepteur déjà existant depuis longtemps a pris une petite cure de jeunesse hybride en introduisant quelques CMS (condensateurs principalement) mais aussi en supprimant les fonctions de verrouillage RTS/CTS pour émettre, (Request to Send et Clear to Send) qui sont très rarement utilisées à ce jour. (On oubliait toujours de les positionner …Alors autant les supprimer !)
Le branchement de la LED de programmation a été ajouté, de même qu'un éventuel phototransistor est également prévu.

Le paramétrage (ou programmation) (N° de compteur et index à la pose) par la photodiode BPX81 se fera par la LED issue de ce petit boîtier récepteur (Boîtier également émetteur, sur LED et en radio !)

NOTA :
Ce principe du paramétrage par une LED et un phototransistor et la solution la plus économique qui évite de prévoir un récepteur radio dans chaque tête. (C'est la même raison que pour les télécommandes de la télé ou des autres appareils de la maison !)

L'ILS ou un switch est associé à la photodiode BPX81 pour non seulement savoir si la sonde de programmation (Aimant et LED) est en place, mais aussi pour limiter la consommation de courant car R7 fait seulement 6.8K pour fonctionner correctement avec la LED, et le courant engendré est un gouffre énergétique (367µA ! autant que le PIC !) qui ne donnerait que peu d'autonomie au montage.
Il y a donc lieu de couper cette liaison au VDD dès que le paramétrage est effectué, car la photodiode pourrait recevoir la lumière du jour et on ne peut pas espérer toujours un local qui serait uniquement dans le noir !!!

La résistance R14 en // permet de maintenir un potentiel proche de la masse sur l'entrée RA3 lorsque l'ILS n'est pas activé. (Cela évite la surconsommation d'une "entrée en l'air" en SLEEP).

Pour mémoire voici en fin de paragraphe le schéma du petit boîtier récepteur pour le PC, qui est sans aucune "intelligence". Il est prévu pour s'adapter à toutes les situations, inversion signaux à l'émission ou à la réception, alimentation d'une LED et phototransistor prévu.
Il fonctionne avec ou sans écho, mais est utilisé avec écho ici et dans la majorité des cas.
C'est un outil standard qui rendra bien des services.

Il peut aussi être alimenté uniquement en 5V (Contrairement au modèle précédemment décrit (Convertisseur Radio / RS232), ce qui est bien utile) …Un prise mini USB-B permet de l'alimenter par un PC et un cordon USB standard de Smartphone ou d'appareil photo numérique.

(Le 12 V qui alimentait précédemment l'émetteur a été supprimé et celui-ci est maintenant alimenté en 5V "normal" avec certes un peu moins de puissance, mais c'est suffisant !)

Par contre je m'étais rendu compte que le 5V de l'USB de certains PC était assez pollué et que cela se ressentait sur la super réaction de la partie réception RR3. Alors pour palier ce problème, une alimentation spéciale 5V a été réalisée à partir du +9V issu du MAX232 qui est alors régulé spécifiquement et donne ainsi une meilleure stabilité de tension.

(Sur PC portable, sans liaison RS232 d'origine, le logiciel BRAY++ associé au boîtier émission réception fonctionne également correctement avec un adaptateur ATEN UC-232A)

A l'origine, je pensais pouvoir fonctionner à 4800 bps, car l'émetteur RT4 le permet. J'avais seulement oublié de mes précédents montages que le récepteur RR3 ne le permet PAS, ou en tous cas que la portée est réduite à une peau de chagrin.
J'ai donc du revoir ma copie et diminuer en vitesse de transmission à 2400 bps. C'est une vraie renonciation, qui réduit par deux l'autonomie, mais elle reste quand même encore "acceptable".

On notera également que l'utilisation du logiciel généraliste et gratuit TERMINAL de BRAY++ sous entend le problème des réceptions parasites sur cette fréquence de 433.92MHz, et que pour s'en affranchir, il serait nécessaire d'écrire un bout de programme qui pourrait reconnaître par le numéro à 6 chiffres en tête d'une trame, qu'il s'agit bien de ce dispositif. (Voilà la raison essentielle de ce numéro, dit numéro de compteur, qui servira avant tout à discriminer ce dispositif pour compteur, du flot des perturbations en tous genres sur cette fréquence "fourre-tout".

(Pour le circuit émetteur récepteur voir particularitésRADIOPC5_IMPL au paragraphe"Réalisation")
Si vous êtes courageux, vous pourrez ajouter deux RADIOPC5_SCHLED sur les signaux émissions et réception, c'est toujours utile !

 


Contrairement à l'habitude, schéma et plan d'implantation sont à priori à jour.

Voici un exemple des informations reçues des 2 montages qui sont en cours de fonctionnement actuellement :

326689 000574.640 3.6 00
125174 001280.625 4.7 00

On trouve en premier les 6 chiffres du numéro de compteur avec un espace, suivi de l'index complet avec 6 chiffres également pour les M3, un point décimal de séparation suivi des litres avec un espace de séparation.

Vient ensuite la tension des piles au format X.Y avec X pour les Volts et Y pour les centaines de milliVolts. Un espace et 2 digits hexadécimaux représentant les incidents éventuels.

Le format des incidents est le suivant :  (Poids faibles en premier)

Bit 0 Low_Bat     (batterie faible)
Bit 1 Fuite          (Fuite en cours)
Bit 2 A_U_Fuite   (Il y a eu une fuite mais elle a été corrigée)
Bit 3 BLOQ          (Compteur vraisemblablement bloqué ou absence longue > 50 jours)
Bit 4 Perte_LB     (Perte potentielle de litres coté partie basse de l'hystérésis)
Bit 5 Perte_LH     (Perte potentielle de litres coté partie haute de l'hystérésis)
Bit 6   N.U.
Bit 7   N.U.

2.6 Le circuit oscillant série

Le circuit oscillant est l'élément le plus important du montage. Il génère les impulsions engendrées par les oscillations amorties.Cyble7

C'est un peu particulier et trois oscillogrammes permettent de mieux cerner ce fonctionnement.

(ATTENTION, Ces oscillogrammes sont issus du fonctionnement précédent avec 250µs de temps d'acquisition, mais le principe reste parfaitement identique).

Le premier représente le signal présent à l'entrée T0CKI sur une durée de 50 ms

Le deuxième oscillogramme est simplement l'agrandissement de la première partie de ce même signal.
Ce signal est celui présent en T0CKI. Ce sont les impulsions à compter !

Quant au 3ème oscillogramme, c'est un montage graphique qui permet de visualiser  l'amortissement du à la présence de la Cyble sous la self (Cyan) relativement à son absence (Noir).
C'est donc la visualisation du principe qui montre bien la différence des signaux.

Cyble8La self est l'élément oscillant aux environs de 100 KHz  avec son condensateur C4, en oscillations amorties causées par un front de tension émis par T1. (La fréquence n'est pas critique)
Comme on le verra dans le paragraphe mise au point, ce circuit qui parait simple au premier abord, ne comporte que des éléments passifs.
Il n'est en réalité, pas vraiment simple, car son fonctionnement est rattaché à deux périodes de temps très différentes, aussi les 6 éléments qui le composent ne sont pas superflus.

Cyble9
Les oscillations amorties issues du point commun du circuit série L1 C4 entrent dans le PIC par l'entrée T0CKI reliée au Timer0 utilisé en compteur.
La "médiane" de tension au point bas de la self est définie dans les "DC caractéristiques" Input low voltage avec 0.15Vdd. La valeur Input high voltage est définie par 0.25Vdd+0.8V.

Sur la base d'une tension régulée VDD de 2.5V (assimilée à 2.56V pour cette application), la tension VIH est donc de (0.25*2.5+0.8)=1.425V.
C'est environ cette tension qui sera prise comme seuil de tension continue pour les oscillations amorties.

L'évolution de la tension au point bas de la self est très spécifique et il faut considérer la tension en fonction du temps par rapport à l'échelon de tension appliqué par T1 :

Le potentiel instantané au point bas de la self à l'instant "t0" d'application de l'échelon est presque exclusivement déterminé par le pont diviseur capacitif C2 C3.

Les résistances très élevées n'ont pratiquement aucune action à cet instant, car la charge des condensateurs est instantanée due à T1 qui est parfaitement conducteur avec un Rds On très faible (Réactances très faible devant les résistances).
Les constantes de temps R4 C2 et/ou R5 C3 sont de l'ordre de 20 ms et n'ont pas le temps de se révéler durant les 500 µs.
Durant la présence de l'échelon de tension pendant 500µs, le potentiel est donc pratiquement fixe au point bas de la self, et imposé par le pont diviseur constitué seulement par la réactance des condensateurs C2 et C3.
Au-delà des 500 µs, après coupure de la tension par T1, les oscillations se poursuivent en continuant de décroître et suivent alors la décroissance de tension des condensateurs C3 et C2 qui se déchargent lentement dans leur résistances // respectives. Cela est bien visible et sans aucune conséquence sur le fonctionnement, puisque c'est ignoré après ce temps.

A la suppression de l'échelon de tension, les oscillations continuent à décroître et C2 et C3 vont donc se décharger et le potentiel "moyen" va baisser suivant une exponentielle pour atteindre une petite dizaine de mV au bout des 50ms. Cette valeur est assimilée à 0 Volts.

Le cycle recommence alors avec un nouvel échelon de tension à l'issue des 50ms….
Les valeurs des composants sont un peu restrictives puisque C2 et C3 doivent être "grands" devant C4. Les résistances R4 et R5 doivent être élevées pour ne pas trop amortir le circuit oscillant. Enfin C2 et C3 doivent être des "courts-circuits" à la fréquence de 100KHz (L1 C4)
Enfin les constantes de temps R4 C2 et R5 C3 doivent être grandes devant 500µs
cyble12
Le cœur du montage est donc bien la self et ses composants associés.
Cette self doit avoir un coefficient de qualité minimum de 100 pour que l'on puisse atteindre un nombre suffisant d'impulsions amorties. (Il est possible de VOIR plus de 70 oscillations.
Cette self de 5 mH (ou 4.7 mH) pourra être récupérée sur de vieilles lampes basse consommation. (Je donne l'info : principalement sur les lampes LBC Philips "Génie 8W à petit culot à vis", mais de nombreuses autres ont des composants similaires).

C'est la solution de facilité, mais la plus réaliste pourtant, car si il fallait acheter ce type de self, c'est la croix et la bannière pour avoir de bonnes caractéristiques (Q élevé et MENTIONNÉ dans les spécifications des fabricants) et de plus c'est relativement cher car on est obligé de commander par 5 ou 10, voire plus encore.
(En l'absence de mention du Q, c'est une valeur inconnue et le plus souvent "peu favorable")

Notez également que j'aurais souhaité faire des essais complémentaires sur d'autres formes de circuit magnétique, mais mes moyens ne me le permettent pas. J'aurais souhaité avoir une meilleure idée des lignes de forces, car je pense que des selfs à noyau rigoureusement rectilignes (Sans épaulements de bobinage) seraient peut-être meilleures dans l'aspect détection par courants de Foucault, par la non dispersion du flux et permettraient une meilleure répartition  des impulsions en fonction de l'angle de la Cyble ???

Pourquoi tout ce "mic-mac" de ces 6 composants ? Simplement pour ne pas avoir à gérer une alimentation auxiliaire ainsi que ses inévitables différences avec le VDD.
De plus une alimentation auxiliaire (De très basse tension stable et réglable) ferait une hémorragie certaine dans les milli Ampères heures et cela, ce n'est pas acceptable. Alors il faut bien en passer par là !
On pourrait aussi passer par des circuits spécialisés comme des comparateurs rapides, mais là aussi c'est une consommation complémentaire qu'il faut gérer…J'ai également essayé cette solution (MAX985, MCP6541...) mais l'ensemble est consommateur et devient vite complexe et assez important en surface.

NOTA 1
Pour repérer plus facilement une self de cette valeur, (En l'absence d'indications), si l'on a pas d'appareil pour la mesurer, un multimètre peut déjà donner un bonne idée de sa valeur en mesurant simplement sa résistance. Cyble16En effet pour les dimensions habituelles (Ø 6.7mm long 10mm) et la valeur de 4 à 5 mH, on doit mesurer environ 13 à 15 Ohms de résistance pure.
Certes, c'est loin d'être précis, mais c'est mieux que rien pour ceux qui ont peu de moyens de mesure.
Ne pas retirer la gaine thermo de protection sur la longueur mais la couper à raz de la surface sensible pour ne pas perdre de distance entre la Cyble et la self. (Photo ci contre)


NOTA 2
Notez aussi que ces selfs sont fragiles, car le fil sort directement enroulé et soudé sur les broches rigides de sortie noyées dans un ciment. Il arrive qu'une broche soit désolidarisée ou que le fil soit cassé à ras de la broche.
Le dessoudage de la self sur une LBC doit être fait sans forcer pour ne pas être dans un de ces deux cas. Dans les pannes de LBC, j'ai eu 1 seule panne due à la self coupée. (Peut-être 1% ?)

2.7 Problème de la température

Ce problème délicat est ancien et historique, mais il avait été masqué par le fait de ne regarder le nombre d'impulsions que durant 250µs (Pour raison d'économie d'énergie).

C'était une erreur fondamentale par inattention qui a été perpétrée par les différents essais principalement par le fait qu'il y avait peu d'impulsions suite aux mauvais ajustements des condensateurs C2 et C3, ainsi qu'aux problèmes de selfs de mauvaise qualité.

Comme la partie haute du nombre d'impulsions ne changeait donc que très peu, ce problème avait été occulté car mon attention avait été surtout attirée sur la partie basse du nombre d'impulsions qui bougeait beaucoup plus. (Lors de la présence Cyble).

Lors des essais finaux en température, lorsque le programme a été pratiquement au point, j'ai voulu revérifier avec l'enceinte thermostatique, les valeurs hautes et basses cette fois. C'était la catastrophe absolue !
C'est à cet instant que les problèmes se sont révélés avec le mode de mise au point/réglage d'avoir le maximum d'impulsions pour être certain que l'on était à l'ajustement optimum des condensateurs C2 et C3.
Hélas, des valeurs beaucoup plus importantes du nombre d'impulsions ont donc été constatées en essayant d'ajuster les condensateurs pour vérifier que le hard était parfaitement OK ! J'étais alors très déçu, car après tant d'essais et de vérifications, c'était pratiquement un retour à la case départ !

J'ai donc regardé pour corriger ce problème en faisant un apprentissage en cours de fonctionnement, mais pour cela, en fonctionnement réel, il n'est pas possible de demander un débit, ce qui complique encore largement.
Cyble10En effet la courbe de réponse angulaire qui est fonction du diamètre de la Cyble et de son angle est particulièrement défavorable pour détecter de façon certaine la présence de la Cyble parfaitement centrée sous la self. 
(Ci-contre courbes relevées pour 500µs en haut et courbe pour 250µs en dessous)
C'est difficile d'être certain d'être au minimum d'impulsions, et autant on sait parfaitement repérer le PASSAGE sous la Cyble (sans avoir obligatoirement un minimum d'impulsions), autant il est très incertain de faire une mesure exactement au centrage de la self et de la Cyble (Même dans le cas d'impulsions à seulement 2Hz).
C'est sur ce point que le diamètre de la self intervient largement. C'est pourquoi lors de l'apprentissage initial on demandait de faire les essais à faible débit…Mais c'est du passé !

J'entreprends donc maintenant de mesurer "sans limite de temps", mais déjà à 500µs c'est insuffisant, et c'est presque un bien car avec les valeurs relevées, j'ai trouvé cette durée acceptable pour satisfaire à toute une série de températures, sans changer le principe de l'hystérésis avec toujours les deux seuils haut et bas.
L'autre solution d'augmenter encore plus le temps alloué au comptage des impulsions n'apporte pas vraiment de sécurité, car les impulsions passent par un maximum vers 45°C, puis diminuent.
De plus cet allongement du temps d'acquisition augmenterait considérablement la consommation, car il faut avoir à l'esprit que durant le comptage des impulsions le processeur est obligatoirement actif et non en sommeil (Comptage en TMR0).

J'ai donc envisagé de suivre la valeur moyenne du delta entre haut et bas (Niveau avec et sans la Cyble), j'ai aussi pensé faire une table de conversion, mais il fallait alors mesurer la température…etc...etc

SCHLUM8_impulsions_temp_rature_diagrammeLA solution qui maintient le principe d'une hystérésis pour les seuils haut et bas est conservée, et pour ce faire il suffit de tirer un trait horizontal avec les marges hautes et basses pour s'apercevoir que l'on peut ainsi fonctionner de moins de 5° à 67°C avec un écart d'impulsions de 6 entre les seuils, ce qui est largement suffisant.
En résumé le plus simple est toujours le meilleur, même parfois si c'est au prix d'une petite restriction.
Je vais donc faire les marges pour vérifier, mais ces essais de température sont très longs et la partie basse difficile à atteindre. Il va falloir aller dans le congélateur, mais avec les problèmes d'inertie, les valeurs seront très peu précises.

Les courbes sont très accidentées, car il est pratiquement impossible d'atteindre l'équilibre thermique pour chaque point, ce qui explique ces accidents.
On distingue néanmoins parfaitement un maximum prononcée à 45°C.
Pourquoi à cette température ? J'ai une petite idée mais qui ne sera pas vérifiée, mais qui a une  probabilité d'être exacte.
Lors du réglage des condensateurs C2 et C3, je me suis rangé à des valeurs légèrement inférieures au maximum d'impulsions (Limite à 1000 µs en réglages). Cette particularité a donc permis je suppose de décaler le maximum vers une température plus élevée que les traditionnels 20°C.
Aussi je pense, que sans le vouloir j'ai profité de cette petite limitation du nombre d'impulsions qui m'a permis finalement d'augmenter les possibilités de fonctionnement aux températures élevées.

2.8 Alimentation

La nécessité absolue de réguler la tension d'alimentation du PIC repose essentiellement sur l'absence de variation des seuils IH et IL de l'entrée PIC T0CKI (Timer0) due au VDD.
Sans cette particularité, il ne serait pas nécessaire de réguler puisque le PIC peu s'adapter entre 2V et 5V sans problème.
Le PIC fonctionne ainsi avec son défaut normal de déviation en température de ses seuils (sans cumuler la déviation des seuils due à la variation de tension !)

Il est prévu 3 piles AAA de 1.5V (ou seulement 2 avec une réduction significative d'autonomie). On peut aussi utiliser des petits accus, mais au vu des longues durées d'autonomie, c'est un peu dommage.
Utiliser 3 piles permet une optimisation de l'énergie avec une tension d'arrêt un peu inférieure à 0.9V par élément.
Utiliser 3 piles permet aussi une meilleure puissance d'émission. Le régulateur de tension MCP1702-25 a un très faible drop_out et fournit une tension de 2.5V bien stable.
Il a aussi l'immense avantage d'avoir une consommation extrêmement faible et aucune nécessité d'établir un pont diviseur de réglage de la tension de sortie (Consommation du pont).

Pour la conversion A/D de la tension des piles on assimilera cette valeur à 2.56V, car l'erreur est insignifiante au vu des erreurs dues à l'impédance d'entrée très élevée de ce circuit.
Outre l'affichage toutes les 30 secondes, un flag de tension faible figure à l'octet d'incidents (Low_Bat)

3 La mesure du temps

Le temps est géré non pas par une horloge, mais simplement par la charge décharge d'un condensateur (C1 et C1_adj). C'est la très intéressante application des nouveaux PIC avec l'ULPWU (Ultra Low Power Wake Up). Ce temps ainsi établi n'utilise pas la ressource du CPU et une interrupt est générée en fin de décharge, ce qui permet alors de recharger le condensateur et de refaire un nouveau Cycle.

Cette méthode innovante est très économe en énergie mais n'a pas la précision d'un quartz, mais cela suffit largement, alors c'est donc une excellente méthode pour gérer un temps ne demandant pas une grande précision.

Une mesure très précise du temps n'est pas impérative, mais le temps permet de lancer l'émission radio à intervalles fixes, de lancer la mesure de la tension des piles et enfin de créer les différents délais nécessaires au programme.
(La mesure de tension des piles est peu gourmande en énergie (Temps CPU) aussi elle est faite juste avant la transmission radio).

On peut considérer qu'il faudra 20 scans de 50ms pour compter une seconde. Ce sera donc la "base un peu élastique" de la mesure du temps.

Ainsi on fera une émission radio toutes les 30 secondes, (Ainsi que la mesure de la tension des piles).

Je ne pensais pas à l'origine mesurer cette tension, dans le cadre des particuliers, mais cela reste facile et très peu gourmand en énergie, aussi je n'ai pas résisté.
Là aussi ça ne va pas tout seul à cause des problèmes de réduction d'énergie consommée (À voir au paragraphe de réglage / mise au point)
La mesure de la tension des piles sera faite juste avant l'émission radio.

En mode réglage (Voir au paragraphe "mise au point"), vous pourrez vous assurer de la bonne fréquence du PIC en pin 4 de J2 où vous devrez trouver un temps de 1 µs correspondant à Fosc/4 soit T=1/(Fosc/4).

Le temps est mesuré jusqu'aux "jours" pour avoir cette notion de 4 jours sans arrêt du compteur (Déclaration de fuite), mais aussi pour la RAZ du flag "il y a eu fuite" après 100 jours si la fuite a été rectifiée.

La mesure du temps est aussi nécessaire pour déclarer un compteur bloqué, et dans ce cas pour prendre en compte les vacances, on admettra que 50 jours représentent une valeur de la vie courante

4 Le circuit de la self

Je pensais à tort avoir parfaitement saisi toutes les particularités de ce circuit, mais si une grande partie qui avait  été dite reste vraie, des particularités peu évoquées sont pourtant bien présentes.

En effet il faut considérer le circuit sous DEUX PÉRIODES de temps DISTINCTES, à savoir 500µs et 50ms, soit des temps dans le rapport 100, ce qui est important.

Durant le premier temps de 500µs (Un peu plus en réalité suite aux INT), ce sont uniquement les réactances des condensateurs C2 et C3 qui imposent seules le potentiel moyen en pied de la self.
Ainsi plus C2 est grand, plus le niveau moyen va vers VDD. Parallèlement, plus C3 est petit, moins le niveau de pied de la self descendra vers le 0V. Il faut donc jouer sur ce rapport des condensateurs pour caler le point moyen qui entre dans la fenêtre logique de l'entrée PIC de comptage et avoir ainsi le meilleur comptage d'impulsions (Ce comptage doit être mesuré sans l'amortissement de la Cyble, et il en faut environ 40 à 50 (valeurs indicatives seulement)
Les condensateurs C2 et C3 n'impactent pas l'amortissement mais déterminent principalement le point de fonctionnement du pied de la self DURANT les 500µs.
Après ce temps de 500µs, ceci n'est plus vrai et les condensateurs se déchargent dans leurs résistances et seront presque à zéro au terme des 50 ms afin de reprendre un nouveau cycle de 500µs).

Durant ce temps très court des 500µs, la valeur des résistances intervient très peu et ne modifie que peu la tension moyenne. Ces résistances interviennent seulement sur des temps beaucoup plus longs et particulièrement celui de 50ms et surtout à la disparition de l'échelon de tension. C'est pourquoi leur valeur est identique, ce qui est alors sans réelle importance, du moment que la valeur est élevée.
(La forme du signal en pied de self n'a alors plus aucune importance à partir de la fin du front de tension puisque le comptage est alors terminé).

Durant ce temps de 50ms on a effectivement un pont diviseur compensé… Mais ce pont compensé doit retourner une valeur de tension très faible au bout de ce temps, de façon à ce qu'il n'y ait pas de surtension lors du prochain front appliqué sur le circuit LC.

Ce sont donc des choix importants qu'il convient de réaliser, et il sera nécessaire de les ajuster au besoin.

D'autre part, les résistances participent au facteur de qualité du circuit oscillant et donc à son amortissement (Et en conséquence du nombre d'impulsions…!).
J'ai donc augmenté ces valeurs de résistances pour un moindre amortissement, (D'autant que bon nombre de selfs ont des coefficients de qualité Q assez médiocres).

Il ne faut donc pas non plus que l'amortissement soit trop faible. Pourquoi ? Simplement parce qu'en 500 µs, il faut être capable de discriminer la présence ou non de la Cyble avec une marge de sécurité suffisante, en ayant un nombre d'impulsions élevé.
Pour ce faire les résistances ont un rôle faible, dans la partie des 500 µs, et il faut seulement ajuster principalement C3 pour avoir environ 50 à 70 impulsions sans présence de Cyble.

La nécessité d'avoir des selfs avec un "Q" élevé s'estompe un peu à la lumière de cette nouvelle vision du circuit, puisque cette fois j'ai simplement un Q de 155 au lieu de 170 pour le tout premier montage.
Le troisième montage fonctionne avec un Q voisin de 110 (Assez courant) et l'ajustement de C3 permet d'avoir suffisamment d'oscillations pour pouvoir bien discriminer la position de la Cyble.
C'est encore des essais à faire…! (Lors de la réalisation du 3ème  montage, celui-ci fonctionne correctement avec une telle valeur, mais je n'ai pas fait pour celui-ci les essais en température ! C'est tellement long à réaliser !) Le 1er montage était celui avec le PIC16F690.

4.1 L'hystérésis

L'hystérésis est le principe nécessaire pour éviter de conclure hâtivement sur des écarts d'une seule impulsion notamment lorsque l'on est à cheval sur deux valeurs (en bascule).
C'est aussi le principe qui évite de devoir rechercher un maximum (Très facile : c'est l'absence de la Cyble), mais surtout un minimum du nombre d'impulsions. (Beaucoup plus difficile : Présence de la Cyble au centre de la self). Voir courbes angulaires plus avant.

SCHLUM8_impulsions_temp_rature_diagrammeL'hystérésis permet également de s'affranchir d'un arrêt inopiné d'un compteur à n'importe quel instant suivant l'utilisation et la position de la Cyble.
Sur ce rappel de courbe, les limites d'hystérésis figurent en vert et en brun.
Chaque montage aura une réponse un peu spécifique, mais les récentes observations devraient permettre d'avoir un centrage "moyen".
Aussi je pense qu'il faut surtout voir l'hystérésis par le biais des seuils logiques de l'entrée T0CKI des impulsions.
Certes le facteur de qualité Q de la self interviendra aussi dans la mesure où on va viser un nombre maximum d'impulsions sans la Cyble.

(Les seuils sont donc les niveaux qui vont caractériser largement l'hystérésis). L'ÉCART entre les seuils va contribuer largement à l'amplitude des variations de température.

Conscient de cette difficulté, et pour éviter à tout un chacun de devoir faire cette opération, j'avais prévu juste avant ce problème de température de faire un auto-apprentissage initial, qui fonctionnait d'ailleurs très bien, mais dont l'inconvénient était d'être spécifique d'une seule température.
Or ce montage doit pouvoir fonctionner dans une bonne gamme de variations de températures, mais aussi avec un débit assez lent et c'était là un, des obstacles ! Un autoapprentissage "on-line" était difficile à réaliser car on ne pouvait pas demander de faire couler deux ou trois litres d'un seul tenant et de plus il fallait ajouter la notion de température.

J'ai également fait des essais avec un circuit avec une thermistance située dans le circuit d'amortissement, mais le réglage était très délicat pour un centrage au mieux de la plage de températures.

Maintenant le problème est devenu encore plus simple, puisque on détermine sur la courbe de température la valeur moyenne sur le delta haut et bas pour qu'une droite puisse toujours passer avec sécurité (Avec les hystérésis) entre les points hauts des mini et les points bas des maxi (Est-ce clair ? pas certain ! Voyez la courbe des températures c'est plus parlant !)

Ainsi lorsque cette droite coupe l'une des courbes (Avec les marges de l'hystérésis) cela est la limite de température, ici 67.5 degrés)

La valeur moyenne est fixée à 42 impulsions (À quelques impulsions près)

L'hystérésis est calculée ainsi :
(Maxi (courbe rouge)-Mini (courbe bleue)/2= Valeur moyenne
Seuil bas = Mini+Valeur moyenne-3
Seuil Haut= Maxi-Valeur Moyenne+3

(D'où un delta entre seuils de 6)

Les seuils seront toujours au moins espacés de 3 à 4 impulsions de la valeur moyenne (Suivant les tests programme), ce qui assez sécuritaire. Il est même possible sur cet exemple de monter à 4 ou 5 impulsions en limitant assez peu à la température haute limite.

Pour vérifier en fonctionnement ces dispositions, le programme principal recherche  maintenant à chaque scan, les valeurs mini et maxi du nombre des impulsions et compare toutes les heures avec les seuils hauts et bas de façon à ce qu'il y ait un nombre minimum d'impulsions d'écarts.
Pour assurer un rafraîchissement de ces valeurs, les valeurs mini et maxi sont réinitialisées également toutes les heures.
Deux bits de l'octet de contrôle sont affectés à ces éventuels risques d'erreurs. (Perte_LB et Perte_LH)

Je reconnais bien volontiers que l'ajustement des condensateurs et le fait de se tenir légèrement en dessous de la valeur maximum du nombre d'impulsions n'est pas très aisé, (surtout quand le Q n'est pas "terrible"), mais la simplification est à ce prix. Vous pourrez tout de même faire bon nombre de réglages grâce à ces deux bits, surtout si vous n'avez pas d'enceinte thermique, et si vous n'habitez pas au Sahara, il n'y aura pas trop de problèmes !
(Le troisième montage a un nombre d'impulsion maxi plus faible, mais n'a pas encore donné de signes de fatigue à ce niveau, et il n'a pas reçu le baptême de l'enceinte thermique).

5 Le schéma

N'attendons pas plus, voici ce que les spécialistes attendent...
Le montage est simple et des composants du schéma ne doivent PAS être montés, comme R3, C7, C8, X1 prévus seulement pour une éventuelle plateforme. (La précision est malheureusement consommatrice d'énergie !).

SCHLUM86_schema


J'ai essayé de rendre le schéma totalement compatible entre cette version pour particuliers et une éventuelle future version comportant le relevé à date fixe pour les professionnels.
Pour les particuliers un certain nombre de composants sont inutiles et n'auront pas besoin d'être installés. (En cas d'une future version, le logiciel serait évidemment différent puisque le hardware le serait également).

L'ICSP est prévu pour coder le programme, puisque cette version est totalement en CMS. L'opération de mise au point sera délicate pour la bonne santé du CI, aussi des pins de connecteurs ou des petits ponts de soudure sont prévus pour rétablir les liaisons coupées pour la programmation.

Cette coupure est impérative notamment sur RA0/ICSPDAT qui comporte un condensateur (C1).
Pour RA3/MCLR*/VPP, la coupure est aussi impérative (+12V) mais en fonctionnement, cette entrée seule devra être raccordée à R7 pour éviter une surconsommation d'entrée en l'air.
RA3 servira également à vérifier que l'ILS ou le Switch sont ON et que l'on peut lancer le paramétrage
OSC1 et 2 n'étant pas utilisés, ces I/O seront mises en sorties, ce qui évitera d'avoir à fixer le potentiel.

La mise à l'index, c'est le cas de le dire !
C'est un point délicat qui oblige à envoyer des données pour synchroniser compteur mécanique avec l'électronique.
Même pour le modèle de particuliers, cette synchronisation est nécessaire pour les raisons déjà évoquées. Il faut donc maintenir RX et la photodiode ainsi que ce qui est autour (R7, R14 et l'ILS)
Comme on dispose de la réception RS232 par photodiode, c'est encore la méthode la plus facile et la moins coûteuse pour aligner les index.

(Pour ceux qui n'ont pas trop saisi le principe c'est de la RS232 avec une LED qui assure cette programmation de N° de compteur et de mise à l'index. Voir aussi le synoptique de début c'est très parlant)

Cette opération nécessite toujours le petit montage radio sur PC avec le logiciel Terminal de Bray++.

En résumé, dans cette version pour particuliers, l'oscillateur RA4/RA5 n'est pas à installer.
Éventuellement, le transistor MOSFET T2 sera supprimé également, car il ne sert qu'à l'envoi de TOP index dans une optique plus professionnelle.

6 Programmation ICSP

Les PIC en CMS ne sont plus programmables "sur table" de façon simple et unitaire par l'amateur par absence de connectique adaptée, mais seulement "in_situ".
Aussi c'est seulement après montage et soudure sur le CI que l'on peut programmer. Les circuits et tensions de programmation doivent être disponibles sans la présence de composants pouvant perturber cette programmation.
Plusieurs solutions sont possibles, mais la plus simple consiste à réaliser des coupures de runs pour n'avoir que la partie PIC sans autres composants.
Cette isolation est assez contraignante et il n'est pas toujours possible de s'en affranchir. Dans notre cas, l'utilisation de l'ULPWU oblige à cette coupure, tout autant que pour le VPP.

(Certes on aurait pu affecter MCLR*/VPP uniquement à cette fonction, mais je préfère toujours garder des I/O au cas où …!)

Il est également possible de ne pas monter certains composants qui posent problèmes. Je prends l'exemple de ICSPDAT sur le PORT A0 qui est aussi l'ULPWU. Ne pas monter C1 devrait peut-être, être possible pour ce signal bien qu'il y ait la résistance de 220 Ohms qui reste finalement assez faible et ne devrait pas faire obstacle. (Supposition à vérifier)

La partie des tensions est plus délicate et notamment pour la tension de programmation de 12V qui pourrait détruire des composants. On voit sur le schéma qu'il faudra impérativement couper le run de RA3 car on pourrait réinjecter du 12V par une résistance assez faible R7 vers l'entrée RC5 et peut-être même risquer le court-circuit au 5V si jamais l'ILS était en fonction ou si la photodiode lâche en inverse !

On voit que ce n'est pas toujours très simple et cela se complique encore si le PIC n'est pas alimenté en 5V mais est alimenté à une tension plus faible par un régulateur.

Dans ce cas, par les connexions ICSP (VDD), on va alimenter le montage par le VDD ce qui ne pose pas de problème en général pour l'ensemble des composants mais on pourrait aussi alimenter le régulateur par sa sortie, sans que son entrée reçoive le moindre électron !
C'est à priori très mauvais et le résultat est toujours très incertain sur la vie du régulateur (Peut-être protégé ? mais on ne le sait que rarement !)

Deux solutions :

Prévoir de couper la sortie de régulateur lors de la programmation, (C'est le cas par résistance 0 Ohms) ou insérer une diode Schottky en // sur entrée et sortie de régulateur, ainsi celui-ci reçoit presque la même tension d'entrée que la sortie, et cela limite les réalimentations par les sorties avec souvent des courants excessifs ("Tuyau" donné par le copain Riri).
Bref beaucoup de petites choses à penser avant de lancer le 12V et la programmation !

SCHLUM8_coupuresAinsi qu'il a été déjà évoqué, on soudera directement le PIC qui sera alors programmé par ICSP. A cette fin, des ponts de soudure devront être omis : sortie RA3 et entrée/sortie RA0 (ULPWU), 0 Ohms régulateur.

Sur la photo ci-contre on voit 2 pins et des fils en biais, ce sont les ponts qui évitent de détruire le CI ou de faire des malheurs avec le fer à souder.
C'est finalement une idée qui va bien et qui évite d'avoir un véritable strap et qui assure une bonne continuité électrique.
(On profite aussi de cette photo pour voir l'ILS et la photodiode (Juste en dessous des pins))

Le reste des coupures est seulement constitué du strap J3.
Les 5 points de connexion sont donc J3 pin 1 et 2 pour la masse et CLK, J2 pin 1 pour le VDD, point de soudure pin 13 pour le signal DATA et point de soudure pin 4 pour le +12V.
Les ponts de soudure sont maintenant un "mix" de pins avec "proximité". C'est plus simple à réaliser, et un fil fin en biais évite de devoir "attaquer" le CI à chaque modification.

(Il faudra veiller à ce que les branchements ne soient pas réalisés un par un, sous tension mais soient faits hors tension du programmateur un par un).
Après programmation on rétablira les points de soudure et les composants à installer.

J'aurais préféré utiliser un connecteur dédié, mais c'est à la fois une question de prix et de place pour un connecteur utilisé seulement 1 fois (en fonctionnement normal, et la principale difficulté réside dans le fait de trouver un connecteur "nez de carte" à un pas assez fin de 5 broches, ce qui élimine le prix d'un connecteur sur chaque montage, (Mais ne résout pas les coupures obligatoires).
Mon précédent nez de carte au pas de 2.54 était vraiment trop "mastoc" et difficile de plus à placer dans ce contexte.
(On remarquera qu'un connecteur ne résout pas les coupures nécessaires à la programmation ICSP)

Je ne suis cependant pas satisfait de la méthode des fils volants pour les 5 signaux ou alimentations, car le risque d'une inversion reste élevé et une connectique  serait tout de même plus sécurisante. En attendant de trouver la solution miracle...

7 Réalisation

La réalisation est un circuit imprimé un peu circulaire qui n'offre pas de difficultés particulières, hormis qu'il reste fin, avec deux passages "tendus" entre broches du PIC.
C'est un petit circuit qui comporte les 3 piles en partie gauche, fixées par des colliers rilsan. J'ai tout de même prévu un petit ILS qui sera associé à la sonde comportant la LED de programmation, le tout pouvant être fixé par vis ! (J'ai prévu le trou dans le CI, mais AUCUN composant ne doit dépasser sur la face composants puisque tout est en CMS ou placé tel quel ! (Alors une tête de vis !...C'était une erreur)
Autre erreur sur le plan d'implantation ci dessous R5 fait 2.2M aulieu de 680K.

SCHLUM8C_implantA ce stade le circuit est dans sa réalisation définitive, et la programmation (ILS et photodiode) sont regroupés en face avant. C'est plus simple et plus accessible que vers la partie visible de l'index du totalisateur.
Les faces latérales et le fond de la photodiode sont peints en peinture noire au cas où vous utilisiez tout de même des switchs à bascule pour éviter de trop consommer d'énergie en cas d'oubli.

La réalisation du petit circuit émetteur récepteur pour le PC est un peu particulière à cause du connecteur mini USB-B.

Le typon est inverse en terme de miroir, car le circuit général (Majoritairement en composants discrets standard)RADIOPC5_SCHLUM86_Typ
est vu côté composants alors que le mini circuit du connecteur est vu côté soudures.

De plus ce mini circuit est seulement fixé par les traversées de masses aux 4 points de masse du connecteur USB ainsi que par la seule sortie VCC (5V) utilisée.
Les liaisons clock et data sont simplement présentes, mais non utilisées.
(Ce type de composant représente ma limite pour souder au pas de 0.87 mm SANS solder resist et seulement à la loupe)

Si vous voulez directement le fichier de l'ensemble des typons en .TIF le voici à télécharger RADIOPC5_SCHLUM86_Typ.TIF.

Contrairement à l'habitude, l'ensemble schémas et typon sont cette fois exempts d'erreurs, et tout fonctionne normalement sans aucune modification !

8 Mise au point

Pour mener à bien cette réalisation, il faut effectivement maîtriser un peu l'électronique et les circuits imprimés, posséder au minimum un multimètre numérique et …pratiquement un oscilloscope et savoir souder.

Cependant pour donner une chance à ceux qui ne sont pas très outillés, le micro programme développé pour le PIC  inclut une branche spécifique de mise au point qui permet de contrôler et d'ajuster les différents réglages nécessaires. (Mode réglage ou de Mise au point)

Ces réglages sont dans l'ordre des paragraphes qui suivent, et il faut donc commencer par régler L'ULPWU qui détermine la période de scan.

Cette mise au point est cependant délicate, car toute observation entraîne la modification des circuits et c'est pratiquement toujours par une méthode INDIRECTE et grâce au microprogramme que l'on peut vérifier ce qui se passe.

Il est évident que le mode réglage est un mode assez gourmand en énergie puisque la radio fonctionne 30 fois plus qu'en fonctionnement normal.

8.1 Mode réglage (branche du logiciel)

Pour entrer dans ce mode de réglage, j'ai prévu un cavalier J3 1-2 qui devra être mis ainsi uniquement durant la phase de Mise Sous Tension. Une fois la tension appliquée il devra être retiré de cette position et replacé en 2-3 pour pouvoir mesurer la tension des piles.

Pour préserver les I/O encore disponibles, j'ai préféré utiliser cette entrée existante en la forçant à 0. J'ai choisi l'entrée ANA de mesure de la tension batterie. Effectivement cette entrée en fonctionnement ne pourrait pas "fonctionner" si elle était réellement à zéro, (Cela sous-entendrait qu'il n'y aurait pas de tension d'alimentation. !!!)

Dans ce mode, le numéro de compteur et de l'index, ne sont pas demandés, et le premier message d'accueil spécifie explicitement "MAP" comme Mise Au Point. L'index part alors toujours de zéro et les informations de mesures débutent sans attendre.

Le nombre des impulsions est envoyé en RS232 toutes les secondes, avec en tête un caractère qui évolue de A à Z  pour supprimer l'éventuelle impression de stagnation de l'écran lors de mesures identiques.

NOTA : Dans ce mode de réglage, on ne regarde plus seulement durant 500 µs les impulsions mais durant 1000µs, ce qui permet d'ajuster sans être véritablement limité (On ne monte jamais jusqu'à 100 impulsions).

8.2 Réglage de l'ULPWU

Ultra Low Power Weak Up permet d'assurer le temps de 50 ms, car on manque d'un Timer (Off-line) (Le Timer 1 (On-line) étant affecté aux 500µs du temps de comptage des impulsions issues du circuit oscillant amorti LC et ce PIC ne comporte pas de Timer2).
L'ULPWU est une excellente méthode peu gourmande en énergie qui permet de réveiller le PIC et de ne pas avoir d'oscillateur en fonctionnement.

Là aussi il est impossible d'insérer le scope sans modifier considérablement le fonctionnement et ce temps de 50ms.
Aussi c'est une méthode INDIRECTE qui sera utilisée. A cette fin, on regardera simplement les impulsions de commande sur la gate de T1 (Pin 10 du PIC).
La sortie drain de T1 est également possible mais moins précise puisque en fin de délai, c'est une exponentielle de décharge et qu'en plus cela modifie la fréquence et l'amortissement du circuit LC, ce qui n'est pas un problème réel dans ce réglage non critique, mais mieux vaut avoir un "beau signal".
On ajustera donc C1 pour que la période de boucle soit bien de 50ms (Par C1 adjust).

Le temps de 50ms n'est pas très critique, mais comme tout est lié, il est préférable qu'il soit dans les valeurs prévues, car si tout est approximatif, il finirait  par y avoir des problèmes.

Ce temps permet de "fabriquer" des secondes, minutes et des heures qui n'ont cependant aucune grande précision en regard de la précision d'un quartz. Ces temps sont seulement des bases de travail et d'articulation des différents usages internes.

Ce temps de 50ms est d'ailleurs entaché d'imprécision de façon native par la température, mais ce point ne perturbe pas véritablement, car des temps de 50ms à 5% sont largement suffisant pour exécuter les différents délais.
(Mesure effectué, je n'ai constaté aucune variation mesurable au scope entre 20 et 70°C, j'ai même un doute sur ma mesure !)
 
Comme il n'y a pas à se synchroniser sur le temps GMT comme dans le cas des relevés radio à date fixe (Voir l'article), ces variations possibles ne sont pas gênantes et les différents timings sont en conséquence.
Le seul impact avec conséquence est dans la modification du même ordre de grandeur, de la limite de vitesse de rotation maximale de la Cyble.

L'ajustement par C1_adjust se fera avec une boîte de décade ou simplement avec des fils volants et des composants standard. Je conseille de placer une première valeur de 3.3nF et d'ajuster ensuite un peu en dessous du maxi. (Des petits fils soudés une seule fois permettront ces ajustements de valeurs sans détruire le CI)

NOTA : L'observation en pin 10, (Gate de T1), permet de mesurer de façon indirecte la durée du délai ULPWU de 50ms.
La valeur de 500µs est en réalité à peine plus élevée, puisque le temps d'entrée dans la routine d'interrupt est ajouté.

8.3 Réglage de la fréquence des oscillations

Ce réglage est malheureusement à faire à l'oscilloscope, mais en faisant attention aux résultats, car l'entrée du scope est généralement de 13 à 20 pf pour 10 Mégohms et modifie un peu la fréquence. Cette variation n'est pas dramatique, mais il est préférable de le savoir pour régler cette fréquence un peu en dessous de 100 KHz pour qu'une fois le scope retiré, la fréquence soit correcte.

Pas d'affolement cependant, car un décalage léger n'empêche pas le fonctionnement, et si vous utilisez une self L1 de 5 mH ou très proche, le condensateur C4 de 470 pF suffit pour une première vérification si l'on a pas d'oscilloscope.
(La fréquence dépend de la racine du quotient  L/C et la variation reste donc faible pour des valeurs proches).

Cette opération a la précision du rapport du condensateur d'accord C4 face au condensateur d'entrée du scope (#15pf). Ainsi la valeur exacte sera précise à quelques % ce qui est suffisant.

Le principe même des courants de Foucault donne une très bonne indépendance de la mesure relativement à la fréquence des oscillations amorties.

Le micro programme ne peut pas, à la fréquence processeur de 4 MHz assurer un comptage précis des alternances à 100 KHz et en déduire la fréquence du circuit oscillant, d'autant que la fonction de Capture nécessaire à cette précision n'existe pas sur ce modèle de PIC.
"Bidouiller" en assembleur pour une précision médiocre n'en vaut donc pas la peine.

L'ajustement se réalisera avec des valeurs standard car la variation de fréquence avec une self de 5mH reste limitée et autorise cette simplicité.

8.4 Le réglage du nombre d'impulsions

C'est un réglage essentiel pour un bon fonctionnement de l'ensemble. Il est utile de bien comprendre le circuit, qui, si il semble assez simple à priori, a un fonctionnement plus compliqué qu'il n'y paraît, et j'avais moi-même sous-estimé cette complexité dans les montages précédents.

Le principe de base est de fixer un potentiel de référence au circuit LC qui oscille en ondes amorties sur un échelon de tension délivré par T1. Ainsi c'est sur la base des seuils de l'entrée TMR0 que l'on comptera les oscillations.
Il faut donc caler le point médian des oscillations sur ce seuil pour avoir un nombre d'impulsions comptées suffisant mais aussi un écart suffisant avec et sans la Cyble.
Ce nombre d'impulsions (Principalement le maximum) a été déterminé sur les courbes de température en fonction des courbes mini et maxi d'impulsions.
C'est surtout l'écart (DELTA) disponible qui permet l'application des seuils d'hystérésis tout en évitant de se focaliser sur le mini d'impulsions qui est très étroit (dû principalement aux dimensions de la self relativement au secteur Cyble, mais aussi au fait que la Cyble n'a pas 180° mais seulement 120° angulaires environ.

La difficulté vient du fait que le circuit doit osciller librement durant environ 500 µs à une fréquence de l'ordre de 100 KHz, puis il se "repose" durant tout le temps restant sur 49.5 millisecondes.
C'est ce rapport de temps de l'ordre de 100 qui régit largement un fonctionnement double et très différent.

En effet sur le front de l'échelon de tension le potentiel instantané en pied de la self du circuit oscillant série est déterminé EXCLUSIVEMENT par le rapport des réactances des condensateurs C2 et C3. Ce point est capital dans la compréhension.
Les résistances R4 et R5 ont une influence quasi nulle À CET INSTANT de départ.

La difficulté réside dans le fait de trouver des rapports de capacité voisinant le maximum d'impulsions (Self écartée de la Cyble).
Ce rapport est à ajuster, non pas à l'oscilloscope car cela modifie l'amortissement du circuit LC et un peu la fréquence.
Pour cela le programme possède le mode "Réglage" qui délivre en RS232 le nombre des impulsions lues par l'entrée de comptage RA2 (T0CKI).

En mode réglage la structure de trame est la suivante :

Une lettre de A à Z, suivie du nombre d'impulsions instantanées, puis du mini et enfin du maxi.
Mini et maxi sont remis à zéro toutes les 30 secondes, pour permettre d'évaluer les réajustements nécessaires sans requérir un nouveau démarrage programme.

Toutes les 30 secondes, une trame "MAP" plus longue, indique en plus la valeur de l'index et surtout les litres ainsi que la valeur de la tension des piles à 3 digits, ce qui permet l'ajustement pour un centrage au mieux des tensions entre 5V et 2.7V (3x09V par élément). L'octet de status en hexa est également présent en fin de trame.
Format :

G47 42 47        ((1 ligne / sec.), valeur instantanée, mini et maxi, RAZ mini et maxi sur 30 secondes)
H47 42 47
H47 MAP 000000.063 4.78 00    (trame toutes les 30 secondes)

I47 42 47
J47 42 47

Tout essai fait à l'oscilloscope sur RA2 (T0CKI) donnera en réel de faux résultats (Les oscillogrammes délivrés ici sont précisément dans ce cas pour l'image, mais la structure générale reste correcte).

Seul le microprogramme de réglage permet d'effectuer les mesures exactes du nombre d'impulsions. Ce point est IMPORTANT, car il n'y a pas d'autres possibilités pour cette mesure.

Les résistances R4 et R5 ont plusieurs rôles et permettent de fixer les potentiels au niveau courant continu. Elles permettent également un amortissement additionnel du circuit LC dans le cas où le Q de la self soit trop élevé (ça n'arrive pratiquement jamais…!!!)
Elles permettent aussi et surtout la décharge des condensateurs C2 et C3 pour qu'au bout des 50 ms on approche de très près la valeur zéro.
Ce point est important car il conditionne une sécurité du circuit en évitant une surtension lors de l'échelon de tension suivant qui au lieu de partir de zéro partirait plus haut et pourrait donc créer des problèmes de surtension.

(Les diodes de protection des entrées PIC sont cependant largement suffisantes pour éviter ce genre de choses et aucune protection anti-surtension n'est nécessaire avec les valeurs indiquées).
Enfin dernière implication de ces résistances : Elles vont jouer après les 500 µs sur la ligne de base de l'exponentielle décroissante de décharge des condensateurs. Dans le cas d'impulsions après ce temps, celles-ci suivront alors cette ligne de base d'une décharge exponentielle.

Le fait que cela représente un pont "compensé" est vrai sans l'être, car un créneau appliqué au sommet (Sans la self) ne donnerait certainement pas un signal identique en sortie du fait de la différence des constantes de temps. (Il a peu d'action durant ces 500µs, durée beaucoup trop faible face à la période de 50ms (Ou des constantes de temps).
Ainsi au vu des valeurs C2 et C3 assez proches, les résistances peuvent être égales et les valeurs des résistances du schéma ne sont pas impératives.

NOTA 1 : D'une façon générale, toutes les résistances sont de forte valeur pour limiter la  consommation d'énergie, (Y compris le circuit LC qui restitue la charge après les 500µs... Rien ne se perd , rien ne se crée...etc...)

NOTA 2 : Normalement le mode réglage est suffisant pour vérifier, mais accessoirement, durant ce mode, la LED D2 est alimentée par une petite boucle de comptage située juste après l'acquisition du Timer0. Ceci permet donc de compter les impulsions au scope.
(Le Temps est trop bref pour un allumage, mais le nombre est cette fois exact -comme en RS232- sans la récurrence qui est directement issue du temps d'une boucle du PIC)
De plus chaque impulsion sur la LED dure 1µS à 4 MHz et permet donc aussi de vérifier en même temps, que l'oscillateur interne fonctionne correctement à la bonne fréquence (OSC_INTOSC)

8.5 Réglage de la tension des piles

Ici aussi, les valeurs des résistances du pont diviseur R13+R13B et R8 sont très élevées pour limiter la consommation et éviter de devoir faire une coupure du circuit lors de la mesure de la tension des piles.

Ces valeurs très élevées sont gênantes, car elles induisent des problèmes de justesse des mesures. En effet un courant de fuite de 500nA dans les entrées ANA perturbe la mesure et intervient d'autant plus aux faibles tensions/courants en augmentant artificiellement la mesure.

Ce choix est pourtant assumé et c'est pour cette raison que les décimales de la tension des piles affichée en fonctionnement normal sont seulement d'une décimale après le point.
Les écarts (non linéaires) varient pratiquement de 10mv entre 5V et 2.7V (Tension des piles).

Pour pouvoir mesurer avec de telles valeurs de pont diviseur, il y a lieu de mettre un condensateur (C11) qui permettra de maintenir la valeur courante lors de l'appel de charge interne au PIC au moment de la sélection et du lancement de la mesure. Ce condensateur devra avoir de très faibles pertes.
De plus, pour perturber au minimum, la sortie du pont diviseur sera raccordée directement à l'entrée RA1, toujours à cause des courants d'entrée ANA pourtant très faibles, mais qui au vu des fortes résistances du pont engendrent des tensions parasites.
(Le revers de la médaille est une charge initiale lente pouvant faire une première mesure hors tolérance)

On aura compris à ces explications que la valeur du pont diviseur n'est qu'une valeur approchée et qu'il est nécessaire de l'ajuster par exemple en coupant "la poire" en deux entre les deux limites 5V et 2.7V.
Je rappelle que 2.7V est la tension mini pour laquelle les 3 piles sont à 0.9V de tension d'arrêt. 5V reste la tension maxi normalement applicable. (Cette tension peut cependant être supérieure et la diode D4 assure alors la protection (Avec les diodes d'entrées du PIC)

Compte tenu du régulateur de tension et de son très faible drop_out, on peut considérer que la véritable tension d'arrêt est de 0.88V (Encore meilleur)

Vous réglerez donc R13 avec des résistances série R13B, car ces valeurs très élevées empêchent pratiquement la mise en // toujours plus simple.
Ce réglage sera à faire avec une boîte de décade ou en plaçant des fils volants avec des composants discrets standard. Une résistance d'ajustement série R13B est prévue sur le CI à cette fin.

8.6 Erreurs à ne pas commettre

Les erreurs qui suivent, ne sont PAS dangereuses pour le matériel, mais induisent de fausses interprétations.

- Mesurer au scope, le nombre d'impulsions en pin 11 du PIC. Cette mesure n'est pas dangereuse mais est toujours fausse. Cette mesure n'est utile que pour vérifier approximativement la fréquence des oscillations amorties. Placer le scope sur cette pin 11 modifie surtout, outre la fréquence, l'amortissement du circuit LC et donc le nombre d'impulsions réellement actives au niveau de l'entrée T0CKI.
Il faut impérativement utiliser la branche réglages du programme pour avoir des résultats corrects

- Mesurer au multimètre ou au scope la tension en pin 12 du PIC (Tension du pont diviseur des piles) est également une mesure fausse du fait des impédances élevées. Utiliser pour ce faire la branche "réglage"du micro-programme.

- Mesurer le temps de scan de 50ms en pin 13 du PIC est aussi une erreur qui va modifier très largement le temps observé. Utiliser la pin 10 du PIC et mesurer le temps correspondant à la récurrence des impulsions négatives de 500 µs.
(Le temps de 500µs est directement attaché au Timer1 et dépend donc du temps de l'oscillateur interne du PIC)

- Ne pas oublier de percer le circuit imprimé pour laisser passer la self, de façon à ce qu'elle soit en contact direct avec le plastique transparent du compteur face à la Cyble . Son immobilisation devra être parfaite pour éviter des erreurs.
A ce sujet un léger dépassement de la surface inférieure du circuit imprimé sera même utile en cas de léger bombage du circuit époxy. Quelques 1/10 seront bienvenus, tout en veillant au parallélisme des surfaces de la self et du compteur.

- Attention également si vous repreniez le circuit imprimé vous même, à ne pas mettre de plan de masse autour de la self ...! Ce sera vu comme une spire en court-circuit !!!  ("J'ai déjà cotisé" pour cette dernière erreur…!)

- Erreur dangereuse cette fois, lors de la réalisation, les résistances 0 ohms qui passent au dessus du VDD ou de la masse sont dangereuses, et il est nécessaire avant de lancer la programmation de vérifier qu'il n'y a pas de court-circuit entre GND et VCC (J'ai évité le piège ouf !)

NOTA 1:
SCHLUM8_1Certains anciens compteurs de la marque SCHLUMBERGER comportaient une surépaisseur annulaire autour de la lucarne de la Cyble…Ceci est incompatible avec le positionnement direct de la self. (Je l'ai taillé au cutter pour mes essais sur ce compteur de récupération). Voir photo
Si tel est le cas, vous devrez élargir le trou dans le CI pour passer au travers de cet anneau ou caler le CI et descendre la self contre la partie transparente.
Sur un compteur officiel AEP, vous ne devez pas modifier cette surépaisseur sous peine d'ennuis avec le distributeur.

NOTA 2 :
Sur les compteurs de cette marque, la vis de fixation du CI est obturée par une partie "détachable". Vous pourrez y avoir accès en cassant les 3 attaches "faibles" la reliant au boîtier principal, ainsi une vis M4 pourra immobiliser correctement le CI sur la tête.
(Bien que cela soit conçu pour cet usage, il est peut-être préférable de demander l'autorisation au distributeur d'eau, car certains "privés" sont particulièrement suspicieux sur l'aspect "compteur"…
Attention également à la longueur de la vis qui ne doit pas toucher le fond du filetage sous peine de casser le totalisateur (Dans cette éventualité, vous seriez responsable !). (Utiliser une vis nylon serait très bien).

8.7    Précisions sur le circuit oscillant

Ce paragraphe a été ajouté le 4/12/2015 suite à la mise au point d'un deuxième montage...
Pour la simple duplication d'un circuit déjà mis au point, on peut dire que j'ai eu quelques soucis, aussi je les cite ici, car je m'étais laissé endormir par l'habitude de composants de qualité ! C'était un rêve !

J'avais bien déjà évoqué les deux condensateurs C3 et C2 qui forment un pont diviseur chargé de centrer le point de fonctionnement dynamique, mais le problème de fond n'était pas là. (ondes trop vite amorties).

Jamais je n'ai vraiment parlé des condensateurs d'une façon générale mais seulement de la self, et c'est un véritable tort, car mon Q mètre ayant rendu l'âme, j'ai du racheter un pont de mesures qui donne tout, y compris l'âge du capitaine...
Heureusement car sans ce nouvel appareil je pense que je n'aurais pas pu aboutir.

Que s'est-il donc passé pour que le deuxième montage ne fonctionne que très faiblement ?
J'ai tout de suite incriminé la self qui pourtant n'était pas inconnue puisqu'elle avait déjà donné satisfaction sur un montage d'essais.
Alors sur l'appareil fonctionnant parfaitement, j'ai retiré la self et je l'ai placée sur le nouveau montage qui n'a pas mieux fonctionné (Ondes trop vite amorties 14 à 20 impulsions sans Cible).

J'ai donc suspecté l'entrée INT du PIC utilisé qui amortissait peut être trop le circuit. Après vérification ce n'était pas cela ! J'ai aussi souvent parlé du coefficient de qualité de la self (Q=Lw/R) mais à la résonance le circuit série est parcouru par un courant et SI le condensateur n'est pas de bonne qualité l'amortissement sera lui aussi important.

C'est donc le cas que j'ai pu mettre en évidence grâce à ce nouvel appareil de mesure.  Cela se comprend aisément après coup , car la très faible énergie en ondes non entretenues est rapidement dissipée dans tout ce qui peut faire obstacle au passage du courant et en l'occurence les fuites du condensateur du circuit LC. (Toutes fuites ramenées à une résistance // théorique)

Je pensais à tort qu'un condensateur (CMS) était parfait, et j'ai eu la désagréable surprise de constater que peu de ceux-ci ont un Q élevé. Pour un bon condensateur il faut au moins un Q de 200 (Q=1/RCw=Lw/R lorsque l'on est à la résonance (LCw²=1))

J'ai donc trié ces condensateurs et trouvé un bon modèle (Q>1000) et là ! surprise l'amortissement avait très fortement régressé ! C'était bien le condensateur C4 le principal fautif !

Cette information vous évitera donc des heures de recherches incompréhensibles, car vous devrez avoir de bonnes selfs, tout autant que d'excellents condensateurs, surtout pour C4 mais d'une façon générale pour tous les condensateurs "pointus" (C2,C3,C4,C1)
C11 devra aussi être assez parfait à cause des résistances très élevées utilisées, pour le reste c'est du découplage traditionnel sans soucis particuliers.

J'ajouterai que la mise au point d'un circuit en CMS est délicate car le circuit souffre beaucoup de ces dessoudages. Sur ce genre de mise au point il est préférable de fixer les condensateurs en l'air avec de petits fils et de figer sur CI, seulement lors de la mise au point finale.

9 Conclusions

Alors, si le cœur vous en dit, vous pouvez vous lancer dans cette réalisation qui ne coûte pas très cher. Il faut cependant ne pas avoir la "Parkinson", car c'est réellement très fin. On a beau dire que les CMS c'est facile… Oui c'est bien, mais une mise au point en CMS est très délicate car toute particule de soudure non détectée est un risque ! (Le plus souvent suite à une modification ou au remplacement d'un composant)
L'absence de solder resist est réellement un handicap.

Alors il faut surtout être très soigneux et éviter d'avoir à dessouder, car le circuit est vite bousillé !
Réaliser cette tête radio ne sert à rien si vous ne faites pas le récepteur radio…
OUI il faut commencer par le récepteur radio

En ce qui concerne le programme écrit en assembleur, je le donne tel quel en .HEX à tout particulier qui en fera la demande. Je suis désolé de ne pouvoir donner le source, car je développe seulement pour les particuliers bricoleurs et non pour les entreprises…
La description du hard est déjà un beau cadeau général dont la mise au point a été longue et difficile pour arriver à une solution qui soit acceptable en température.

J'ai tout de même un regret qui est celui de ne pas avoir utilisé un récepteur radio montant au moins à 4800 Bps. La vitesse de transmission conditionne largement la dépense énergétique et donc l'autonomie.

De même, ce PIC 16F688 est capable de travailler à 8 MHZ à 2V. Cette possibilité autoriserait de doubler la fréquence des oscillations amorties en diminuant d'autant le temps de travail du CPU, mais il faut recommencer tous les essais avec de nouvelles selfs plus petites (rac(5) --->2.2mH ?) J'arrête là !

Changer de fréquence CPU en cours de fonctionnement est délicat à cause de la RS232 qui est incompressible à 2400 bps et qui est à cheval sur plusieurs scans
Commuter sur une vitesse lente lors de la RS232 est difficile car on peut se trouver à des endroits très différents du programme nécessitant l'horloge "normale", (Notamment en ce qui concerne les Timer 1 et Timer 0!)

La LED, bien que présente, n'est pas réellement utilisée pour des raisons d'économie d'énergie.
On voit bien à ces regrets que le sujet est loin d'être épuisé…

Alors commencez par le début, en réalisant la partie récepteur radio que vous pourrez contrôler avec le mode écho….
et à vos fers à souder !

bricolsec/lokistagnepas

10 Suivi

Je vais faire le point après plusieurs semaines de contrôle...

Le principe utilisé était délicat, il faut le reconnaître, mais contrairement à toute attente, le résultat est au rendez vous et pas un litre de différence après un mois de fonctionnement n'a été observé.

On peut remarquer que les délicates conditions climatiques étaient au rendez-vous et qu'il n'y a pas eu de déviation de résultats ni d'erreurs. le fonctionnement est bien entendu permanent depuis pas mal de temps.