28/08/2013

Analyseur logique 8 voies

1 - Introduction
Combien de fois auriez vous aimez scruter ce qui se passe sur un bus de communication, ne serait-ce que bifilaire : une liaison V24 plus connue sous RS232, examiner le protocole I2C à des fins de débogage  ou encore les signaux circulant sur un bus système ?
Il faut se rendre à l'évidence : l'oscilloscope dépanne de se genre de situation mais ne donne jamais entière satisfaction, il n'a pas été concue dans ce but, le déclenchement n'est pas facilement réalisable et l'instant T est souvent hors de l'écran !
C’est la que l’analyseur logique entre en scène : il est capable de mémoriser une quantité d’informations plus importantes, et de déclencher sa capture selon des critères bien précis : front montant, état haut, sur octet…
L’appareil que je vous propose de réaliser est un analyseur logique bon marché a base de microcontroleur ATMEGA8535, n’ayant aucune prétention de rivaliser avec les appareils professionnels dédiés ne serait-ce que par sa vitesse d'échantillonnage. Cependant ses caractéristiques suffiront à analyser les signaux les plus courants et rendra bien des services.
 Voici le résumé de ses caractéristiques :
  • Analyseur logique 8 canaux 0 / 5 volts
  • Mode de communication : Bus USB
  • Alimentation : autoalimenté par le bus USB
  • Vitesse d’échantillonnage maximum de 1 Mhz (réglable)
  • Tampon mémoire : 32 Ko maximum (réglable)
  • Déclenchement multi critères : état haut et bas, front montant et descendant, sur octet défini
 Un logiciel spécifique accompagne l’analyseur afin d’exploiter les données enregistrés :
  • Paramétrages de la capture et de la taille mémoire tampon
  • Affichage complet et défilant de la capture
  • Sauvegarde d’un fichier de capture avec possibilité d’inclure des annotations
  • Ouverture d’un fichier de capture pour consultation et analyse
  • Export des données au format CSV pour exploitations externes
  • Impression de la capture afficher à l’écran
  • Curseur informatif sur les signaux logique (temps, fréquence, valeur décimale, hexa et binaire)

 2 - Schéma et circuit imprimé
Schéma électronique :
 
L’USB est totalement géré par un module USBMOD3 à base de chip FTDI232BM. Le module est configuré pour tirer son alimentation du bus et ainsi alimenter le reste du montage. Si vous souhaitez avoir plus de renseignements concernant cette interface, je vous invite à visiter la section cours du site.
Le cœur du dispositif repose sur un microcontrôleur Atmel de type ATMEGA8535 16PI. La vitesse maximale sera exploitée pour
l’acquisition des données, car les méthodes de déclenchements et la fonction compteur pour l’adressage de la RAM sont entièrement gérées par lui-même.L’ordre de liaison des broches du microcontrôleur à la mémoire n’à aucune importance pour les adresses, elles ont étés optimisés pour le dessin du circuit imprimé.
Le Buffer de bus 74HCT541 est inséré entre le bus de données commun au microcontrôleur à la mémoire, pourquoi ? : Pendant la phase d’enregistrement des signaux, le Buffer les laisses passés pour qu’ils arrivent à la mémoire ou ils sont enregistrés, puis pendant la phase de restitution, comme l’architecture de cet analyseur est peu commune, il isole les signaux provenant de l’extérieur afin que le programme puisse lire les données stockées dans la RAM. Sans lui aucun résultat correct ne serait à espérer.
On comprend mieux le rôle du microcontrôleur : piloter le Buffer, générer les signaux sur le bus d’adresse de la mémoire (il fonctionne en compteur), attendre une condition programmée pour le départ de l’enregistrement et restituer les signaux par le biais de l’interface USB.On retrouve sur le circuit d’entré un réseau de résistance qui force au niveau bas, à condition que JP1 soit fermé, les broches qui serait éventuellement « en l’air » : le Buffer est très sensible et les signaux non connecté se copie facilement d’une broche à l’autre. La LED 3 indique que la condition de départ à été trouvé est que l’enregistrement est en cours.
Les LED 1&2 sont une indication d’activité de communication avec l’interface : la LED 1 signale la  réception de signaux et la LED 2 une émission.
La liste des composants :
R1, R2, R3 : 330 ohms
Respack : réseau de 8 résistances de 10 K + 1 commun
C1, C2 : 22 pF
C3 : 10 uf / 16V
C4, C5, C6 : 100nF
D1 : LED verte 3.5 mm
D2 : LED rouge 3.5 mm
D3 : LED de tout autre couleur 3.5 mm
IC1 : ATMEGA8535 16 PI
IC2 : Ram statique 32 Ko (256*8)
IC3 : 74HCT541
IC4 : Module USBMOD3 dispo chez Lextronic
Divers :
Barrette mâle simple droite et un cavalier
Les supports pour les circuits intégrés ne sont pas obligatoires mais recommandé, sauf pour le module USB qui sera directement soudé.
Le circuit imprimé et l'implantation des composants :

 
 Vérifier après gravure qu’aucune piste n’est en cours circuit avec une autre et rechercher au multimètre les micro-coupures éventuelles
3 - Réalisation et cablage
Si vous le pouvez, effectuer une opération d’étamage manuelle et dans tout les cas nettoyer bien le circuit à l’aide d’alcool non parfumé ou d’acétone..
Implantation des composants :
  • Dans un premier temps, insérez en priorité les straps, il y en à 7
Mis en place des straps
  • Soudez ensuite les supports de circuits intégrés si vous le souhaitez. Une exception pour le module USB : je ne l’ai pas soudé afin de parfaire la rigidité mécanique lors de la connexion au PC.
  • Finissez avec le reste des composants en commencent par les plus petits et faite attention au sens de la bague de repérage du réseau de résistance.
  • Concernant la sortie des LEDs, je vous conseille de souder des broches sécables afin de pouvoir effectuer un report facile de signalisation. Insérez le Jumper JP1 afin de tirer à la masse les entrées de l’analyseur.
  • Dernière opération : relier les broches TX et RX du module USBMOD3 au microcontrôleur à l’aide de fils souples. Lors de
    l’opération de  routage manuel du circuit imprimé je n’ai pas trouvé d’autre solution !

Vérifiez bien la qualité de vos soudures et les éventuels courts-circuits avant d’implanter le microcontrôleur et les autres circuits. Concernant la ram statique 32 K, je n’ai pas mentionné de référence particulière : il en existe tellement que je vous laisse choisir.
L’implantation des composants étant terminée vous obtiendrez cela :

 4 - Programmation de l' ATMEGA8535
Il faut impérativement programmer les fusibles du microcontrôleur afin de sélectionner son mode de fonctionnement : horloge externe 16 MHz par quartz.
Ci-dessous une copie d’écran de la programmation usine de l’ATMEGA réalisé avec PONY-PROG :

Pour notre application, programmez les fusibles comme indiquer ci-dessous
Compilez le programme à l’aide d’AVR STUDIO et flashez le microcontrôleur.
 5 - Le programme ASM
Bien qu’il ne vous soit d’aucune utilité pour l’emploi de l’analyseur logique, j’ai mis à titre d’informations la méthode de communication entre l’analyseur et le logiciel.
Comme toujours, le PC envoie une trame contenant les informations suivantes :
Le protocole de communication avec l’interface
1 - Sélection de la fréquence d’échantillonnage
 Taille : 1 octet
Caractère Période (ms) Fréquence (KHz)
a
1
1
b
0.5
2
c
0.2
5
d
0.1
10
e
0.05
20
f
0.02
50
g
0.01
100
h
0.005
200
i
0.002
500
j
0.001
1000
2 - Type de déclanchement
 Taille : 1 octet
0 = Sur niveau Bas
1 = Sur niveau Haut
2 = Sur front Montant
3 = Sur front Descendant
4 = Sur octet prédéfini
3 - Voie ou octet de déclenchement
 Taille : 2 octets
Premier octet : contient le numéro de la voie (0…7) ou l’octet de poids fort codé en hexadécimal permettant d’effectuer le début de la capture
Deuxième octet : contient l’octet de poids faible. Dans le cas ou le type de déclanchement choisi se fait par rapport à un état logique sur une voie d’entrée, il faut nécessairement envoyer cette chaîne, l’analyseur logique n’en tiendra pas compte, mais elle est nécessaire pour le protocole de communication. Donc sa valeur n’a aucune importance.
4 - Taille du tampon d’enregistrement
 Taille : 1 octet
caractère
Taille du tampon
1
2028
2
4096
3
8192
4
16384
5
32768
Le programme :
Le code source est commenté  chaque fois que nécessaire.
Une précision tout de même sur certains points :
Il y à 2 routines d’échantillonnage :
La première est gérée par une interruption du TIMER 2 à intervalle prédéfinie
La seconde ne passe pas par l’interruption, il s’agit de la routine d’acquisition à 1 Mhz car le temps que met le microcontrôleur à sauter à l’interruption, l’exécuter et revenir au programme principal est bien trop long. Ne modifier en aucun cas cette routine (ligne 577), elle est calibrée de manière bien précise.Autres point concernant l’émission des données vers le PC : toutes les informations ne sont pas envoyées d’un seul trait : elles sont défragmentées en paquet pour évité de saturer le Buffer de réception de la carte mère.
La vitesse de communication est réglée sur 500 000 Bds grâce à l’emploi du module USB. Remarquez que c’est une vitesse de communication peu commune.
 6 - Installation du Driver USB
Comme tout périphérique PC, le module USB requiert un driver afin que le système d’exploitation puisse le reconnaître et l’utiliser. Si vous souhaitez en savoir un peu plus sur la mise en œuvre du module, je vous invite à parcourir sur le site la section cours.Avant de connecter l’analyseur au PC, procurez vous les drivers dont le lien est donné dans la section cours --> Module USB, il s'agit du driver de type VCP
Dès la connection du module, Windows détecte la présence du nouveau périphérique et demande le driver correspondant. Dirigez le vers le répertoire FTDI que vous aurez préalablement décompacter ou bon vous semble !.
 
Recommencer l’opération si nécessaire. Apres installation du driver, redémarrer la machine est vérifier bien qu’un nouveau port de communication est disponible et retenez son numéro d’attribution (Démarrer, paramètres, panneaux de configuration, système, cliquez sur l’onglet matériel puis le bouton gestionnaire de périphérique et parcourez l’arborescence de la machine jusqu’a trouver Ports COM et LPT)
Ici on remarque bien la présence d’un nouveau port virtuel série. Le système à attribuer le numéro de port COM4
 7 - Le Logiciel d'exploitations de l'analyseur
Lancer le fichier SETUP.EXE et suivez les instructions.
Une fois installé, lancez le logiciel qui se trouve dans le menu « analyseur logique W8 ». Son interface reste des plus simple et nous allons aborder son utilisation
 
La première opération à faire avant toute acquisition est de sélectionner le port série sur lequel est connecté l'interface. (B)
Ensuite il faut choisir la méthode de déclenchement de l’enregistrement. (A) Le déclanchement par octet permet de démarrer la capture si la valeur rentrée en A est présente sur le bus connecté à l’analyseur. Respecter bien l’ordre logique des sondes lors de la connexion au bus à analyser. Vous avez aussi la possibilité de choisir sur quel type de voie la condition de départ doit s’opérer.
Choisissez ensuite la vitesse d’échantillonnage ainsi que la taille de la mémoire tampon. Je tiens à attirer votre attention sur le fait suivant : Plus la taille de la mémoire tampon sélectionnée est grande plus la mise en forme du graphique sera longue. Elle est forcément relative à la puissance de calcul de votre ordinateur.
La zone C permet de regler l'echelle de temps sous le graphique.
Une fois ces paramètres réglés, lancez la capture en cliquant sur « échantillonner »
 Nous allons travailler avec le fichier exemple fourni avec le logiciel. Ce fichier se nomme Sample.
Au passage, les menus du haut permettent d’ouvrir un fichier de données, d’enregistrer une acquisition, d’exporter les données au format CSV et d’imprimer le graphique. Le menu Help permet d’avoir la version courante du logiciel.
Le fichier sample1 est en fait une acquisition faite sur la sortie d’un compteur 8 bit. Remarquer que lors du survol du curseur sur le graphique, des informations s’affiche dans la zone de données.
Cliquez sur le début d’un front sur la voie 0, à ce moment le curseur se fige et un deuxième apparaît. Cliquez une deuxième fois sur la fin du front : a ce moment l le champ de données T1 se rempli et des informations supplémentaires, comme la différence de temps et la fréquence s’affichent à droite. Cliquez une troisième fois pour revenir au mode normal.
Le réglage de l’unité du graphique permet de changer les unités sur l’échelle de temps.Vous pouvez aussi explorer la suite du graphique à l’aide de la barre de défilement.
La possibilité d’entrer une annotation est offerte dans la zone observation E, celles-ci seront alors enregistrées avec le graphique
Il peut arriver que la communication avec l’interface se bloque, dans ce cas fermez le logiciel, débranchez l’interface pendant 5 secondes. Ceci du à la gestion de l’USB qui n’est pas toujours très stable.
Si vous avez des suggestions concernant l’amélioration du logiciel, ou aussi des bugs rencontrés lors de son utilisation, n’hésiter pas à m’en faire part, rien n’est définitivement figé.

TELECHARGEMENT DES FICHIERS
Le téléchargement des fichiers implique votre totale acceptation des conditions ci-dessous :
Toute reproduction, diffusion ou distibution en dehors de ce site et par quelque procédé que ce soit du contenu et des programmes téléchargeables sont strictement interdite sans l’accord préalable de l’auteur.
Les circuits mentionnés ne peuvent être exécutés qu’a des fins particulières ou scientifiques et non pas dans ou pour une entreprise ; ces exécutions et / ou applications se font en dehors de toute responsabilité de l’auteur. L’auteur ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages de quelque nature que se soit pouvant résulter de l’utilisation de ces exemples ou programme.
Tous les noms de produits ou autres marques cités dans ce document sont des marques déposées par leurs propriétaires respectifs.
Ces programmes et applications sont des sharewares, ils sont en libre téléchargement. Si vous en faites usages merci de bien vouloir visiter les liens associatifs présentés en bas de la page d'index, et pourquoi pas, soutenir certaines actions...
La liste des mise à jours ansi que le support technique s'effectue directement sur le forum

0 commentaires:

Enregistrer un commentaire