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 :
|
Un logiciel spécifique accompagne l’analyseur afin d’exploiter les données enregistrés :
|
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é.
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.
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 :
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
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.
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 :
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.
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 »
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.
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.
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