Économisez de l’argent et amusez-vous en utilisant IEEE-488

Il y a quelques mois, je discutais du contrôle des équipements GPIB avec un collègue. En me basant uniquement sur mon intuition et sur la plus brève des recherches, je lui ai dit que les solutions de contrôleur GPIB coûteuses et propriétaires pourraient facilement être remplacées par des outils open source et Linux. Dans les nombreuses semaines qui ont suivi, j’ai failli abandonner ma position plusieurs fois par frustration. Avec un peu de persévérance, en décomposant les problèmes en petits morceaux et en effectuant de nombreuses recherches en ligne pour apprendre des expériences des autres, mon plan a finalement réussi. Je n’ai pas complètement abandonné ma position initiale, j’ai pris du recul et j’ai ajouté quelques qualificatifs.

Qu’est-ce que le GPIB ?

Exemple de schéma fonctionnel HP-IB des années 1970, de hp9845.net

Dans les années 1960, si l’équipement de test était interconnecté, il n’y avait aucune méthode convenue pour le faire. À la fin des années 60, la situation a été quelque peu améliorée par les systèmes de contrôleurs à cage à cartes. Ceux-ci contenaient un certain nombre de cartes d’interface, une par instrument, présentant une interface commune sur le fond de panier. Bien que cette approche soit réalisable, les ingénieurs HP ont réalisé qu’ils pouvaient améliorer considérablement le concept pour inclure ces « circuits imprimés de pontage » dans les instruments et remplacer le fond de panier du porte-cartes par des câbles passifs. Ainsi a commencé le développement de ce qui est devenu le bus d’interface Hewlett-Packard (HP-IB). Le numéro d’octobre 1972 du HP Journal présentait HP-IB avec deux articles principaux : A Système d’interface pratique pour instruments électroniques et Une interface numérique commune pour les instruments programmables : l’évolution d’un système.

Pour surmonter de nombreux problèmes rencontrés lors de l’interconnexion d’instruments et d’appareils numériques, un nouveau système d’interface a été défini. Ce système offre une nouvelle facilité et flexibilité dans les interconnexions de systèmes. L’interconnexion d’instruments pour une utilisation sur la paillasse de laboratoire, ainsi que dans de grands systèmes, devient désormais pratique d’un point de vue économique.

HP a ensuite contribué HP-IB à l’IEC, où il est devenu une norme internationale. En quelques années, il est devenu ce que nous connaissons aujourd’hui sous le nom de GPIB (General Purpose Interface Bus) ou IEEE-488, formalisé pour la première fois en 1975.

La tâche à accomplir

Pourquoi ai-je besoin d’utiliser une interface de communication vieille de 50 ans ? Étant donné que le GPIB a été l’interface de facto pendant tant d’années, de nombreux équipements de test d’occasion peuvent être trouvés sur le marché de l’occasion à des prix très raisonnables, bien moins chers que leurs homologues modernes. De plus, plus il y a de pièces d’équipement de test qui se retrouvent sur les bancs de laboratoire, moins elles finissent dans le système de recyclage ou les décharges. Mais je n’ai pas besoin de ces justifications – le plaisir et le sentiment nostalgique de cet ancien équipement sont une raison suffisante pour moi.

Schéma d’un digipot typique, le TPL0501 (de la bibliothèque d’articles de Digikey)

Mais pourquoi voudriez-vous parler à votre équipement de test via une interface informatique en premier lieu ? Dans mon cas, j’avais un projet où j’avais besoin de calibrer la résistance d’un digipot à chacune de ses positions d’essuie-glace programmables. Cela me permettrait de créer un algorithme d’étalonnage basé sur des données mesurées, où vous pourriez entrer la valeur ohmique souhaitée et obtenir la valeur de registre d’essuie-glace correspondante. Bien sûr, je pourrais faire ces mesures à la main, mais avec 256 positions d’essuie-glace, cela deviendrait vite fastidieux. Si vous voulez en savoir plus sur les potentiomètres numériques, consultez cet article de la bibliothèque de Digikey sur les principes fondamentaux des potentiomètres numériques et comment les utiliser.

DMM de banc Keithley 195A d’occasion d’environ 1982

J’ai noté un multimètre numérique Keithley 195A d’occasion du début des années 1980. Il s’agit d’un DMM de banc à 5-1/2 chiffres, et mon unité a l’option modèle 1950 AC/Amps installée.

Plan d’action

En cherchant, j’ai trouvé une thèse (en allemand) de [Thomas Klima] sur l’utilisation d’un bouclier d’interface GPIB facile à construire sur un Raspberry Pi ou un Pi Zero pour communiquer avec des instruments de laboratoire. Son projet est open source et bien documenté sur les pages GitHub (version Raspberry Pi ici et version Pi Zero ici) son site elektronomikon.

C’est un circuit simple, soutenant mon affirmation instinctive que le GPIB n’est pas si compliqué et que vous pourriez probablement le modifier avec un 8051. J’ai assemblé le projet et j’avais un Raspberry Pi Zero-W prêt à l’emploi.

Du point de vue logiciel, le bouclier utilise le module de noyau Linux existant linux-gpib. Il semblait facile à installer et à fonctionner sur le Pi en peu de temps. Après quelques heures d’installation de PyVisa et de certaines bibliothèques spécifiques à un instrument, je devrais enregistrer automatiquement des données avec des scripts Python en moins d’une journée. Hélas, la réalité ne correspond pas toujours à nos attentes.

Architecture GPIB

Bob « Mr Fancy Pants » Stern opérant un rack d’équipements HP-IB en 1980

Une petite perspective de fond sera utile pour comprendre le concept de GPIB. Si nous visitions un laboratoire d’électronique dans les années 60, l’utilisation d’un ordinateur pour contrôler des séquences de tests répétitives était l’exception plutôt que la règle. Au lieu de cela, vous pouvez voir des bandes magnétiques, des bandes de papier, des cartes magnétiques ou même des cartes sur lesquelles des commandes ont été marquées au crayon. Et pour certaines configurations, le contrôle par ordinateur peut même ne pas être nécessaire. Par exemple, un capteur de température peut tracer directement sur un enregistreur à bande ou enregistrer des valeurs sur un lecteur de bande magnétique. Si vous vous souvenez que c’est le monde dans lequel les ingénieurs HP ont été plongés, l’architecture a du sens.

OMR pour le programmeur de cartes marquées HP-3260A (de la collection de cartes perforées du professeur Jones, Univ of Iowa)

Le GPIB est un bus d’interconnexion flexible utilisant 15 signaux : bus de données 8 bits et 7 bits de lignes de contrôle. Tout appareil sur le bus peut être un auditeur passif ou un locuteur actif. Un locuteur peut parler à plusieurs appareils en même temps, et les appareils peuvent déclencher une interruption s’ils ont un événement qui doit être traité. Les appareils sont interconnectés à l’aide de câbles et de connecteurs qui étaient petits pour l’époque, mais qui sont gênants par rapport aux câbles USB, Ethernet et série d’aujourd’hui. Le connecteur Centronics à 24 broches permet un chaînage facile des appareils, mais c’est une bête lourde – à la rigueur, vous pouvez utiliser un câble GPIB efficacement comme nunchucks.

Les câbles GPIB peuvent servir de nunchucks en un clin d’œil

L’utilisation traditionnelle du GPIB était un ordinateur de contrôle central connecté à une chaîne ou à un groupe d’étoiles d’équipement de test. Cela a historiquement influencé le matériel d’interface GPIB disponible. Pendant des décennies, les cartes d’interface ISA et PCI ultérieures ont été installées dans les ordinateurs, ou l’interface GPIB peut être intégrée si vous utilisiez un ordinateur HP. Ils avaient tendance à être un peu chers, mais comme une carte d’interface contrôlait tous les instruments, vous n’aviez besoin que d’une seule carte dans une configuration de test donnée. National Instruments est devenu le leader dans le monde GPIB des cartes d’interface et des pilotes et logiciels de support, mais leur logiciel propriétaire et leur réputation de prix élevés sont un peu rebutants pour de nombreuses petites entreprises et laboratoires à domicile.

Vous pouvez certainement implémenter une configuration de test automatique entièrement à l’aide d’un câblage GPIB, à la manière des années 1970. De nombreux systèmes hérités de ce type existent toujours, en fait, et doivent encore être maintenus. Mais plus que probablement, notre utilisation du GPIB de nos jours serait d’adapter un ou deux instruments afin qu’ils puissent être utilisés dans votre configuration de test non GPIB, que ce soit LAN, USB, série ou une combinaison de ceux-ci. Cela bouleverse l’économie de la situation et c’est pourquoi les adaptateurs GPIB à faible coût pour un seul instrument sont recherchés.

Que les problèmes commencent

Le Pi Zero-W dispose d’un WiFi intégré – en fait, c’est la seule connexion LAN à moins que vous ne connectiez des circuits externes. Mais je n’ai pas réussi à le connecter à mon routeur WiFi. Pendant très longtemps, j’ai pensé qu’il s’agissait d’une erreur de l’opérateur. J’ai pas mal de Raspberry Pi 3 et 4 utilisant le mode WiFi sans aucun problème. Alors que je commençais à résoudre le problème, j’ai appris que les outils de gestion de réseau dans Debian / Raspberry Pi OS avaient changé au fil des ans. Il existe de nombreux tutoriels montrant différentes manières de configurer les choses, certains d’entre eux étant obsolètes.

Un Pi Zero-W sans tête était vraiment mort sans aucune connexion LAN, j’ai donc assemblé un nid de rat de câblage USB et un adaptateur HDMI pour pouvoir au moins obtenir une invite, et j’ai commandé quelques adaptateurs USB-LAN pour me mettre en ligne temporairement . Des heures et des heures de recherche et de test d’idées, j’ai finalement trouvé quelques messages obscurs suggérant que la radio du Pi Zero-W avait des problèmes de connexion dans certains pays – la Corée du Sud figurait sur cette liste.

En effet, c’était le problème. Je pourrais temporairement changer le pays WiFi de mon routeur aux États-Unis, et le Pi Zero-W se connecterait très bien. Je ne pouvais pas laisser ça comme ça, alors je suis retourné en Corée du Sud et j’ai continué à utiliser le câblage LAN filaire pour mon travail immédiat. Ce problème particulier a une bonne fin, cependant. Sur les forums Raspberry Pi, l’un de leurs ingénieurs a pu confirmer le bogue et a soumis une demande de modification à Cypress Semiconductors. Quelques semaines plus tard, nous avons reçu une proposition de firmware mis à jour à tester. Il a résolu le problème et, espérons-le, sera ajouté dans une prochaine version.

Le routeur devient fou

À ce stade, j’ai quelques Pi Zeroes, un Pi 4B et quelques adaptateurs USB-LAN qui fonctionnent tous. Étant donné que ces adaptateurs USB-LAN peuvent se déplacer – un adaptateur pourrait être sur l’ordinateur ABC aujourd’hui et sur l’ordinateur XYZ demain – j’ai soigneusement étiqueté chaque adaptateur et entré ses détails dans les fichiers /etc/hosts et /etc/ethers sur mon routeur. Et mon réseau est mort rapidement. Cela a été difficile à résoudre, car surprise, extraire des informations du routeur est gênant lorsque le réseau est gelé. J’ai finalement compris que j’avais croisé par erreur deux entrées pour les adaptateurs USB-LAN dans les tables du routeur, et cela a rendu OpenWRT fou.

Interfaces USB-LAN Obtenir des étiquettes d’adresse MAC

Cela a pris tellement de temps à trouver et à résoudre que ma solution était un peu exagérée avec le recul. Tout d’abord, j’ai complètement effacé le routeur et réinstallé le firmware à partir de zéro. J’ai également pris le temps de mieux organiser mes données de nom d’hôte et de bail statique. J’ai trouvé ce Gist de [Krzysztof Burghardt] qui convertit votre /etc/hosts et /etc/ethers dans OpenWRT /etc/config/dhcp fichier, et l’a modifié pour répondre à mes besoins. J’ai acheté un deuxième routeur de secours que je peux rapidement échanger si cela se reproduit. Et enfin, mais pas des moindres, je suis tombé en panne et j’ai acheté une imprimante d’étiquettes pour marquer clairement ces adaptateurs USB-LAN avec leurs adresses MAC.

Prêt à partir

Mesurons !

Enfin, je suis prêt à faire un vrai travail sur mon projet. Ignorer les fils volants en arrière-plan est juste pour le plaisir – ils vont à un analyseur logique Analog Discovery 2 pour observer les signaux GPIB. La montre-bracelet est un clin d’œil à ma paresse – j’ai mis un vieux smartphone sur un trépied pour regarder le compteur dans le laboratoire et je l’ai surveillé depuis mon ordinateur de bureau tout en testant des scripts Python. De temps en temps, la vidéo se verrouillait et j’utilisais la trotteuse pour indiquer si les choses se déroulaient bien ou non. Dans la deuxième partie de cette saga, je résumerai l’histoire des mesures, donnerai plus d’informations sur GPIB et ses révisions, et montrerai des graphiques de ma configuration de test automatisé.