Table des matières:

Ouvre tes yeux! Analyseur logique : 21 étapes
Ouvre tes yeux! Analyseur logique : 21 étapes

Vidéo: Ouvre tes yeux! Analyseur logique : 21 étapes

Vidéo: Ouvre tes yeux! Analyseur logique : 21 étapes
Vidéo: Capture et analyse d’une trame de LED WS2812B 2024, Juillet
Anonim
Image
Image
Assemblée
Assemblée

L'analyseur logique facilite votre visualisation du train d'impulsions, qui sont les bits voyageant dans une ligne de communication. Ainsi, cela vous ouvre les yeux pour identifier un éventuel problème. Pourquoi est-ce important? C'est un outil de développement et de détection de pannes très efficace qui peut vous faire gagner du temps. Dans cette vidéo d'aujourd'hui, nous évaluerons l'importance de l'analyseur logique, observerons certains protocoles de pratiques courantes lors de l'utilisation de cet appareil et illustrerons un échec de détection sans l'aide d'un analyseur logique.

Dans cette vidéo, j'ai utilisé un modèle relativement bon marché (environ 35$) et efficace, avec une interface graphique et un logiciel gratuit.

Étape 1: Assemblage

Étape 2: Fonctionnalités utilisées - Serveur

Fonctionnalités utilisées - Serveur
Fonctionnalités utilisées - Serveur

• Cavaliers pour les connexions

• 2 Arduinos (nous avons utilisé 2 Mega Arduinos 2560)

• Analyseur logique (nous utilisons Saleae)

• Câbles de connexion USB pour Arduino et analyseur.

• Oscilloscope (facultatif)

• Protoboard

Étape 3: Circuit utilisé

Circuit utilisé
Circuit utilisé

Ici, nous avons le schéma, qui montre la surveillance de trois broches: TX0, SDA et SCL. Nous avons deux Arduinos: un maître et un esclave.

Étape 4: Code source: Maître

Dans la configuration, nous inclurons la bibliothèque pour la communication i2c. Nous sommes entrés dans le réseau en tant que maître et avons initialisé le numéro de série 0. Dans la boucle, nous avons demandé des octets de données esclaves pour la communication avec notre numéro Arduino 8, comme nous l'avons défini dans l'exemple. On imprime dans la série, qui sera évaluée avec l'analyseur logique, les octets reçus.

#include // inclut une bibliothèque pour la communication I2C void setup() { Wire.begin(); // Entra na rede como Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia a serial 0 } void loop() { Wire.requestFrom(8, 6);// requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available()) { // enquanto houver bytes para receber… char c = Wire.read(); // recebe cada byte et armazena como caracter Serial.print(c); // envia o caracter pela serial (na verdade vai para o buffer) } delay(500); // aguarda meio segundo }

Étape 5: Code source: esclave

Dans ce code esclave, j'inclus à nouveau la bibliothèque pour la communication i2c. J'entre dans le réseau en tant qu'esclave avec l'adresse 8. Nous enregistrons l'événement de requête et l'associons à la fonction "requête". Vous n'avez rien à faire sur la boucle, donnez juste un délai de 0,1 seconde.

Enfin, nous avons la fonction de demande qui sera exécutée lorsque l'événement de demande par le maître se produit, qui a été enregistré dans le programme d'installation. Nous répondons, enfin, par un message de 6 octets.

#include //inclut une bibliothèque pour la communication I2C void setup() { Wire.begin(8); // entra na rede como escravo com endereço 8 Wire.onRequest(requestEvent); // enregistrement de l'événement requis // et association à la fonction requestEvent } void loop() { delay(100); //não faz nada no loop, apenas aguarda 0, 1 segundo } //função que será executada quando ocorrer o evento de requisição pelo mestre //foi registrada como evento no setup void requestEvent() { Wire.write("teste "); // répond avec un message de 6 octets }

Étape 6: Analyseur: Matériel

Analyseur: matériel
Analyseur: matériel

Taux d'échantillonnage jusqu'à: 24 MHz

Logique: 5 V à 5,25 V

Seuil bas 0,8 V

Seuil haut niveau 2,0 V

Impédance d'entrée d'environ 1 Mohm ou plus

Étape 7: Installation du logiciel Saleae

Installation du logiciel Saleae
Installation du logiciel Saleae

Le programme qui reçoit les données capturées par l'analyseur logique et décode les bits peut être téléchargé sur le lien suivant:

Étape 8: Configuration de l'environnement pour nos tests

Configuration de l'environnement pour nos tests
Configuration de l'environnement pour nos tests

Je montre l'interface ici, que j'ai particulièrement appréciée car elle était propre.

Étape 9: Configuration de l'environnement pour nos tests

Configuration de l'environnement pour nos tests
Configuration de l'environnement pour nos tests

Voici quelques options de configuration:

• En cliquant sur le nom du canal, nous pouvons le changer.

• Nous pouvons déterminer si l'un des canaux servira de déclencheur pour la capture et la forme de détection.

• En cliquant et en maintenant enfoncé le numéro de canal, vous pouvez changer votre position dans la liste.

• En cliquant sur l'engrenage, nous pouvons configurer la visualisation du canal, l'expansion…

• … ou en masquant la chaîne. Nous masquerons tous les canaux que nous n'utiliserons pas.

Étape 10: Configuration de l'environnement pour nos tests

Configuration de l'environnement pour nos tests
Configuration de l'environnement pour nos tests

En cliquant sur les flèches du bouton "Démarrer", il y a les options du taux d'échantillonnage et de la durée de l'enregistrement.

Pour une raison quelconque, si le logiciel détecte que le taux ne peut pas être maintenu, un message s'affichera et le taux sera automatiquement réduit jusqu'à ce qu'une valeur fonctionnelle soit atteinte.

Étape 11: Configuration de l'environnement pour nos tests

Configuration de l'environnement pour nos tests
Configuration de l'environnement pour nos tests

Nous inclurons également les analyseurs de protocole. C'est d'abord l'I2C, en suivant les définitions de la librairie WIRE, et en associant correctement les canaux. Enfin, nous présenterons l'analyseur à la série asynchrone. Il faut faire attention à bien configurer les paramètres en fonction du montage.

Étape 12: Configuration de l'environnement pour nos tests

Configuration de l'environnement pour nos tests
Configuration de l'environnement pour nos tests

Dans l'onglet "Decoded Protocols", nous devons vérifier quels analyseurs de protocoles sont activés. Là, les données apparaîtront. Dans l'onglet "Annotations", nous pouvons ajouter certains des résultats pour une meilleure visualisation. Cliquez simplement sur l'icône "ajouter une mesure".

Étape 13: Capturer: Présentation

Capturer: Aperçu
Capturer: Aperçu

Dans l'écran de capture, le programme affiche le train d'impulsions de données du SDA, SCL et TX0.

Étape 14: Capture: Résultat de l'analyse du protocole

Capture: Résultat de l'analyse du protocole
Capture: Résultat de l'analyse du protocole

Ici, on voit le résultat de la capture. Dans l'onglet "Protocoles décodés", nous avons:

• La demande du serveur pour l'esclave avec l'id 8.

• La réponse de l'esclave, six caractères: "t", "e", "s", "t", "e" et un espace.

• Chacun est suivi d'un bit ACK (Acknowledge) indiquant la réception correcte de l'octet, à l'exception du caractère d'espacement NACK (Not Acknowledge).

• Ensuite, nous voyons le résultat du décodage de la série TX0, indiquant les caractères reçus et envoyés au terminal série Arduino IDE.

Étape 15: Capture: Canal 0 et données (SDA)

Capture: Canal 0 et données (SDA)
Capture: Canal 0 et données (SDA)

Sur cette image, nous avons le train d'impulsions de la ligne SDA. Notez que chaque octet transmis peut être visualisé.

Étape 16: Capturez: Canal 1 et horloge (SCL)

Capture: Canal 1 et horloge (SCL)
Capture: Canal 1 et horloge (SCL)

Maintenant, nous avons ici le train d'impulsions de la ligne SCL. Vous pouvez vérifier plus de détails simplement en positionnant la souris sur le signal, comme vous le voyez sur l'image. Nous pouvons voir que la fréquence d'horloge était à 100 kHz.

Étape 17: Capture: Canal 2 et série (TX0)

Capture: Canal 2 et série (TX0)
Capture: Canal 2 et série (TX0)

Comme pour le train d'impulsions de la ligne TX0, on peut voir le bit Start et les points de cadrage de chaque bit. Nous avons un octet représentant le caractère "e".

Étape 18: Configuration de l'environnement pour nos tests

Configuration de l'environnement pour nos tests
Configuration de l'environnement pour nos tests

Ici, nous avons plusieurs options pour lire les données.

Étape 19: Capture: Oscilloscope et analyseur

Capture: Oscilloscope et analyseur
Capture: Oscilloscope et analyseur

Regardez ici l'écran que j'ai capturé à partir de mon oscilloscope. Le signal de l'analyseur logique ne représente que les détections haute et basse, mais il ne représente pas la qualité du signal. Ceci peut être mieux observé sur un oscilloscope.

Étape 20: Capture: Observation d'une panne (exemple de panne en série)

Capture: Observation d'une défaillance (exemple de défaillance en série)
Capture: Observation d'une défaillance (exemple de défaillance en série)

Maintenant, je vais montrer un exemple d'échec en série, qui m'est réellement arrivé. J'étais avec un modem GPRS, le genre utilisé sur un téléphone portable, la carte SIM, essayant de se connecter à l'ESP32. Mais il ne s'est tout simplement pas connecté. J'ai ensuite vérifié l'alimentation, le câblage, et changé la carte. J'ai tout fait, mais rien ne l'a réparé. J'ai décidé de faire une analyse logique: j'ai découvert que le signal ESP sur l'UART 115200 commençait à ne pas correspondre. C'est-à-dire que l'ESP32 jouait ce qui devrait être 115, 200 à une vitesse différente de celle-ci.

Cette erreur, qui a été identifiée par l'analyseur, était affichée avec un X en rouge. D'après ce que je comprends, le programme dit que le point qui a un tel morceau est à moitié déplacé dans le temps. À mesure que ce changement augmente, il peut arriver un moment où tout ne correspond pas, de sorte que l'information n'atteint pas l'autre côté. Il arrive généralement, mais le SIM800 est sensible et s'il n'est pas exact, l'information ne parvient pas à l'autre bout.

Je ne sais pas si c'est quelque chose qui arrive souvent ou pas, mais cela m'est arrivé, et j'ai donc décidé d'aborder ce sujet ici. Alors qu'est-ce que j'ai fait ? J'ai ralenti. Si vous mettez 9, 600, 19, 200, jusqu'à 38, 400, ça marche, ce qui n'arrive pas avec le 115, 200.

Étape 21: Téléchargez les fichiers

PDF

INO

Conseillé: