Capacimètre rapide

P1090915


1    Le schéma de départ
2    Le Cahier des charges
3    Les grands principes
3.1    Le 555 / TS555
3.2    Fonctionnement général en monostable
3.3    Commande de démarrage du monostable
3.4    Commande Reset.
3.5    La pin 5 CV (Control Voltage)
3.5.1    Principe et précisions en mesure de résistances
3.5.2    Les gammes de résistances
3.6    Les mesures sur le TS555
4    Multiplexage des résistances "R"
5    La mesure analogique
6    Résistances
7    Condensateurs
8    Les cas de mauvaise détermination de type R/C
8.1    Cas de mesure d'un condensateur avec à la place une résistance
8.2    Cas de mesure d'une résistance avec à la place un condensateur
9    Alimentation et tension d'utilisation
10    I/O et Choix du PIC
10.1    I/O pour le circuit de mesures
10.2    I/O pour le display 2 lignes
10.3    I/O généralistes
10.4    Choix du PIC
10.5    Schémas

11    Réalisation pratique
12    Conclusions

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 est un peu raté tant dans la forme que sur le principe ainsi que dans le logiciel, il a traîné en longueur pour diverses raisons, et ce n'est jamais bon, mais je le livre tout de même car il y a cependant un peu de "grain à moudre", alors à bon entendeur salut….

J'avais pensé au début du projet donner la démarche complète du commencement de la conception pour arriver jusqu'à la solution fonctionnelle finale, mais je me suis rendu compte par les corrections successives dans des temps très espacés, que ce serait réellement très difficile à suivre, alors je livre une ébauche qui n'est même pas complètement finalisée car je pensais faire un appareil double : capacimètre et ohmmètre, mais j'ai du me rendre à l'évidence que la partie ohmmètre est vouée à l'échec par un manque absolu de précision…

De plus la précision pour les condensateurs de faible valeur est juste passable.

Pour la petite histoire, j'en suis venu aux composants CMS pour suivre le mouvement général et incontournable de miniaturisation. La miniaturisation présente de délicats problèmes de réalisation aux amateurs, mais je suis persuadé que cela contribue à préserver les ressources, mais il ne faut pas aller trop loin cependant, par l'impossibilité matérielle de réparer ce qui peut l'être, car cette miniaturisation fait aussi le lit de l'obsolescence (programmée ou non) !

Il y a aussi quelques avantages qui militent pour une seconde vie pour les composants incorporés à des appareils divers (télé, ordinateurs, électronique en général).
En effet, les anciens composants à queues avaient l'inconvénient de ne plus pouvoir être réutilisés, car ils n'avaient jamais la bonne taille ou les bonnes longueurs de queues, ou le bon pliage. Aussi les composants CMS, même si ils ont également des tailles différentes, on les trouve tout de même au sein de grandes familles de tailles et il est souvent possible de les substituer d'une famille voisine à une autre sans de grosses difficultés.
L'autre avantage réellement très appréciable pour l'amateur est la quasi absence de perçage des CI.

Dans cet appareil, pour utiliser mes réserves, j'ai fait un circuit mixte, avec tous les composants montés côté cuivre et les quelques straps côté composants.

À mes tout débuts en CMS, j'ai seulement cherché à me procurer ces composants en les dessoudant au mieux de la façon la plus simple, car à mon âge, je ne voulais pas investir dans une panoplie complète de composants comme j'avais pu le faire il y a de nombreuses années, pour les composants à queues.

J'ai tout de même "craqué" devant la nécessité, et acheté un petit ensemble de résistances en taille 0805 série E12, mais j'ai renoncé pour les condensateurs à cause des erreurs à n'en plus finir lors des commandes !
Cette taille 0805 me semble la plus adaptée pour l'amateur, car elle permet d'utiliser tous les composants et de les souder de façon traditionnelle avec un petit fer à souder.

Cette taille permet en outre de ne pas être trop en retard dans la marche pour la miniaturisation, car il est des tailles plus grandes (1206 et autres) mais dont on évite déjà l'utilisation si elle n'est pas justifiée par la puissance ou la tensioncapacimetre_rapide_5.

J'oublie les composants de type "poussière" très difficilement exploitables pour l'amateur. (photo ci-contre, les 4 petits composants, résistance à gauche et 3 condensateurs sur une pièce de 10 centimes !)

Alors me voilà maintenant, après avoir "charogné" divers appareils et cartes récupérées, avec des composants CMS résistances et condensateurs, triés pour une partie, parfois mélangés par manque de temps, mais séparés maintenant directement lors du démontage en Résistances et Condensateurs, avec cependant quelques selfs !

Juste un mot sur les selfs qui sont maintenant très courantes en CMS… Elles seront vues le plus souvent à l'ohmmètre comme des résistances de très faible valeur.
Ces composants parallélépipédiques de dimensions souvent à peine plus importantes, de couleur noire ou gris foncé et de section carrée, ne seront pas traités, et vus seulement comme des résistances très faibles. (Elles sont souvent difficiles à différentier visuellement des condensateurs)

(Comment je démonte les CMS ? Très simplement avec 2 fers à souder dont un assez puissant (60W) car certains concepteurs de CI oublient que l'épargne thermique existe, et il faut parfois chauffer un peu plus, très souvent du côté masse dans le cas très fréquent des découplages. (Il y a aussi les composants collés qui nécessitent un chauffage un peu plus conséquent).
Il m'arrive parfois de démonter certains composant au butagaz ou au décapeur thermique (par le dessous), mais la fiabilité devrait s'en ressentir, alors j'évite….
Des lames de rasoir coupées en long permettent de désolidariser pin par pin le côté complet d'un boîtier SOIC et l'autre côté est alors facile à dessouder d'un seul bloc. Cette méthode évite de trop chauffer et permet le remplacement d'un circuit intégré sans trop de dégâts sur le circuit imprimé.

Ça y est, avez vous fait le lien avec le titre ?....

En fait, ce n'est pas la peine de récupérer si c'est pour garder en vrac ces milliers d'éléments sans valeur… Eh oui il faut les identifier (là c'est assez facile) mais surtout les mesurer et c'est pour cela que j'ai réalisé cet appareil.

Mesurer au multimètre ou au pont de mesures devient vite une corvée infernale à cause des changements de calibres nécessaires, (sans compter l'usure du commutateur de gamme). Infernale aussi, car il y a souvent des temps d'attente avant d'avoir les résultats.

Le pont de mesure acheté il y a peu est dans ce cas, et bien qu'il reconnaisse automatiquement le type de composant, il fait aussi parfois des erreurs et sa lenteur ne permet pas un usage intensif en sélection de composants et de valeurs.

Les résistances sont le plus souvent marquées en clair, alors est-ce bien nécessaire de traiter ces composants ? Oui et non, car dans la récupération de composants, on peut avoir des composants défectueux, et même pour certains, une impossibilité de les lire, (Même à la loupe dans le cas des CMS de type "poussière" non marqués le plus souvent).

Quoi qu'il en soit, c'est bien pour les condensateurs que cet appareil est le plus utile, car ceux-ci n'ont aucun marquage dans 99,9% des cas aussi ce sont ces composants qui sont les plus visés par cet article.

L'utilisation de la "poussière de composants" n'est plus du domaine de l'amateur et je ne les utilise pas dans l'immédiat.
Mes yeux de 20 ans ne sont plus là pour déchiffrer facilement tous les composants, mais j'y arrive tout de même avec mes lunettes et une loupe (Certes un peu moins facilement !) De plus la réalisation de CI adaptés à la "poussière de composants" devient réellement très difficile pour l'amateur tant la finesse demandée est extrême.

Alors vu le nombre de ces composants CMS récupérés, il a fallu les classer et trouver des solutions de rangement, mais préalablement il faut les mesurer ! (Voir photo ci-dessous d'un classement sur polystyrène extrudé de 20mm d'épaisseur avec alvéoles creusées au fer chaud pour résistances (en jaune) et condensateurs en blanc).

NOTA : Un couvercle en plastique transparent et souple évite les catastrophes, et un socle en "Isorel" un peu lourd contribue à ce que rien de s'envole...!

capcimetre_rapide_6La mesure rapide de condensateurs est donc l'objet premier de cet article.

Ce montage a été réalisé cette fois avec un nouveau logiciel de CAO électronique. Certes changer est toujours une épreuve, mais d'un logiciel sous MS-DOS, je viens de passer cette fois à la 3D avec "DIP_TRACE" (version gratuite) dont les premiers pas sont très encourageants !

Le principe décrit ci dessous sur ce brouillon initial, représente le cœur fonctionnel. L'automatisation avec le PIC n'est que la réalisation de l'automatisme qui permettra d'effectuer rapidement les différentes actions dans le montage de base et notamment les changements automatiques de calibre.

1 Le schéma de départ

capacimetre_rapide_2Voici donc le début de la réflexion avec ce schéma au brouillon associé à quelques relevés de valeurs faits avec des éléments standard.

Sur ce schéma j'ai représenté la partie fonctionnelle d'un NE555 et plus particulièrement d'un TS555, la version CMOS de ce circuit très connu.
Ce schéma permet de bien comprendre comment se feront les deux types de mesures sur la base d'un TS555 tout en conservant un point essentiel qui est de garder les mêmes bornes de mesures quelque soit le composant à mesurer (Condensateur ou résistance).

Ce schéma est seulement un schéma de principe axé sur les différentes gammes de mesure, sans considérations de programmation, mais avec le souci des I/O nécessaires.

NOTA IMPORTANT
Dans tout ce texte la dénomination "R" toujours entre "quottes" (ou RSel) indique la résistance de gamme issue de la sélection du multiplexeur, alors que Rx indique la résistance à mesurer.
(Pour C il n'y a pas d'ambiguïté)

La partie mesure des résistances est largement ratée, mais existe cependant de fait dans le hard, mais également dans le micro programme avec des imprécisions inadmissibles.
A vous de trier ce qui est bon et de ne penser qu'à la mesure des condensateurs.

Les causes du raté pour la mesure des résistances restent encore assez floues pour l'instant mais c'est cependant intéressant et tout l'article parle aussi de ce sujet, donc je laisse dans le texte cette partie de mesure des résistances. (De plus cela n'a aucune conséquence sur le schéma et l'objet principal qui est la mesure des condensateurs).

2 Le Cahier des charges

Tout commençait par la définition de ce que je souhaitais faire.

A l'origine, c'était donc un capacimètre et ohmmètre combinés en un seul appareil, avec uniquement deux bornes de mesures quelque soit le composant. (Ce dernier point est très contraignant et très important)

La mesure des résistances a pourtant été partiellement abandonnée en l'état lors de la réalisation du micro programme à cause d'une précision déplorable et d'un manque de linéarité surtout dans les faibles valeurs.

Le fait d'avoir seulement deux bornes uniques, aurait permis la DÉTERMINATION (éventuellement) automatique et rapide du TYPE de composant (résistance ou condensateur seulement).
Malheureusement j'ai du renoncer dès le départ à cette possibilité car de trop nombreux cas aux limites posaient des problèmes d'identification de composant et présentaient des risques d'erreurs tout en augmentant très fortement les temps de mesures.
Certes cette détermination reste possible, mais nécessite beaucoup trop de travail au niveau développement logiciel pour un appareil amateur et ne répondrait plus alors au critère d'urgence d'utilisation de cet appareil.

Cet appareil doit être très rapide, car traiter des milliers de composants n'est pas une mince affaire, et je ne peux pas passer le restant de mes jours à attendre quelques secondes de temps de mesure à chaque composant …

Ce critère est donc très important dans le contexte et je souhaite ne pas dépasser 200 ms  dans 95% des cas de mesures. (Les très gros condensateurs >65µF pourraient éventuellement faire exception à la règle ? C'est à voir au niveau logiciel, mais ça ne sera pas pris en compte par manque de temps)

NOTA : Pour éviter un scintillement trop important, j'ai cependant dû ajouter un délai de boucle de plusieurs centaines de millisecondes entre les mesures. Les performances intrinsèques de temps de mesure ont (très/trop) largement été respectées (et même au-delà).

La précision ne sera pas un critère primordial (Le rangement se fera dans les séries E12) celle-ci sera largement suffisante pour un classement E12. (1;1.2; 1.5; 1.8; 2.2; 2.7;3.3; 3.9; 4.7; 5.6; 6.8; 8.2)

La précision ne devrait pas cependant être sacrifiée, aussi il est impératif d'envisager une sélection automatique de calibre pour atteindre une précision suffisante dans un temps le plus faible possible.

La moyenne sur plusieurs mesures n'est pas appliquée à cause de la rapidité demandée et d'une précision sans excès. (Je l'ai pourtant essayée, mais le bénéfice était dérisoire au vu d'un surcroît de complexité du programme et d'un temps complémentaire, alors je l'ai supprimée.

Pour les condensateurs, la précision sera obtenue par la sélection du calibre approprié donnant au plus proche 65000 impulsions sans toutes fois dépasser cette valeur. (limitation due au temps le plus court)

Les possibilités théoriques sont de 10 pF à quelques dizaines de µF en direct pour les condensateurs, et de 10 ohms à quelques dizaines de Mégohms pour les résistances.
La finalisation sera telle que la mesure des résistances sera abandonnée, mais je laisse volontairement la démarche qui est intéressante bien que non réussie et qu'elle eut pu être abandonnée plus tôt.

(Bien entendu, les composants à queues peuvent sans problèmes être traités de la même manière que les CMS, c'est juste une question d'adaptation mécanique avec les bornes de mesure)

Cet appareil sera alimenté en 5V soit par piles soit par une alimentation secteur (C'est maintenant décidé avec une petite alim à découpage de récupération, mais en 12V pour éventuellement ré-alimenter en 2x3.7V avec 2 accus Li-ion ou même sur accu 12V). La tension d'alimentation interne des circuits est en traditionnel 5V à cause de la principale obligation de l'alimentation du display en 5V.
(Des displays en 3.3V existent, mais sont beaucoup trop chers alors j'utilise ce que j'ai !)

L'affichage des valeurs sera donc traité par un petit afficheur 2 lignes de 16 caractères donnant également l'unité de mesure, avec comme unités : Pf, nF, µF (ainsi que ohms, Kohms, Mohms)

Comme la précision n'est pas le critère premier, j'ai établi que le comptage se fera sur  la base de la fréquence d'horloge interne du PIC réalisé sur le TIMER 1 en 16 bits, et SANS reports.
Cela permettra de libérer les 2 I/O gardées en réserve pour OSC1 et OSC2, mais cela participera aussi à la rapidité des calculs
Les résultats finaux en 16 bits sont suffisants en principe pour répondre aux critères de mesures.

Les différentes gammes automatiques seront commandées par un PIC associé à un multiplexeur CMOS.
L'ordonnancement des gammes sera tel que l'on commencera toujours par les plus rapides pour réduire les temps de mesure.

3 capacimetre_rapide_1Les grands principes

Cela a déjà été vu, c'est un TS555, version CMOS du célèbre NE555 qui est utilisé en monostable. Il présente l'avantage de permettre surtout de grandes valeurs en résistance du circuit RC et une consommation faible.
Mais connaît-on bien ce 555 ? Ce n'est pas sûr, car c'est un circuit plein de ressources, et je viens de m'en rendre compte…!

Pour la mesure des condensateurs, le circuit TS555 sera utilisé en monostable uniquement et ce sera la largeur du créneau qui déterminera la capacité par comptage du temps (16 bits) dans un timer (TIMER1). La largeur du signal sera de 1.1 Rx C. Pour obtenir C, il faudra donc DIVISER par 1.1 (T=1.1*Rx*C d'où C=T/(1.1*Rx)

Pour la mesure des résistances, on "éliminera" au contraire ce circuit, et on fera une simple mesure de pont diviseur à partir des mêmes résistances de référence commandées par le multiplexeur.
(On verra par la suite comment éliminer ce circuit TS555 devenu gênant pour la mesure de résistances)

3.1  Le 555 / TS555

Ce timer très populaire peut fonctionner en monostable, astable voire en trigger de Schmitt ou autres "fantaisies".
Nous l'utiliserons donc uniquement en monostable, seulement pour la mesure des condensateurs.
Par "fantaisies", il faut comprendre tout ce qui permet de s'adapter à ce projet d'appareil de mesures de deux grandeurs physiques différentes.

Ainsi certaines broches sont très rarement utilisées, mais dans ce cas précis, je devrai les utiliser. Même si vous êtes un adepte du 555, lisez tout de même la suite, vous y découvrirez peut-être quelques particularités insoupçonnées.

3.2 Fonctionnement général en monostable

En monostable au repos, la sortie DIS en pin 7 est maintenue à 0 tant qu'une impulsion de départ n'est pas reçue sur l'entrée Trig en pin 2. Le condensateur C est donc toujours maintenu totalement déchargé à la tension de déchet VCE de valeur courante # 0.05V.
(Attention cependant, car la tension VCE augmente fortement en fonction du courant : cas des sélection 100 ohms et 1K)
Lors d'une impulsion sur l'entrée Trig la bascule de contrôle est immédiatement déverrouillée. Sa sortie OUT en pin 3 passe à 1 et la sortie "Dis" en pin 7 (Discharge) passe en haute impédance.
La tension à cette pin "DIS" va donc pouvoir progresser vers le +5V, au rythme de la charge du condensateur "C" par le biais de la résistance "R" sélectionnée par le multiplexeur.

Lorsque le potentiel au nœud R, C, Th et DIS atteindra 2/3 de VCC par le jeu des 3 résistances égales du diviseur interne au circuit TS555, alors la bascule de contrôle va se "reseter" et se verrouiller de nouveau en attente d'une prochaine impulsion négative sur l'entrée TRIG.
Le condensateur est immédiatement déchargé par le court-circuit imposé par le transistor dont le collecteur est en pin 7 (DIS), et la sortie repasse à zéro.
La durée de l'ensemble est seulement déterminée par la constante de temps RC avec pour valeur T=1.1RC (en secondes).
(1.1 est l'arrondi de 1.0986 et reste suffisamment précis)

La sortie OUT en pin 3 est le reflet de la bascule de contrôle.
En réalité dans notre application les différentes capacités parasites ramenées en pin 7 (DIS) font que même sans condensateur "réel", le système peut démarrer dans la mesure ou le circuit RC ne dépasse pas les possibilités internes de fréquence du circuit. (R=10 M ohm semble une valeur à ne pas dépasser, mais je n'ai pas trouvé d'informations précises à ce sujet. (Hormis les courants de fuite des entrées)

3.3 Commande de démarrage du monostable

Le démarrage se réalise donc par une impulsion négative sur l'entrée "Trig" en pin 2.
Une particularité à signaler est que tant que dure ce palier négatif, la bascule sera obligatoirement déverrouillée et que pour de très faibles valeurs de la constante de temps celle-ci pourrait être masquée par cette durée de l'impulsion de commande.

Cette particularité pose un petit problème de durée de l'impulsion de commande pour de très faibles valeurs, aussi, j'avais initialement réalisé cette commande du monostable par le biais d'un circuit RC différentiateur rappelé au VCC puisqu'il est impératif que cette pin TRIG soit à 1 au repos, car une commande par niveau dure un assez longtemps et pourrait perturber ?
Au final, la sécurité de largeur des impulsions m'a obligé à traiter cette impulsion directement par le PIC sans différentiateur (1µs fixe). Cela affecte seulement d'une à deux impulsions de comptage sur TMR1 (sur plusieurs milliers !).

Voilà pourquoi j'ai changé le principe de Trig en dernière minute…. Je n'ai pas plus trouvé d'informations sur la durée minimum de l'impulsion de commande, mais je pense qu'il ne faut pas descendre en dessous de la microseconde par sécurité.
La durée ne doit pas induire non plus un niveau trop faible. Ce niveau devra toujours être supérieur à 1/3 VCC (À cause du pont diviseur interne) et d'une largeur "suffisante".

Dans le cas du TS555 les résistances internes à ce circuit sont 3 résistances égales de 100 Kohms (Vérification faite très simplement à l'ohmmètre pour 100 et 200K par les bornes accessibles).

3.4 Commande Reset.

Cette entrée permet d'interrompre à tout moment le cycle de charge RC en remettant à zéro la bascule, MAIS seulement dans la mesure où l'impulsion de commande est revenue à son niveau de repos à 1 (indépendamment du cycle RC qui se poursuit normalement mais qui peut donc être interrompu par cette commande).

Attention cependant, la commande TRIG (à zéro) est prépondérante sur la commande RESET. En d'autres mots, la sortie reste à 1 si l'impulsion de commande sur "Trig" n'est pas revenue à 1.

3.5 La pin 5 CV (Control Voltage)

Cette pin 5 est peu utilisée dans la grande majorité des cas, j'ai vu sur l'excellent site (www.sonelec-musique.com) que cette entrée peut servir par exemple à modifier le timing d'un astable si nécessaire.
Dans notre cas, j'utiliserai cette entrée pour modifier légèrement le seuil et maintenir l'état déverrouillé à l'issue d'une impulsion de commande pour permettre de mesurer la tension au point nodal Th/DIS/R/C.
Cette pin sera donc forcée à VCC par 6.8M ce qui modifiera de 2/3 de VCC (3.333V) à 3.35V.

Pour la mesure des résistances cette pin sera forcée à Vcc (Sortie à 1 de PIC) uniquement durant la mesure analogique. (Les comparaisons se font avec la 6.8M)

A cette fin je pensais utiliser un MOSFET pour contrôler cette pin, pour avoir la plus faible tension de déchet, mais une simple sortie de PIC fera l'affaire. (Comme j'ai des I/O disponibles, je vais essayer directement la commande par le PIC). Le seul impératif est de ne pas basculer à 0 lorsqu'il n'y a pas de composant présent (Résistance infinie)

Ce contrôle de la pin 5 (CV) est motivé par l'utilisation impérative des mêmes broches de mesure pour les résistances et les condensateurs).

3.5.1 Principe et précisions en mesure de résistances

ATTENTION tout est laissé ainsi en l'état, y compris le programme, et le sujet est seulement pour information !
Si l'on admet le schéma d'un diviseur avec comme première résistance Rsel et Rx en résistance de mesure, on a les relations avec une alimentation en 5v. (V étant la tension aux bornes de Rx)
5/(Rsel+Rx)=V/Rx
On calcule ainsi Rx suivant la relation : Rx=V.Rsel/(5-V)

Qu'en est-il de la précision lorsque l'on sait que la tension V mesurée est précise à +-1 ou 2 pas sur 1024 du convertisseur A/N du PIC ?
(Pour simplifier on admettra que Rsel et 5volts sont de précision parfaite et qu'ils n'interviennent pas, car ce qui nous intéresse est de savoir ce que sera la précision issue de ce procédé peu habituel, et relativement à la relation citée imposée mais aussi avec l'utilisation du convertisseur A/N dont la précision est évaluée à +-1 ou 2 pas.)

S'agissant d'un produit et d'une fraction, ce sera la somme des incertitudes relatives qui jouera, et aux limites on conçoit parfaitement que pour les très faibles résistances, V sera très faible et donc l'incertitude sera maximale aux extrémités du convertisseur A/N. (Voir la courbe en cloche ci contre)
capacimetre_rapide_4

De là à conclure que l'incertitude sera la meilleure lorsque l'on sera situé exactement en milieu du convertisseur, il n'y a qu'un "pas" !
(Ou, ce qui revient au même, lorsque les deux résistances sont de valeurs "voisines").

Sans s'attarder sur la précision évidente des résistances de sélection et du 5V On remarquera que la précision du procédé avec le convertisseur 10 bits est bonne entre 1 V et 4 V.

Si l'on est plus restrictif on peut admettre seulement entre 3.33 et 1.665.
Si l'on est particulièrement puriste on recherchera 3.35 V car avec cette valeur à peine plus élevée, on arrive à englober les valeurs légèrement supérieures à 1 et 2 qui sont des valeurs courantes "de référence" au moins pour le 1.
La meilleure précision est toujours obtenue lorsque les valeurs de résistance de sélection et à mesurer sont proches.

On va voir que c'est extrêmement important et que cela avait été très sous estimé lors de la conception du hard, mais on va pouvoir s'en tirer sans de grosses modifications.
Fort heureusement, l'impact sur le hard peut être facilement contourné en ajoutant une seule résistance au +Vcc (Par une sortie à 1 du PIC) sur l'entrée CV du TS555.
Cela ramène la résistance supérieure du TS555 à 98.5K par 100K//6.8M
Ce sera encore un fonctionnement hyper spécifique de ce circuit qui va devenir un comparateur de valeur à 3.35V.
(Les comparateurs du PIC ne peuvent pas être utilisés du fait des autres nécessités de pinning).
Rappelez vous, j'ai vérifié qu'il y avait en entrée du TS555 un pont diviseur de 3x100K…avec différents accès par les pins du circuit, et en l'occurrence la pin CV…

Si l'on place une résistance de 6.8M au +, sur l'entrée CV, le seuil de déclenchement de la bascule de contrôle du TS555 sera amené à 3.35V au lieu de 3.333V. Cela nous arrange bien en établissant la limite suivant les gammes multiples ou sous-multiples à 2.03 et 10.15 respectivement pour les valeurs 1 et 5 des résistances de sélection.

Ce qui nous arrange bien également est de limiter les calculs au maximum et de garder l'unité de base de la banque de résistances sélectionnées par le MUX.
Ainsi, on va savoir sans faire aucune mesure de tension si on est juste au dessus du seuil ou en dessous simplement par la bascule de contrôle du TS555.
Mais pour cela, encore faut-il que la bascule soit déverrouillée pour permettre au convertisseur de mesurer une valeur non nulle.
Il faudra donc prendre les résistances de sélection dans l'ordre 100 ohm vers 5 M.

Il y aura deux raisons à remonter d'une sélection à la fois, la première  pour être dans la zone de précision la meilleure, mais aussi et surtout pour que la bascule soit toujours déverrouillée (et que la résistance à mesurer ne soit pas court-circuitée), ce qui empêcherait une véritable mesure par le convertisseur A/N.

Juste après cela, il suffit donc de lancer le convertisseur A/N pour avoir la valeur de Rx, avec la meilleure précision ET le moins de calculs. (La pin CV devra alors à cet instant être forcée au Vcc pour permettre 1024 pas sur l'étendue du Vcc)

Pourquoi ne pas garder le seuil de 3.33 V d'origine du TS555 ? Simplement pour avoir les valeurs entières (2 en l'occurrence) dans la meilleure gamme de précision, et ne pas déclarer forfait d'une gamme à 1.98 !

Le fait de mettre 3.35 permet de se placer sur un côté de la courbe en cloche en allant vers l'autre côté. Une valeur 2.5 V serait une erreur car cela déplacerait la zone de meilleure précision.

Ce procédé est vraiment très spécifique et n'a aucune prétention de précision, car je rappelle que cet appareil est seulement prévu pour du tri de composants.
Il va de soit que l'on devra balayer les résistances du MUX, de la plus petite vers la plus grande, avec toutes fois une incertitude pour la gamme à 5 M qui sera peut être abandonnée à cause du convertisseur A/N qui demande des temps de mesure considérables si la résistance interne de la source à mesurer est très forte. (De plus les courants de fuite ne sont certainement plus négligeables)

NOTA : La réalité sera toute autre car la tension de déchet Vce stat du TS555 est trop élevée pour des courants relativement importants. J'avais pensé à tort que la version CMOS du 555 utiliserait un MOSFET pour cette pin "DIS" avec un "Ron" très faible, mais c'était une erreur de ma part, complétée également par un manque d'informations très précises.

(J'ai fait un essai complémentaire avec un MOSFET de puissance en // sur celui du TS555, pour limiter cette tension de saturation mais ça a été complètement décevant et aberrant vraisemblablement à cause des temps de propagation beaucoup plus courts dans la logique interne du circuit…!)

3.5.2 Les gammes de résistances

Les gammes pour les mesures sont dans l'ordre de 100 ohms vers 5M pour les résistances de sélection.
Ci-dessous le tableau des seuils à 3.35V mais les problèmes sont principalement sur les valeurs extrêmes de 100 ohms et 5M.

Rsel, (gamme)     Rxseuil, valeur de la résistance de seuil de changement de gamme

100 ohms           203.3 ohms
1K                    2.030 K
5K                    10.151 K
10K                  20.3 K
50K                  101.51 K
100K                 203 K
500K                1.015 M
1M                   2.03 M
5M                   10.15 M

Pour Rsel 100 ohms, la gamme permettra de mesurer de 200 ohms à 1 ohm (en théorie), mais vers une dizaine d'ohms plus sûrement, et à une précision "inacceptable"!!!

3.6 Les mesures sur le TS555

J'ai bien entendu fait un relevé aux valeurs extrêmes de "R" pour savoir combien de gammes je devais prévoir au niveau de la résistance "R". (Voir  le schéma de principe avec les quelques mesures initiales "gribouillées").
Vous pourrez constater les différentes aberrations. Ces essais mettent en lumière la difficulté d'avoir une gamme 100 ohms pour la résistance "R".

Une résistance très faible nécessite d'utiliser un MOSFET P pour la commutation de "R". Dans ce cas précis, le problème est présent pour les fortes valeurs de capacité soit >65 µF.
De plus, il s'avère que la tension de saturation du TS555 aux courants forts n'est plus négligeable (de l'ordre de 1V) et que cela fausse de manière systématique la charge du condensateur (Par un niveau de départ non nul).

Outre cela, le courant de décharge, est constitué de la décharge du condensateur, mais aussi du courant issu de la résistance, et si cette dernière est faible, cela modifie la durée de décharge réelle qui peut atteindre cette fois la valeur du temps de charge.

Alors il faut tenir compte de tout cela dans la séquence qui lance une mesure, avec deux points spécifiques :
Couper le courant lors de la sélection d'une résistance faible (Vrai également pour 1K mais aussi pour toutes les gammes sauf 5M qui est la valeur par défaut) mais ajouter aussi un délai entre deux mesures pour être certain de partir d'une tension de saturation très faible. (Il est nécessaire de mettre en oeuvre une table des délais)

Ainsi une sélection avec résistance de 5M sera toujours appliquée en l'absence de mesure et la validation de la sélection ne se fera que juste avant le lancement du monostable. (L'entrée ENB n'est pas utilisée)

Pour le comptage, il serait possible de diminuer dans ce cas précis la vitesse d'horloge du PIC de moitié ou du quart pour limiter le comptage 16 bits à 65535 du TIMER1.
Il me semble plus approprié d'utiliser le pré-diviseur du TIMER1 et gagner en plus jusqu'à 8 fois, ce qui pour un comptage 16 bits permettrait moyennant un temps maxi de 1.6 secondes de mesurer jusqu'à 5000 µF environ. (Cela n'a pas été réalisé faute de temps  pour le mettre en oeuvre !)
Ces possibilités restent du détail et seront seulement vues lors de l'élaboration du programme, mais je confirme la gamme avec une résistance R de 100 ohms commandée par un MOSFET P. Le prédiviseur pour les fortes capacités ne sera donc pas implémenté !

L'utilisation d'un quartz ne parait plus vraiment nécessaire aussi les pins OSC1 et OSC2 pourront être affectées à d'autres fins si nécessaire.
(De toutes façons je n'ai pas vraiment le choix non plus car je dois utiliser la gate du TIMER1, T1G* qui est aussi la pin OSC2 !)

L'affaire est donc classée, pas d'oscillateur spécifique ! (Avec regrets, car sur les faibles valeurs de C, il y a un peu de jitter !

4 Multiplexage des résistances "R"

Ce point est décisif, car on va multiplexer les résistances "R" qui assureront les différentes gammes de mesures automatiques.
Le principe de mesure des condensateurs sera de s'approcher du maximum de 65535 impulsions sans toutes fois dépasser.
(On ne tentera donc pas le diable et on s'arrêtera à 60 000)

On utilisera un multiplexeur CMOS type 74HC4051 à 8 entrées. Le RON "typique" sera de 80 ohms à VCC 5V. Ceci confirme la difficulté d'une gamme avec "R" de 100 ohms qui parait très juste pour compenser ce Ron du 4051 dont la valeur maxi peut atteindre 160 ohms.
On commandera donc séparément par le MOSFET P une résistance de 100 ohms par une I/O spécifique.

(Initialement j'avais prévu un MUX 74HC4052 à 2x4 entrées sans valeurs intermédiaires. Là aussi un arrangement dans la sélection du MUX pourrait permettre de réaliser facilement des gammes intermédiaires)

Cette modification par un 74HC4051 ne change rien au principe, mais donnera plus de possibilités ultérieurement lors de la réalisation. Une nouvelle I/O va devoir être prévue pour la sélection à 8 ! Cela me semble plus utile que de laisser un demi circuit (74HC4052) qui ne servirait jamais à rien !

(ATTENTION : je ne corrige pas le schéma au brouillon du principe avec le multiplexeur à 4)

(Si la chute de tension au niveau du MOSFET P est dérisoire, un petit trimmer de réglage sera tout de même nécessaire pour la gamme juste au dessus de 100 ohms : gamme avec 1K, car le RON n'est pas négligeable pour cette valeur : rapport # 0.1/1).

La sélection du multiplexage sera nécessairement automatique et sera telle que l'on ne dépasse pas les 65535 impulsions de comptage. La précision sera donc identique pour chaque gamme de Résistances "R", avec le maximum vers les valeurs de comptage les plus importantes.

Les résistances "R" servent donc en premier lieu à la constante de temps RC pour la mesure des condensateurs dans un circuit RC série, mais aussi comme résistance de tête d'un pont diviseur constitué donc de "R" (sélection du MUX) et de la résistance à mesurer "Rx" pour la mesure des résistances.
Dans le cas de mesure de résistances, on mesurera seulement la tension au pont diviseur et la sélection des résistances "R" sera telle que l'on obtienne des valeurs significatives entre 2 et 3 volts.
(Après les différentes comparaisons, l'entrée Voltage Control (VC) sera directement forcée à VCC pour permettre ainsi la mesure d'une tension analogique supérieure à 2/3 Vcc aux pins Th/DIS (et éviter le reset de la bascule de contrôle))

Le choix un peu accidentel des I/O avec le MOSFET se révèle finalement excellent comme on peut le voir sur le tableau qui suit, car on entre dans une séquence binaire parfaitement ordonnée de valeurs de commande du MUX (PORTC 0-3, de 0x07 à 0x0F).

Sélection     condensateurs       valeur de commande Mux
100 Ohms    10nF à 650µF            7
1 K             1nF à 65µF               8
5 K             200pF à 13µF            9
10 K           100pF à 6.5µF           A
50 K           20pF à 1.3µF    + cor  B
100 K         10pF à 650nF    + cor  C
500 K         2pF à 130nF      + cor  D
1 M           1pF à 65nF        + cor  E
5 M           0.2pF à 13nF     + cor  F

Le fonctionnement avec 5M semble correct mais est instable aux faibles valeurs de C.

Pour aller plus vite, il sera peut-être possible de trouver un algorithme permettant de sauter certains calibres, sans avoir à tous les balayer systématiquement ? Cela a été réalisé et il faut effectivement 3 comparaisons au maximum pour tout condensateur.

À voir au niveau logiciel, mais principalement pour les condensateurs car pour les résistances le champ de  mesures est plus faible (1024 contre 65535)

5 La mesure analogique

Par rapport aux valeurs de temps indiquées lors des essais avec des "R" de 1M, 1K et 100 ohms, je constate que l'on rentre tout juste dans les temps nécessaires au convertisseur A/N.

La résistance Rs d'entrée du convertisseur A/N du PIC est variable et si pour 1K et 10K cela rentre dans les temps, pour 100K le temps TC passerait de 1.37µs à 8.2µs et je n'ose pas annoncer le temps pour 1M qui serait alors de 77.4µs (simplement pour Tc)
A ces temps il faut encore ajouter 3.25 µs des autres paramètres pour que le TACQ (temps d'acquisition).soit complet.

Le TACQ sera donc dans la fourchette 4.67µS à 77.4+3.25=80.65µs
(Pour 5M j'extrapole à 500µs en oubliant les fuites !!!)

Passons maintenant au TAD, qui à 4MHz et Fosc/8 est arrondi à 24 µs pour les 10 bits utiles
Il ne serait pas superflu d'aller un peu plus vite et notamment à 8 MHz pour avoir cette fois un temps de la seule conversion qui diminuera de moitié soit 12µs (sans parler du TACQ très majoritaire qui restera ce qu'il est !). Mais cette complication est-elle bien utile devant un TACQ à 500µs ? Je n'en suis plus du tout certain !

A ce fait, la modification du MUX 2x4 en MUX 1x8 pourrait être utile avec des valeurs médianes car lorsque l'on change de gamme, on effectue un rapport 10, ce qui représente une variation importante surtout au niveau d'un pont diviseur dont on ne connaît pas à priori l'ordre de grandeur du rapport.

NOTA : Ceci contribue aussi à l'abandon de cette mesure des résistances à cause des courants de fuite qui ont été passés sous silence.

6 Résistances

Y-a-t-il une résistance connectée ? Dans la position de l'inverseur sur 'R' on n'utilise plus un comptage d'impulsions mais le convertisseur A/D qui mesurera la tension au point nodal Th/DIS/"R":"et Rx" également.
Cette opération peut être très rapide car AVANT la mesure proprement dite, on fera seulement des comparaisons pour élaborer la résistance de sélection à utiliser, et seulement après ce sera la mesure effective avec le convertisseur A/D.

Le principe d'une mesure est le suivant :

On conserve l'utilisation du TS555 en regardant avec les sélections, si juste après une impulsion Trig, la bascule est positionnée ou non. Il n'y a plus cette fois de condensateur mais seulement la résistance à mesurer en lieu et place
Suivant le cas on progresse tant que l'on trouve (quelques µs après trig) la bascule de nouveau à zéro, ce qui signifie que Rx est très grand devant R.

Lorsque l'on arrive à des valeurs inférieures 3.35, la bascule reste à 1 car on ne peut plus atteindre, du fait du rapport du pont, le basculement. On garde donc cette valeur de sélection et après forçage cette fois directement à "Vcc" (Par une sortie PIC à 1) puis reset de la bascule, on peut donc lancer le convertisseur qui fera alors la mesure sur le pont diviseur.

C'est le principe retenu qui permet surtout d'aller très vite, sans lancer une infinité de conversion A/N qui peuvent durer une "éternité" si les résistances sont élevées.

En résumé on compare d'abord avec des sélections de plus en plus élevées, puis on effectue ensuite une seule mesure avec le convertisseur A/N.


7 Condensateurs

C'est la base de ces mesures car tout multimètre basique ne sait pas nécessairement mesurer des condensateurs et de toutes façons pas assez rapidement. Contrairement aux résistances (sauf "poussières"), cette mesure est impérative puisque sur les condensateurs CMS, rien ne précise leurs valeurs.

Le switch du "type de composant" sera positionné sur 'C'.

Tout devra commencer par une mise à 1 de RA5 pour la liaison par 6.8M vers la pin 5 Voltage Control (VC).
Seulement après on fera le reset du 555 (Niveau 0 sur la pin 4)
Le multiplexeur sélectionnera en premier les résistances R8/R18 de 5M puis on sélectionnera le MOSFET avec 100 ohms.
(la sélection par défaut du MUX sera implicite et toujours 5M car on n'utilise pas l'entrée Enable et l'incidence reste faible sur Teta).

On lancera ensuite le départ de la mesure par la Pin 2 (Trig)

Cette gamme de départ est bien adaptée pour mesurer jusqu'à 65µF, mais pourrait monter à quelques milliers de µF avec un peu plus de temps.
À la fin de cette mesure, on vérifiera qu'il n'y a pas eu d'interrupt sur TIMER1 (moins de 65536 impulsions).
Si tel était le cas, on peut augmenter la sélection du MUX et attendre qu'il y ait une interrupt, puis revenir d'un pas en arrière sur le MUX.
De cette façon ce serait la meilleure mesure possible en 16 bits.

On peut aussi attendre une valeur "suffisante" pour la précision et éviter de faire marche arrière, c'est ce que j'ai prévu avec un algorithme en 3 itérations maxi.

A contrario, on pourrait aussi stocker la valeur (binaire) précédente et lors de la mesure suivante occasionnant une Interrupt reprendre cette valeur précédente. Cette méthode me parait moins bonne et moins rapide puisque l'on aura fait une mesure inutile ayant coûté tout de même 65 ms au pire et quelques "broutilles".

La mesure commencera donc par les valeurs de résistances de sélection de gamme les plus faibles (Cte de temps Téta la plus faible), car le temps de mesure sera le plus court. (11µs pour un condo de 10nF pour l'exemple, soit un temps CPU à peine plus élevé que 11µs.

REMARQUE : Chaque changement de gamme multipliera (ou divisera suivant le sens) la valeur précédente par 10 ou 2, ainsi une mesure nécessitant de remonter jusqu'à "R"=1M (par multiple de 10) devrait au maximum coûter en temps :
65+655+6553+65535=72808 µs (Au maximum et sans tenir compte des effets de bord par multiple de 10)
65+327+655+3276+6553+32767+65535=105903 µs (environ)

La valeur maxi pour un comptage de temps en 16 bits pour 1K et pour la première valeur de la série E12 correspondra environ à 60µF au maximum. C'est-à-dire 56000 impulsions. (1.1 téta)
Comme ces condensateurs sont moins répandus qu'entre 10nF et 0.1µF le temps perdu sera très faible.

NOTA : N'aurait-il pas été plus simple de compter les interrupts sur Timer 1 sans faire de gammes ?
Oui ! mais les temps auraient été très différents et une mesure aurait pu durer plusieurs secondes sans compter une variation très sensible de la précision suivant les valeurs de C. Quel choix de résistance unique faire ? sans privilégier certaines valeurs ?

8 Les cas de mauvaise détermination de type R/C

ATTENTION, Ce cas de détermination automatique abandonné dès le départ à cause des difficultés est donc bel et bien enterré en plus de la non mesure des résistances. A la lecture suivante, vous pourrez vérifier que cette détermination reste délicate, surtout dans l'optique d'une mesure permanente et rapide.

8.1 Cas de mesure d'un condensateur avec à la place une résistance

Supposons que le switch R/C soit positionné sur 'C' et que l'on pense mesurer un condensateur alors que c'est réellement une résistance en place aux bornes de mesure.

Il y aura deux solutions possibles :

- La résistance en place ("Rx") associée à la résistance du MUX donne une tension inférieure à VCC/3. Dans ce cas une fois lancée la mesure "type condensateur", celle-ci ne s'arrêtera jamais car on n'atteindra jamais VCC/3. (Un time-out sera nécessaire au niveau logiciel pour ne pas bloquer le programme).

- Dans le cas opposé, si la résistance est telle que la tension est supérieure à VCC/3, alors dès la fin de l'impulsion sur Trig, le système se reset par atteinte immédiate du seuil Th (Dépassement 2/3 Vcc). Dans ce cas il serait possible de faire une mauvaise interprétation et de donner une valeur de condensateur très faible alors que c'est une résistance !

8.2 Cas de mesure d'une résistance avec à la place un condensateur

Switch de type en position 'R'.
Si la valeur de la tension parait suffisamment élevée sur la première valeur du MUX (100 ohms) dans le cas d'un condo de petite valeur, il est possible lors de la mesure de tension de déclarer (à tort) que le condensateur est une résistance de quelques Mégohms, voire qu'il y a une résistance infinie (ou absence de composant).
La charge du condensateur sera quasi immédiate par la résistance initiale de 100 ohms, et lorsque l'on remontera les gammes avec des résistances "R" de plus en plus élevées, il n'y aura plus de changement. On reprendra alors la valeur précédente qui sera élevée de toutes façons.
Pour la suite tout dépendra du temps et de la charge du condensateur.

Aussi, dans le cas contraire d'une tension "trop" basse en entrée on ne devrait pas chercher d'autres valeurs pour "R", car toute augmentation de "R" conduit à diminuer encore plus cette tension.
Suivant le temps et la valeur du condensateur, la tension peut monter car le condensateur se charge (rapidement).
Tout cela dépend bien entendu des valeurs en cause, et on comprend que la détermination du type de composant aux bornes de mesures n'est pas quelque chose de trop simple à interpréter.

Au final, cette étude des cas qui pourraient passer au travers, révèle une certaine complexité. J'avoue que je m'en doutais un peu par le fait que j'avais prévu un inverseur 3 positions R, C, AUTO…!

Alors effectivement je préfère supprimer la position AUTO pour ne garder que R/C. Je regarderai "à l'occasion" si on peut faire mieux, (mais autant avouer que ce sera "jamais" !). L'essentiel de la mesure (des condensateurs) sera atteint et c'est là le fond du sujet.

À ce niveau c'est un outillage et je lui demande seulement de me rendre le service pour lequel j'ai le besoin essentiel, alors n'attendez pas un appareil d'une grande précision !

9 Alimentation et tension d'utilisation

Celle-ci sera de 5V traditionnels pour plusieurs raisons.
- diminuer le Ron des multiplexeurs de résistances (Point important)
- autoriser éventuellement le passage à 8MHz pour gagner un peu en temps notamment en mesure des résistances "R" de
forte valeur, avec le convertisseur A/N pour limiter le temps de calcul
- alimenter l'afficheur 2 lignes (Presque toujours en 5V pour un prix abordable)
- simplifier tout au maximum
Je n'ai pas encore décidé du mode d'alimentation accus ou secteur ni du type d'alim si secteur et/ou chargeur d'accus. ---> C'est maintenant fait ! : une petite alim à découpage d'un ancien adaptateur TNT a fait l'affaire ! (Voir les photos au § 11 réalisation)

10 I/O et Choix du PIC

10.1 I/O pour le circuit de mesures

-3 OUT pour la sélection des résistances (avec 74HC4051)
-1 OUT spécifique MOSFET P pour R=100 ohms
-1 OUT pour la commande CV Control Voltage avec 6.8Mohms
-1 OUT pour le forçage CV à VCC
-1 OUT pour le lancement Trig de l'impulsion du monostable
-1 OUT pour la commande RESET
-1 IN pour la sortie OUT du 555, (avec affichage direct sur LED : non réalisé) avec entrée sur la Gate du Timer 1
-1 ANA pour mesure pont de résistances

Total 10 I/O (éventuellement 11 pour la commande Enable du MUX ce qui éviterait une entrée en l'air au niveau des valeurs. Ce point reste à examiner, mais cela n'apportera rien de mieux au niveau des capacités parasites)
(Les réservations sur le CI devraient permettre de choisir suivant la réalité : à voir)

10.2 I/O pour le display 2 lignes

Pour le display j'utiliserai le système avec le registre à décalage déjà décrit, (voir le lien dans un nouvel onglet) aussi il faudra seulement des OUTs au nombre de 4.
- CLOCK
- DATAS
- R/S
- ENABLE
(- Write est toujours forcé)
Total 4 I/O

10.3 I/O généralistes

-1 OUT pour LED erreur
- 1 IN pour inverseur manuel R,C (AUTO abandonné mais I/O maintenue)

Total 2 I/O (alim secteur=pas de contrôle tension (accus))

10.4 Choix du PIC

A priori un PIC 16F690 devrait convenir puisqu'il y a 16 I/O utilisées pour 18 disponibles sur ce PIC. Reste à vérifier ultérieurement d'éventuelles incompatibilités, mais il est toujours possible de réduire un peu ces I/O. (RB7 et RA3 restent inutilisés)
Ce point sera à confirmer lorsque chaque I/O sera positionnée sur les Ports en fonction des possibilités de chacune.

(On notera que c'est un peu luxueux de commander la résistance de 6.8 M par une sortie du PIC car elle pourrait être directement raccordée au Vcc !)

10.5 Schémas

capacimetre_rapide_schema_001_001

(Ce schéma de principe est parfaitement à jour).

Le CI a été réalisé avec DIPTRACE avec des plans de masse. J'ai même pu réaliser pour la première fois un plan 3D du CI équipé

capacimetre_rapide_3capacimetre_rapide_3D

 

 

 

 

 

 

 

 

 

 

DipTrace_PCB___capacimetre_rapide_modif1_001_001

Ce plan d'implantation n'est pas à jour, (comme d'habitude !) mais il y a très peu de modifications par rapport au schéma. Ces modifs concernent essentiellement le circuit Control Voltage (CV)

11 Réalisation pratique

capacimetre_rapide_8L'ensemble a été disposé dans un ancien coffret d'adaptateur TNT dont une petite alim a découpage 12V a été implantée.

En face supérieure apparaît le seul switch de sélection R/C et l'afficheur à cristaux liquides de 2 lignes.
Des "pare-chocs" amortisseurs en bois et bourrelet caoutchouc évitent de trop perdre de composants "sauteurs" ou épris d'une irrésistible envie d'indépendance …!

Juste en dessous, le circuit imprimé support de mesure est disposé, dont la partie métallique du boîtier a été découpée pour éviter les capacités parasites. (Photo ci-dessous)

Ce circuit n'a pas été gravé au perchlorure mais seulement au cutter par un trait de séparation des deux zones de pose des composants. Ce sera donc les deux pôles de mesure des CMS.

Le trait de séparation doit être très fin pour accepter les composants les plus petits, et le cutter me parait bien adapté à cette fin qui évite de plus tout un travail de gravure…

(Bien "traiter" les rebords laissés par le cutter pour qu'ils soient évacués et ne fassent pas de courts-circuits).

capacimetre_rapide_7Un inter secteur est également prévu, et pour éviter tout rayonnement une séparation métallique en aluminium fin est ajoutée entre les circuits mesure et alim à découpage.

La platine en circuit imprimé sert également de dépose (Stockage AVANT mesure) pour des composants et présente aussi l'avantage d'une éventuelle décharge des condensateurs, car une mesure initiale pourrait être faussée par une charge résiduelle (Suivant l'instant précis de pose à la première mesure).

NOTA : On remarquera que la première mesure n'étant pas synchronisée par rapport au programme, celle-ci peut tout à fait être fausse, ce qui est parfaitement normal, aussi il est nécessaire d'attendre la ou les mesures suivantes, mais cela est si rapide qu'il n'y a aucune attente réelle.

J'ai tout de même fait des mesures de l'opérabilité et de façon "normale" j'ai pu trier 50 condensateurs en 820 secondes, soit environ une mesure avec dépose dans la case correspondante en 15 secondes, mais on rencontre assez souvent des P1090915condensateurs en court-circuit (bavures de soudure) et si on les traite, la moyenne du temps de mesure explose...

Le temps le plus long représente le positionnement du condensateur à cheval précisément sur la fente très fine du plan de mesure. (Précision requise surtout pour la mesure des tout petits CMS)
Il faut en outre appliquer une petite pression sur le composant pour obtenir les contacts et que la mesure devienne effective

(Il y a de nombreux faux contacts à compenser sur les composants dessoudés…).

Toute cette opération se réalise avec une pince brucelles en bois qui sert à la fois à la préhension et à la force d'appui sur les zones cuivrées. (Pas de matériaux magnétiques !)

Il faut aussi comprendre que certains composants démontés ont encore des résidus de soudure et de flux qui rendent l'opération de positionnement et de contact parfois délicate.

Lors du branchement des fils du CI on repérera le côté masse et le côté + pour les chimiques polarisés éventuels, par une zone rouge pour le + et bleu pour le moins.

12 Conclusions

Le type de composant présent aux bornes de mesures étant déterminé visuellement, les mesures sont assez simples à réaliser, et après c'est toute la "cuisine" avec le PIC, qui si elle n'est pas compliquée, reste tout de même une bonne part délicate de travail.

L'affichage des résultats décimaux reste un point toujours très pénible en assembleur, par la manipulation des unités, multiples et sous-multiples, tout autant que les calculs avec décimales qui nécessitent d'élever le nombre de bits intermédiaires.

Pour rappel, les condensateurs seront mesurés en comptant les impulsions (maxi 65000) ce qui confirmera la gamme de mesure de 10 pF jusqu'à 60 µF.
Les cas spéciaux seront les courts-circuits qui seront déclarés comme tels par la LED (ne fonctionne pas actuellement : il y a un bug !).
L'absence de condensateur, sera en fonction de la gamme de "R", et à confirmer entre 1 et 15 µs. (Des essais plus précis seront à réaliser sur le prototype)
L'introduction d'une résistance par erreur devrait donner soit "court-circuit" soit un timeout "Erreur". Ce cas devra être traité pour ne pas planter le programme.

Pour les résistances, on éliminera le TS555 en forçant la pin Voltage Control à Vcc lors de la mesure par le convertisseur AD. Tout reviendra alors à mesurer la tension au point milieu de 2 résistances "R" et Rx, sans s'occuper de la sortie du TS555.

On débutera les conversions A/D avec "R"=100 ohms en montant progressivement de valeur mais après la résistance de "R" de 10 K, il sera nécessaire d'utiliser un temps d'acquisition de plus en plus important à cause de l'impédance élevée de "Rx". On atteindra alors 80µs théoriques voire 500µs !
Le temps du convertisseur A/D devra donc être paramétré automatiquement en fonction de la gamme de mesure. (Création d'une Table des délais en fonction de la gamme)

Le fait d'avoir une mesure immédiate oblige à fonctionner en permanence, y compris en absence de composants. (Pas d'économie d'énergie à prévoir dans ce cas)
Une absence de composant est donc une résistance infinie si mode "résistance" ou un condensateur très faible si mode "condensateur".

Pour les condensateurs, le programme assurera la soustraction des capacités parasites pour les gammes les plus faibles (100 ohms et suivantes.

En dernière réflexion, je pense que l'on pourrait ne réaliser que les valeurs en multiple de 10 et réserver les valeurs 5 pour des mesures plus précises. C'est à voir au niveau programme à ce moment et comment diriger vers une solution ou l'autre (Une I/O ou un paramètre à l'initialisation ?)
Ce cas est maintenant traité différemment par un algorithme de calcul des écarts qui permet de limiter à 3 comparaisons le temps, et je pense que c'est tout aussi bien ainsi.

Il reste une part importante de définition qui sera directement traitée par le logiciel en assembleur. Ainsi je m'aperçois que le fait d'avoir ajouté le MOSFET pour la 100 ohms, m'oblige à une sélection 5 Mohm, car à l'origine il y avait toujours une gamme présente et aucune obligation d'utiliser l'Enable du MUX.
C'est maintenant différent mais sans réelle conséquence et cela préserve une I/O encore disponible.

En dernier survol des problèmes et opportunités de modifier, on peut remarquer qu'il serait tout à fait possible d'utiliser une seule entrée pour le comptage et la mesure analogique de tension, car RA4 qui est à la fois l'entrée T1G de comptage est aussi l'entrée analogique AN3.
Cela pourrait présenter quelques avantages…
Le premier est de réduire le nombre d'I/O, mais cela n'est pas vraiment gênant puisque l'on n'est pas "serrés".
Le deuxième point permettrait de réduire légèrement la capacité parasite d'entrée et donc d'être plus précis.
On notera à contrario que cela entraînerait tout de même un peu de temps perdu en croisement des différents registres de programmation des I/O.

Là aussi en rédigeant ce texte, je me suis aperçu que  pour le déblocage de la bascule du TS555, comme je l'avais signalé au début, il aurait été possible d'éviter de forcer à Vcc la pin CV pour mesurer les résistances... Cela aurait encore simplifié ! Vous avez trouvé ? moi oui ! Il faut simplement maintenir l'entrée trig à Zéro, ce qui débloquerait la bascule de contrôle du TS555 et la résistance ne serait alors jamais court-circuitée par le transistor du TS555. (C'est le changement du mode de trig en cours de réalisation qui est la cause !)

Lors de l'initialisation, j'ai placé en premier lieu une petite séquence de contrôle de la fréquence de l'oscillateur interne du PIC, suivie de 45 boucles de variations du MUX, le tout pour contrôle au Scope. Après cette étape le montage affiche nom, révision, auteur et "Tst OK" comme à l'habitude.

Vous aurez bien  noté que le programme spécifique des résistances existe cependant, mais qu'il n'est pas vraiment opérationnel, faute d'être assez précis ! Je crois que le mieux serait de faire un ohmmètre rapide, dont je n'ai pas pour l'instant le besoin impérieux…

Vous trouverez dans la description très certainement un certain nombre de contradictions ou d'erreurs, car j'ai abandonné de reconstruire en totalité l'article, et la relecture précise après un certain temps d'abandon du programme devient vite très difficile et longue…
Alors il faudra vous contenter de "l'ensemble" en sachant qu'il y a très certainement des erreurs et anomalies dans le texte.
Cependant le schéma réel est mis à jour et le typon est très proche du schéma.

REMARQUE :
Une petite remarque technologique cette fois, j'ai constaté pour les condensateurs chimiques des écarts très importants entre les valeurs issues du montage et celles d'un pont de mesure...
J'explique cela par la nature même du principe associé, également par la structure même des chimiques qui sont seulement là comme réservoir d'énergie et utilisés très accessoirement en mode charge / décharge en profondeur.
L'impédance de ces composants est d'ailleurs très mauvaise en HF ce qui explique ces divergences de mesures. Alors à vous de voir si vous préférez une mesure minimaliste de valeur, ou une mesure contextuelle ?

(Je viens de découvrir en relisant le texte que j'avais oublié de faire la liaison CV à RB5 et de la traiter dans le programme des résistances… Je vais corriger cela, car c'est quand même inadmissible et cela provoque très certainement des erreurs de mesure sur Rx !!!)

Alors bricolsec ! Désolé patron personne n'est parfait...!

 ADDENDUM

Lors de mon tri de composants je me suis aperçu d'un phénomène assez surprenant, mais au final très normal...
Rappelez vous que j'ai parlé de "jitter", or je viens d'en découvrir une des sources dont j'aurais pu me douter, mais effectivement nul n'est parfait. Quoi-que...Ce n'est pas vraiment de ma faute car je n'y suis pour rien, et voici pourquoi !

L'appui avec un isolant sur un condensateur CMS pour créer de bons contacts et le mesurer sur le plan cuivré induit une FORCE et une légère déformation du composant CMS. Or la céramique est piézoélectrique et une tension naît de cet effort et vient modifier les valeurs mesurées. Ces modifications sont variables suivants les valeurs et les différents modèles et surtout la force appliquée .

Vous pourrez peut-être utiliser cette propriété pour fabriquer des capteurs de force très très bon marché...???