15) Comportement du démonstrateur P14.

Chamboulant complètement les expérimentations précédentes, il présente déjà un MENU de BASE qui pourrait bien être définitif et qui anticipe sur les possibilités futures de l’appareil. Les deux fonctions Menu EEPROM et Sortie USB n’étant que des prévisions potentielles si la place dans le programme le permet, actuellement les touches concernées provoquent un BIT sonore d’erreur. Passons en revue le comportement du programme pour les fonctions de base.

RESET avec un B.P. activé.

Actuellement une seule option sur RESET est envisagée. Du coup n’importe laquelle des quatre touches provoquera l’effet qui RESET avec un BP activé invoque le menu d’affichage des durées d’échantillonnage en fonction de la BASE de TEMPS sélectionnée. On modifie librement la BdT pour faire afficher les durées totalisées par la mémorisation d’une TRACE complète. Mais en sortie la cadence de 112µS la plus rapide est initialisée soit une BdT de 1.34mS. Les Fig.79 A et B présentent les pages-écran des durées minimales et maximales. Durant cette fonction la touche du HAUT augmente la valeur, celle du BAS la diminue en permutation circulaire. GAUCHE génère un BIP sonore d’erreur, alors que DROITE ouvre le MENU de BASE.

L’amplification durant l’échantillonnage.

Augmenter par deux ou par quatre le gain en tension en entrée sans avoir à intercaler un amplificateur quelconque est particulièrement avantageux. Nous avons vu Fig.16 en Page 10 lors du chapitre sur la mémorisation des échantillons, que pour pouvoir enregistrer les données sur un OCTET il fallait diviser la valeur par quatre ce que l’on obtenait avec deux décalages (SHIFT) à droite. Toutefois, si la tension en entrée ne dépasse pas 2,5V en ne divisant que par deux, la « portée » restera codée sur un byte. Par ailleurs, si la trace ne dépasse pas 1,25V crête, on peut même ne plus diviser, tout en ayant une valeur qui reste inférieure à 255. Il suffit tout simplement de réserver une touche pour sélectionner x1, x2 et x4 et fonction du gain choisi faire deux décalages à droite, un seul ou aucun. Au lieu d’indiquer la valeur de l’amplification en 1, il est bien plus facile pour l’interprétation de préciser la tension à pleine échelle en hauteur sur le graticule. Ensuite en 2 c’est la valeur de la BdT par graduation qui est visualisée. Pour finir, en 3 est affichée la valeur de la tension efficace évaluée sur la « largeur de la fenêtre » avec en 4 le curseur représentatif de cette dernière.

Méfiance, cette technique simple à mettre en Å“uvre présente toutefois un piège potentiel à l’utilisation. En effet, on divise par deux et par quatre la valeur numérisée sur dix BITs pour la stocker sur un byte. Considérons la Fig.83 pour raisonner sur un exemple concret. En A est symbolisée la numérisation sur 10 BITs avec les poids faibles à droite et les poids fort à gauche. La tension présente fait 2V qui numérisée donne 1023 / 5 x 2 soit 409 en décimal. La conversion analogique sur 10 BITs va donc fournir cette valeur 409 en BINAIRE. Puis, pour stocker sur un byte on effectue deux décalages à droite soit la configuration sur la Fig.83 représentée en A. La valeur numérisée est de 102. L’instruction map() conduira pour le calibre 5v à une déviation verticale de 59 / 255 x 102 soit » 24 PIXELs. Avec l’amplification par deux on ne réalise qu’un seul décalage. La valeur qui sera mémorisée est donc celle en B avec une valeur binaire qui vaut maintenant 204 toujours compatible avec un byte. Le bit de poids faible « 0 » pouvant être un « 1 » ne changera pas le résultat final car il sera « éliminé » lors de la transposition. L’instruction map() conduira pour le calibre 2.5v à une déviation verticale de 59 / 255 x 204 = 47 PIXELs. Pour établir la relation qui existe entre toutes ces valeurs numériques, considérons la Fig.84 qui résume le cas d’une mesure sans amplification en 1 et 2, et celui d’une CAN avec un seul décalage à droite en 3 et 4. Sur le calibre 5v en 2, la tension de 2Vcc repérée en jaune donne la CAN = 409. Cette dernière transposée par map() engendrera sur la TRACE verticale 5 une déviation de 24 PIXELs. La déviation est bien de deux graduations sur le graticule. Amplification par deux avec un seul décalage, la CAN donne la valeur double de 818 qui est stockée avec une grandeur de 204. Elle conduit à une transposition de 59 / 255 x 204 soit » 47 PIXELs. Et alors ?

Supposons maintenant que l’on reste en amplification de deux, mais que la tension soit de 3v au lieu de deux, c’est à dire qu’elle dépasse le calibre maximal de 2,5v. La CAN va fournir une valeur de 1023 / 5 x 3 soit 613 en décimal qui sur la Fig.85 est représentée en A. Le décalage à droite se traduit par la configuration B. C’est ici que se produit le problème. En effet comme le stockage ne s’effectue que sur un OCTET, on ne prend que les BITs situés dans les cellules coloriées en bleu. La valeur mémorisée sera alors égale à 50 ce qui revient à ne prendre que ce qui dépasse de la grille ! Cet effet est illustré sur la Fig.86 pour laquelle l’amplification x2 a été volontairement appliquée alors que la tension crête dépassait le seuil de 2,5v. Il s’agit d’un montage graphique « artificiel » du coté gauche en A, proposant une simulation de ce qui devrait s’afficher si la hauteur de l’écran était plus importante et que l’incident ne se produisait pas. En B est reproduite la réalité ou tout ce qui se trouve dans le graticule est remplacé par ce qui se trouverait au dessus. L’arche de sinusoïde n’est plus du tout affichée correctement. Sur la Fig.87 l’aléa est strictement analogue, sauf que sur cette copie d’écran pour la visualisation de la TRACE l’option « filaire » remplace la représentation de la courbe en mode surface. Une conclusion importante doit être tirée de ces manipulations et s’impose relative à l’utilisation de l’appareil :

Au passage, pour clore ce chapitre … j’ai KKkkkrrrraké ! Dans la galerie d’images, comparer
Image 21.JPG avec Image 22.JPG car la solution de la Fig.29 n’était vraiment pas commode. Outre que l’assemblage manquait de « raideur », pour déplacer l’ensemble au laboratoire de mesures (Qui abrite des appareils comme le fréquencemètre.) c’était un peu une galère.

Une base de temps mal sélectionnée.

Considérons la Fig.88 qui présente une TRACE pour le moins étrange. Elle donne l’impression que trois sinusoïdes s’imbriquent sur la largeur de l’écran. L’affichage serait encore plus troublant en mode surface et présence du graticule. Ce que l’on observe n’est pas du tout un incident inattendu ou un problème dans le logiciel. Ce phénomène qui a été décrit Fig.14 en Page 9 se produirait sur tout autre oscilloscope numérique. La preuve en est apportée sur la Fig.89 qui est l’image obtenue sur un petit appareil du commerce. Les conditions sont similaires, mis à part le fait que la sinusoïde est complète et que le graticule fait 12 graduations sur la largeur.

Décalage latéral de la TRACE.

Permettre à l’utilisateur de décaler latéralement le signal affiché est un impératif. En effet, lorsque l’on veut évaluer la durée d’une portion du signal pour en déduire la période et la fréquence, il faut pouvoir librement aligner l’une des transitions sur le graticule, ce qui est indispensable quand la fonction Afficher TRACE est activée. La technique utilisée est très simple, il suffit de faire tourner le potentiomètre pour décaler la trace vers la gauche. En position 0 la fenêtre n’est pas décalée. (Voir la Fig.90)

Supposons que l’on a validé avec le curseur 3 la fenêtre n°3 et que le potentiomètre soit en butée antihoraire. On visualise la courbe contenue dans la fenêtre repérée par le cadre 2. On tourne dans le sens horaire 1 la fenêtre se déplace vers la droite. Quand le curseur est vers le haut, on a balayé la moitié de l’amplitude possible de rotation. La fenêtre de visualisation repérée par le cadre 5 est à moitié sur n°3 et à moitié sur n°4. On continue en 4 de tourner le bouton flèche. Lorsque la pleine rotation est appliquée, le décalage vers la droite est équivalent à la largeur d’une fenêtre, ce qui revient à afficher la section voisine n°4 repérée dans le cadre rouge 6. Un aléa se produit si on a indexé avec le curseur en 7 la fenêtre n°4. Quand on tourne en 8 le potentiomètre, le logiciel va aveuglément chercher à droite 10 dans la mémoire dynamique les OCTETS en 9 qui suivent, comme s’il y avait une autre fenêtre coloriée ici en orange avec le curseur virtuel 11. Hors ce sont des données du programme qui contiennent des valeurs quelconques comprises entre 0 et 225. Du coup, on voit sur la grille arriver comme sur la Fig.91 des affichages « quelconques ». Ce n’est pas du tout un problème majeur, il suffit d’y penser. Noter que la saisie de l’orientation du potentiomètre donne une CAN qui peut fluctuer à ± 1 comme pour toute valeur numérique issue d’une mesure. Il en résulte parfois une instabilité latérale qui peut agacer. Dans ce cas, il suffit d’utiliser la touche HAUT avec clic long pour activer ou suspendre le décalage latéral.

La fonction Afficher TRACE.

Participant indubitablement aux performances de l’appareil, on a vu en Page 35 qu’elle influence directement le nombre d’échantillons mémorisés. Lors des études initiales en Page 34 on se doutait que les choix effectués étaient provisoires, et effectivement l’utilisation du clavier est un peu différente tout en reprenant la notion de clic court et de clic long. Annoncé en début de ce chapitre, sur RESET c’est la page écran de la Fig.92 qui est visualisée. C’est le MENU de BASE provisoire qui est réactivé chaque fois que l’on sortira des fonctions invoquées et en particulier pour Afficher TRACE. Pour cette fonction la nouvelle répartition des actions est résumée sur la Fig.93 avec surligné en jaune le actions déclenchées par un clic long.

Le respect des durées de la BASE de TEMPS.

C’est une caractéristique importante de tout oscilloscope. Il faut impérativement que l’on puisse faire confiance aux BdT affichées en 1 et à la correspondance en latéral sur le graticule. La théorie énoncée en Page 37 c’est bien. Elle justifie les algorithmes utilisés et les constantes référencées dans le programme. Il reste incontournable de vérifier avec précision le comportement logiciel pour valider avec fiabilité le bienfondé du codage. Dans ce but un générateur de signaux « carrés » extrêmement précis piloté par un oscillateur quartz thermostaté a été mis en Å“uvre. Les huit calibres de la base de temps ont été vérifiés avec les valeurs consignées sur le tableau de la Fig.95 avec les divers essais présentés sur la Fig.94 en A, B, C, D, E, F, G et H.

 

Remarquez au passage sur la Fig.93 que la fonction d’affichage de la trace a été simplifiée. En effet, indiquer les conditions de synchronisation n’est pas pertinent, cette information n’apportant aucun renseignement particulier sur le signal électrique enregistré. Du coup, maintenant la touche GAUCHE n’est plus affectée sur clic long.

 

Les options de Déclenchement.

Contrairement à ce qui avait été envisagé initialement lors de l’élaboration du démonstrateur P11, le traitement des options de déclenchement ne fait plus partie du MENU de BASE car l’expérimentation montre que c’est durant la saisie des échantillons qu’il faut pouvoir modifier les conditions « en temps réel » sans avoir à sortir de la fonction. C’est donc, comme montré sur la Fig.99 avec la touche de GAUCHE en clic long que l’on ouvre ce sous-menu lorsque la fonction d’échantillonnage est en cours. L’affectation des touches de la Fig.96 ignore la notion de clic court ou de clic long et la sortie se fait de façon « standard » en utilisant le bouton poussoir DROIT. L’entrée dans cette fonction allume dans la LED tricolore la composante bleue pour inviter à utiliser l’une des touches du mini clavier. Lorsque l’on clique en 1 sur la touche du HAUT ou celle du BAS on modifie la nature du Front qui engendrera le déclenchement. Haut valide une variation Montante affichée FM en 2 alors que BAS valide le front Descendant qui est indiqué par FD. Cette transition sera prise en compte aussi bien sur des signaux analogiques que sur des traces binaires. Dès que l’on active ce menu, l’orientation du potentiomètre branché sur A0 est prise en compte et transposée entre 0 et +5Vcc avec visualisation analogique sur la rampe verticale en 4 et numérique à proximité en 5. En 3 sur la Fig.97 on peut valider ou suspendre le niveau de Seuil de déclenchement. Quand on suspend cette option comme sur la Fig.98 par exemple, la synchronisation ne tient plus compte de la valeur de la tension mais déclenche la numérisation dès que la tension est au dessus ou en dessous de +2.5V en fonction du Front sélectionné. Ignorer le seuil de déclenchement est à utiliser quand le signal est de type binaire et de type TTL pour pouvoir déclencher sur une transition « verticale ». Remarquer sur la Fig.98 que le niveau en 6 a été modifié et que le déclenchement se réalisera sur une variation descendante. Dès la sortie de ce menu les contraintes sont immédiatement prises en compte saut en mode Libre.

La fonction Numériser.

C’est la plus « charnue » car elle intègre à la fois le sous-menu pour choisir les contraintes de déclenchement, permet d’ajuster le gain en entrée en x1, x2 et x4, autorise le choix entre le mode MANUEL ou AUTOMATIQUE, et octroie l’ajustement de la base de temps. Autant dire que le petit clavier est Utilisé à saturation, la Fig.99 résumant l’affectation des touches. En standard c’est DROITE avec un clic long qui fait sortir de la fonction et ramène au MENU de BASE. Déjà précisé dans un chapitre précédent, quand on active Numériser, la composante verte de la LED tricolore s’illumine durant chaque numérisation. Quand on active le mode MANUEL la LED triple s’illumine en violet pour préciser à l’opérateur que les trois touches encadrées en bleu sur la Fig.79 déclenchent un échantillonnage et ne peuvent plus influencer la BdT ni le gain en tension. (Passe en vert/rouge durant la numérisation des 256 échantillons.) Quand on active le sous-menu de choix des options de synchronisation, la composante bleue s’illumine incitant à utiliser le petit clavier. Le mode « Filaire » ou Surface défini lors de l’affichage de la TRACE est conservé durant la fonction de saisie des valeurs et d’affichage de la courbe.
Considérons la Fig.100 qui montre deux cas de saisies d’échantillons. Un signal triangulaire est injecté en entrée de l’appareil. On remarque que c’est la fenêtre de gauche n°1 qui est imposée en entré de la fonction échantillonnage et que l’on retrouvera en sortie. En 1 est indiqué la valeur de l’échelle verticale. En 2 on retrouve la BdT. En 3 la lettre ‘A‘ signifie Automatique, alors que ‘M‘ précise le mode Manuel. En 4 la lettre ‘L‘ indique le mode Libre. Le caractère ‘N‘ signifie qu’un Niveau de Seuil est validé. Enfin, un ‘B‘ implique une technologie Binaire avec par convention un niveau TTL. (TTL pour Transistor/Transistor/Logic fonctionnant entre 0 et +5Vcc.) Enfin en 5 est affiché la nature du front de déclenchement soit Descendant comme en A ou Montant comme en B. Dans les deux cas le Seuil de synchronisation a été ajusté à +2,5V. Sur la Fig.101 le signal injecté est de type Binaire « accroché » en Automatique sur un front Montant. Sa période a été ajustée à exactement 4 x 1.35 = 5.4mS. On en déduit que la fréquence est d’environ 185 Hz. Abordé dans le chapitre intitulé L’amplification durant l’échantillonnage on a vu qu’il était possible avec HAUT en clic long de modifier le gain en entrée en permutation circulaire x1, x2 et x4. À titre d’exemple c’est le cas sur la Fig.102 qui montre un signal alternatif dont les « arcs négatifs » sont éliminés par la protection électronique. Les échantillons sont saisis ici en mode Manuel pour changer. Le déclenchement reste synchronisé à un Seuil de 0,3V sur un front Montant. Sur cette photographie on peut vérifier que l’amplitude verticale à pleine échelle est choisie à 1,25V, c’est à dire avec l’amplification x4. Chaque graduation est équivalente à 0,25v et l’on déduit que la tension crête avoisine 0,6v. Le point de déclenchement à gauche est un peu au dessus de la graduation du bas, la tension de déclenchement correspond bien à celle qui a été consignée.

ATTENTION : Si la tension de seuil est supérieure au maximum du signal le système reste figé jusqu’à injection d’un signal de tension suffisante ou activation d’un RESET.

Un petit « bilan financier ».

L’observation du listage du démonstrateur P14 à la compilation nous informe que le code objet pèse lourd, car il gloutonne 14304 Octets soit 46% de l’espace réservé au programme. La Fig.103 représente un thermomètre dont la colonne rouge représente l’espace mémoire dédiée au programme actuellement consommée. C’est parfaitement normal, voir très raisonnable, car ce croquis est bien plus qu’un simple démonstrateur car il émule complètement l’Oscilloscope et intègre toutes les fonctions fondamentales. De plus le MENU de BASE est déjà entièrement en place, sans compter que sur RESET on peut faire afficher les durées d’échantillonnage en fonction de la BdT. Par ailleurs les textes sont ici en mémoire de programme et non en EEPROM. Alors nous pouvons nous réjouir, car il reste une place considérable pour améliorer l’ordinaire et ajouter à profusion de petits perfectionnements et des fonctions secondaires. Nous n’allons pas nous en priver.

Stratégie d’utilisation de la bibliothèque U8glib.

Livret Bibliothèque U8glib en main, on notera en bas de P4 que chaque police de caractère encombrera la RAM dynamique. Il ne faut donc pas s’étonner qu’actuellement le programme P14 consomme 46% de l’espace vital. Ce n’est pas dramatique. D’un autre coté, si l’on change plusieurs fois de police de caractères, ce sera chaque fois du code qui s’ajoute. Aussi, comme l’on affichera que des textes « ordinaires », on n’utilisera qu’une seule police de caractères pour tout le programme. Par ailleurs, il aurait été tentant d’exploiter les beaux curseurs de la page P9 du petit livret. Toutefois, il suffit de déclarer la « fonte réduite » et de faire afficher une fois le curseur pour que le programme enfle de 100 octets. On se passera de la possibilité d’afficher des curseurs graphiques. Par ailleurs, si possible on minimisera le nombre des outils graphiques utilisés. (Dans cette application les triangles ne s’imposent pas par exemple.) Le plan budgétaire étant approuvé, on peut passer à la suite du développement du logiciel. L’exploitation de l’appareil sera nettement plus agréable si l’on peut sauvegarder une TRACE en EEPROM. On s’y colle !

La suite est ici.