Les analyseurs logiques
Modérateurs : Papy.G, fneck, Carl
Les analyseurs logiques
J'ouvre ce sujets sur les analyseurs logiques, qui sont des outils de diagnostique puissants, mais trop méconnus pour beaucoup d'entre nous.
Quand il s'agit de faire de la mise au point ou du dépannage de circuits logiques et numériques, on se retrouve vite limité, une fois qu'on a vérifié les tensions d'alimentation et les niveaux logiques de quelques points de mesure à l'aide d'un multimètre ou d'un oscilloscope.
C'est alors là que les analyseurs logiques peuvent trouver toute leur utilité, et précisons tout de suite qu'ils ne sont conçus que pour faire du numérique, donc des circuits logiques et à microprocesseurs.
Avant d'aborder plus précisément les analyseurs logiques, je voudrai présenter un instrument assez oublié qui n'a pas leur puissance, mais qui peut rendre de bons services : c'est la sonde logique, qui est un peu l'analyseur logique du pauvre.
Les sondes les plus élaborées peuvent être réglées pour du TTL ou du Cmos, et elles indiquent par la couleur d'une led le niveau logique (1 ou 0) au point de mesure appliqué.
J'en ai deux, et c'est bien pratique pour des vérifications rapides.
Mais les sondes logiques trouvent vite leur limite quand il est question de voir ce qu'il se passe sur le bus de données d'un microprocesseur, par exemple.
C'est là qu'arrivent les analyseurs logiques, qui peuvent mesurer les états sur plusieurs lignes numériques.
Il en existe avec un plus ou moins grand nombre de voies, à des tarifs variables, évidemment.
Personnellement, je dispose d'un 9 voies Scanna plus d'Ikalogic, ce qui suffit à mes besoins, comme je ne fais que du microprocesseur 8 bits.
D'un côté on le branche par une prise USB sur un ordinateur, et de l'autre côté on a un faisceau de grip-fils (de différentes couleurs pour leur repérage) sur les lignes à mesurer.
L'appareil échantillonne sur le bus de données, par exemple, l'état des différents niveaux logiques, et les affiche à l'écran, un peu comme un oscilloscope multivoies.
Chaque trace correspond par sa couleur au grip-fil de même couleur.
Comme il peut être fastidieux d'interpréter tel quel les signaux, il est possible d'afficher leur valeur en hexadécimal (ou en une autre base, à volonté).
De plus, il est par ailleurs possible d'afficher en clair les données d'un protocole informatique défini ; par exemple, si on a choisi de l'USB, les différentes informations mesurées sont affichées en clair.
Voila, j'espère que ce petit article vous aura pour certains mieux fait réaliser ce qu'est un analyseur logique, et ce qu'il peut éventuellement vous apporter.
Je laisse maintenant libre à chacun d'apporter tous les compléments d’information qu'il jugera bon d'ajouter dans ce sujet.
Quand il s'agit de faire de la mise au point ou du dépannage de circuits logiques et numériques, on se retrouve vite limité, une fois qu'on a vérifié les tensions d'alimentation et les niveaux logiques de quelques points de mesure à l'aide d'un multimètre ou d'un oscilloscope.
C'est alors là que les analyseurs logiques peuvent trouver toute leur utilité, et précisons tout de suite qu'ils ne sont conçus que pour faire du numérique, donc des circuits logiques et à microprocesseurs.
Avant d'aborder plus précisément les analyseurs logiques, je voudrai présenter un instrument assez oublié qui n'a pas leur puissance, mais qui peut rendre de bons services : c'est la sonde logique, qui est un peu l'analyseur logique du pauvre.
Les sondes les plus élaborées peuvent être réglées pour du TTL ou du Cmos, et elles indiquent par la couleur d'une led le niveau logique (1 ou 0) au point de mesure appliqué.
J'en ai deux, et c'est bien pratique pour des vérifications rapides.
Mais les sondes logiques trouvent vite leur limite quand il est question de voir ce qu'il se passe sur le bus de données d'un microprocesseur, par exemple.
C'est là qu'arrivent les analyseurs logiques, qui peuvent mesurer les états sur plusieurs lignes numériques.
Il en existe avec un plus ou moins grand nombre de voies, à des tarifs variables, évidemment.
Personnellement, je dispose d'un 9 voies Scanna plus d'Ikalogic, ce qui suffit à mes besoins, comme je ne fais que du microprocesseur 8 bits.
D'un côté on le branche par une prise USB sur un ordinateur, et de l'autre côté on a un faisceau de grip-fils (de différentes couleurs pour leur repérage) sur les lignes à mesurer.
L'appareil échantillonne sur le bus de données, par exemple, l'état des différents niveaux logiques, et les affiche à l'écran, un peu comme un oscilloscope multivoies.
Chaque trace correspond par sa couleur au grip-fil de même couleur.
Comme il peut être fastidieux d'interpréter tel quel les signaux, il est possible d'afficher leur valeur en hexadécimal (ou en une autre base, à volonté).
De plus, il est par ailleurs possible d'afficher en clair les données d'un protocole informatique défini ; par exemple, si on a choisi de l'USB, les différentes informations mesurées sont affichées en clair.
Voila, j'espère que ce petit article vous aura pour certains mieux fait réaliser ce qu'est un analyseur logique, et ce qu'il peut éventuellement vous apporter.
Je laisse maintenant libre à chacun d'apporter tous les compléments d’information qu'il jugera bon d'ajouter dans ce sujet.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Re: Les analyseurs logiques
Matos supportés par Sigrok:
https://sigrok.org/wiki/Supported_hardware
https://sigrok.org/wiki/Supported_hardware
Hacker vaillant, rien d'impossible !
Re: Les analyseurs logiques
Premier analyseur logique : Hantek 6022BL (8 canaux). Je l'ai utilisé comme oscilloscope et je ne souviens pas de l'avoir testé en LA.
Deuxième analyseur logique : Kingst LA1010 (16 canaux). Acheté à cause d'un besoin de plus de canaux à un prix abordable. Mais attention, il est assez limité au bout du compte, genre la période minimum d'une pulsation qu'il détecte est 20 ns.
Troisième analyseur logique : Kingst LA5032 (32 canaux). Acheté à cause d'un besoin de plus de canaux et d'une meilleure précision des périodes des pulsations (6,25 ns).
Deuxième analyseur logique : Kingst LA1010 (16 canaux). Acheté à cause d'un besoin de plus de canaux à un prix abordable. Mais attention, il est assez limité au bout du compte, genre la période minimum d'une pulsation qu'il détecte est 20 ns.
Troisième analyseur logique : Kingst LA5032 (32 canaux). Acheté à cause d'un besoin de plus de canaux et d'une meilleure précision des périodes des pulsations (6,25 ns).
Re: Les analyseurs logiques
Pour ma part j'ai un LA1010 (16 voies) mais on arrive vite aux limites.
et j'ai aussi une version LA... 32 voies la aussi il y à pas mal de limite
et ensuite j'ai un ZeroPlus LAP-C 16064 et la on rentre dans un autre domaine
c'est bien plus confortable et surtout on à accès à énormément de Protocol.
L'interface est très bien faite et pratique.
J'avais put l'acheter dans une boutique suèdoise il y à quelques années
ils faisait une superbe promo à l'époque
Mais ca demande beaucoup de temps entre la connexion des différents
câbles puis l'analyse des résultats, et je m'en suis surtout servit pour la
mise au points d'extensions mais pas pour la réparation (bien que cela
peut être utile aussi).
Et comme la dit notator la sonde logique est aussi très pratique pour vérifier
certains signaux Reset notamment.
et j'ai aussi une version LA... 32 voies la aussi il y à pas mal de limite
et ensuite j'ai un ZeroPlus LAP-C 16064 et la on rentre dans un autre domaine
c'est bien plus confortable et surtout on à accès à énormément de Protocol.
L'interface est très bien faite et pratique.
J'avais put l'acheter dans une boutique suèdoise il y à quelques années
ils faisait une superbe promo à l'époque
Mais ca demande beaucoup de temps entre la connexion des différents
câbles puis l'analyse des résultats, et je m'en suis surtout servit pour la
mise au points d'extensions mais pas pour la réparation (bien que cela
peut être utile aussi).
Et comme la dit notator la sonde logique est aussi très pratique pour vérifier
certains signaux Reset notamment.
Re: Les analyseurs logiques
Salut,
Ouaip, j'ai aussi un LAP-C 32128, une tuerie ce truc, acheté aussi en super promo.
J'ai pu analyser quelques protocoles avec (gpib, one wire, ...) parfois délicat à configurer, mais vraiment très puissant.
A+
Ouaip, j'ai aussi un LAP-C 32128, une tuerie ce truc, acheté aussi en super promo.
J'ai pu analyser quelques protocoles avec (gpib, one wire, ...) parfois délicat à configurer, mais vraiment très puissant.
A+
Re: Les analyseurs logiques
En open source il y a un 24 Chanel 100Mhz a base de Pi Pico. https://github.com/gusmanb/logicanalyzer
Pas encore essayé, j'ai commandé les PCB chez jlpcb, je fais un retour dès que je les aurai reçu et construit.
Pas encore essayé, j'ai commandé les PCB chez jlpcb, je fais un retour dès que je les aurai reçu et construit.
Re: Les analyseurs logiques
C'est un LA5032 ? Je vais bientôt en recevoir un.
Peux-tu en dire plus sur les limites que tu as détecté ?
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Re: Les analyseurs logiques
De mon coté, j'ai des clones de Saleae en 8 et 16 voies. Pour l'instant, ils répondent globalement à mes besoins.
Je trouve juste le soft de Saleae limité. Par exemple, quand on veut décoder un bus d'adresse (analyseur 'parallel'), il demande un signal de 'clock' unique. Hors, il est courant d'avoir besoin de combiner 2 signaux pour avoir une 'clock' valide, ce qui n'est pas possible avec le soft. Par exemple, l'adresse d'une EPROM 2764 n'est valide que si /E (chip enable) et /G (output enable) sont à 0. idéalement, il faudrait pouvoir créer une clock virtuelle en combinant les 2 signaux. Par contre, il semble qu'on puisse faire des analyseurs custom en Python. Je vais me pencher sur la question.
Des choses très utiles aussi sont les 'test clips' qui sont je trouve de plus en plus difficile à trouver pour les anciens chips. Au lieu d'aller d'accrocher directement l'analyseur sur les pâtes des puces, on peut tout préparer calmement sur le test clip et venir ensuite le mettre sur la puce. C'est du coup aussi très facile à retirer.
Voici par exemple mon clone de Saleae 16 voies en action avec un test clip sur un ordinateur très rare donc je parlerai plus tard
Je trouve juste le soft de Saleae limité. Par exemple, quand on veut décoder un bus d'adresse (analyseur 'parallel'), il demande un signal de 'clock' unique. Hors, il est courant d'avoir besoin de combiner 2 signaux pour avoir une 'clock' valide, ce qui n'est pas possible avec le soft. Par exemple, l'adresse d'une EPROM 2764 n'est valide que si /E (chip enable) et /G (output enable) sont à 0. idéalement, il faudrait pouvoir créer une clock virtuelle en combinant les 2 signaux. Par contre, il semble qu'on puisse faire des analyseurs custom en Python. Je vais me pencher sur la question.
Des choses très utiles aussi sont les 'test clips' qui sont je trouve de plus en plus difficile à trouver pour les anciens chips. Au lieu d'aller d'accrocher directement l'analyseur sur les pâtes des puces, on peut tout préparer calmement sur le test clip et venir ensuite le mettre sur la puce. C'est du coup aussi très facile à retirer.
Voici par exemple mon clone de Saleae 16 voies en action avec un test clip sur un ordinateur très rare donc je parlerai plus tard
Dernière modification par gotcha le 24 avr. 2023 10:54, modifié 1 fois.
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Re: Les analyseurs logiques
Le Kingst LA5032 est à 500 MHz mais plus tu utilises des voies, plus ça baisse. Le logiciel ne permet pas de regrouper les voies visuellement en une seule ligne (bus de donnée ou adresse) alors que pourtant on peut lui associer un protocole parallèle pour afficher la valeur en hexa. Il y a bien un système de plugin pour faire ces propres protocoles mais j'ai un peu peur que ce soit avec une vieille version de Visual Studio C++ (2013). A noter que c'est aussi possible en Linux ou MacOS.
Re: Les analyseurs logiques
Après avoir pas mal utilisé des analyseurs logiques USB modernes, j'ai l'impression qu'ils ne sont pas forcement les plus adaptés au travail sur des systèmes à base de microprocesseurs. J'ai donc commencé à m’intéresser aux analyseurs vintages qui me semblent très intéressants car ils ne se contentent pas de faire du 'timing analysis', mais ils peuvent aussi faire du 'state analysis' et pour certains du 'inverse assembler'.
Bon, ils sont clairement gros et lourds, mais ils ont quand même je trouve 'de la gueule'. Comme ils sont presque aussi vieux que les ordinateurs qu'on répare, ils peuvent aussi tomber en panne
Je me suis donc acheté récemment un nouveau joujou, un HP1650A de la fin des années 80. C'est un 80 canaux, 100Mhz en timing et 25Mhz en state, ce qui est largement suffisant pour les machines des années 80. Il n'a franchement pas à rougir devant les analyseurs chinois qu'on utilise.
Actuellement, j'apprends à maitriser la bête, par exemple en traçant des accès mémoire et en déclenchant sur une adresse mémoire en particulier. Un de mes MPF1 me sert de cobaye
Mon prochain objectif est de faire du désassemblage à la volée du Z80. L'analyseur peut le faire (j'ai le soft qu'il faut). A l'époque, il y avait une grande variété d'interfaces dédiées à un processeur particulier pour ce type d'analyseur (qu'ils appelaient 'préprocesseur interface'). Malheureusement, je n'en ai aucune. Après avoir étudié le probleme, il me semble que je vais devoir faire une petite interface de manière à capter les bons signaux et effectuer le désassemblage du Z80 dans l'analyseur.
Bon, ils sont clairement gros et lourds, mais ils ont quand même je trouve 'de la gueule'. Comme ils sont presque aussi vieux que les ordinateurs qu'on répare, ils peuvent aussi tomber en panne
Je me suis donc acheté récemment un nouveau joujou, un HP1650A de la fin des années 80. C'est un 80 canaux, 100Mhz en timing et 25Mhz en state, ce qui est largement suffisant pour les machines des années 80. Il n'a franchement pas à rougir devant les analyseurs chinois qu'on utilise.
Actuellement, j'apprends à maitriser la bête, par exemple en traçant des accès mémoire et en déclenchant sur une adresse mémoire en particulier. Un de mes MPF1 me sert de cobaye
Mon prochain objectif est de faire du désassemblage à la volée du Z80. L'analyseur peut le faire (j'ai le soft qu'il faut). A l'époque, il y avait une grande variété d'interfaces dédiées à un processeur particulier pour ce type d'analyseur (qu'ils appelaient 'préprocesseur interface'). Malheureusement, je n'en ai aucune. Après avoir étudié le probleme, il me semble que je vais devoir faire une petite interface de manière à capter les bons signaux et effectuer le désassemblage du Z80 dans l'analyseur.
Dernière modification par gotcha le 22 mai 2023 07:52, modifié 1 fois.
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Re: Les analyseurs logiques
Ah, c'est très intéressant (j'adore ces vieux appareils). N'hésite pas à développer plus, car pour le moment, j'ai du mal à voir la plus-value de ta démarche...
Par 'désassembler', pour écarter toute confusion possible, je suppose que tu veux dire : traduire les codes binaires que tu recueilles en mnémoniques d'Assembleur...
Pour le MPF-1B (et MPF-1P), il y a sur la carte imprimante un programme de désassemblage qui peut faire cela sur une zone mémoire définie, mais le faire avec un analyseur peut avoir un intérêt supplémentaire qui m'échappe pour l'instant...
Par 'désassembler', pour écarter toute confusion possible, je suppose que tu veux dire : traduire les codes binaires que tu recueilles en mnémoniques d'Assembleur...
Pour le MPF-1B (et MPF-1P), il y a sur la carte imprimante un programme de désassemblage qui peut faire cela sur une zone mémoire définie, mais le faire avec un analyseur peut avoir un intérêt supplémentaire qui m'échappe pour l'instant...
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Re: Les analyseurs logiques
Lorsque tu debugues un système, ce type de désassemblage à la volée via l'analyseur est extrêmement utile. Cela permet d'obtenir la trace d’exécution (avec la valeur des données), ce que tu n'as pas avec un desassembleur 'hors ligne'. Les deux types de désassemblage sont en fait complémentaires.
Sinon, rien pour pour le trigger, sur mon clone de Saleae, il m'est impossible de combiner plusieurs signaux dans leur soft. Avec cet analyseur, j'ai plusieurs clocks que je peux combiner et je peux aussi déclencher sur une valeur d'un bus 8 bits (data) ou 16 bits (adresse). Bon courage avec le soft des analyseurs modernes pour faire cela
Sinon, rien pour pour le trigger, sur mon clone de Saleae, il m'est impossible de combiner plusieurs signaux dans leur soft. Avec cet analyseur, j'ai plusieurs clocks que je peux combiner et je peux aussi déclencher sur une valeur d'un bus 8 bits (data) ou 16 bits (adresse). Bon courage avec le soft des analyseurs modernes pour faire cela
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Re: Les analyseurs logiques
Je me suis fait un petit prototype de 'Z80 preprocessor interface' minimale (inspirée de l'originale qui est introuvable) de manière à pouvoir utiliser l'assembleur inversé d'HP.
Cette interface est nécessaire pour retarder le changement d'état de certains signaux de manière à ce qu'ils soient échantillonnés avec la bonne valeur.
Il faudra que je m'assure que tout est réellement stable au niveau timing mais en tout cas, les premiers essais sont assez concluants.
Sur les photos, j'ai mis le trigger sur un 'opcode fetch' à l'adresse 800h du MPF1, adresse du BASIC. L'analyseur se déclenche bien quand je fais un 'go' sur cette adresse et commence à désassembler ce qu'il observe sur les sorties du Z80
Cette interface est nécessaire pour retarder le changement d'état de certains signaux de manière à ce qu'ils soient échantillonnés avec la bonne valeur.
Il faudra que je m'assure que tout est réellement stable au niveau timing mais en tout cas, les premiers essais sont assez concluants.
Sur les photos, j'ai mis le trigger sur un 'opcode fetch' à l'adresse 800h du MPF1, adresse du BASIC. L'analyseur se déclenche bien quand je fais un 'go' sur cette adresse et commence à désassembler ce qu'il observe sur les sorties du Z80
Dernière modification par gotcha le 23 mai 2023 08:14, modifié 2 fois.
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
- Leraptor06
- Messages : 691
- Inscription : 15 févr. 2022 10:34
- Localisation : Mandelieu
Re: Les analyseurs logiques
C'est fabuleux des outils comme ca. Ca me rappelle l'émotion que j'ai eu de rentrer dans un labo d'ingénieurs la premiere fois. Tout ces equipements me plaisent, maintenant je collectionne les programmateurs de composant. Merci du partage et des belles photos gotcha.
Jp
Re: Les analyseurs logiques
J'aime beaucoup les équipements de développement, avec un attrait certain pour les analyseurs logiques qui sont mes outils de prédilection. Par contre, ça prend de la place, autant si ce n'est plus que des ordinateurs. J'ai aussi un HP 16500B qui est encore plus gros et lourd ! Il est à priori plus puissant que le 1650A que j'utilise pour mes essais. Je n'ai pas encore 'joué' avec, mais cela ne saurait tarder
Coté programmateur, je me contente d'un TL866A très compact pour l'instant
@Leraptor06 tu ne veux pas créer un fil de discussion pour nous présenter tes programmateurs en action ?
Coté programmateur, je me contente d'un TL866A très compact pour l'instant
@Leraptor06 tu ne veux pas créer un fil de discussion pour nous présenter tes programmateurs en action ?
Amstrad CPC et Goupil power
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)