Mise en œuvre du télémètre SRF02 |
ÉTUDE DU TÉLÉMÈTRE SRF02
ORDINOGRAMME DE COMMUNICATION I²C AVEC LE SRF02
Une analyse détaillée de la notice du télémètre à ultrason SRF02, accessible depuis l'onglet "Ressources", a permis d’établir l'ordinogramme qui permet de réaliser la communication entre le module et le micro contrôleur
ANALYSE DE L’ORDINOGRAMME
Pour répondre à la question suivante, on rappelle que :
•une Transmission correspond à un transfert de donnée du micro contrôleur PIC (le maître ou master) vers le module (l'esclave ou slave) donc à une Écriture.
•une Réception correspond à un transfert de donnée du module (l'esclave ou slave) vers le micro contrôleur PIC (le maître ou master) donc à une Lecture.
✍ Pour chaque pictogramme de l'ordinogramme (page 4) repéré de 1 à 8, compléter les informations suivant l'exemple du pictogramme n°1 :
VISUALISATION ET ANALYSE DES TRAMES
Les trames I²C échangées entre le micro contrôleur et le télémètre ont été obtenues grâce à un analyseur de trame et son logiciel USBee Suite.
Lancer le logiciel USBee Suite et ouvrir le fichier SRF02-corrige.usbeecomp
Un clic gauche et un clic droit sur la trame permettent respectivement d'effectuer un zoom avant et un zoom arrière sur cette dernière. Vérifier la chronologie d'arrivée des ordres 1 à 8 :
Remarque : pour des raisons de lisibilité, l'image ci-dessous est un montage de deux parties zoomées.
Nous allons à présent lire les chronogrammes afin de vérifier les résultats fournis par le logiciel USBee suite.Chaque bit de données émis ou reçu par le signal SDA est synchronisé par un front montant d'horloge SCL. Pour l'ordre de sélection du module en écriture à t = 21μs, on obtient :
✍ Effectuer le même travail pour l'envoi de l'ordre de sélection du registre de configuration 0x00 à t = 119μs :
Remarque : À l'issue de cet ordre (0x00), nous avons accès à un registre qui permet de configurer le mode de fonctionnement du module à ultrason. Si on écrit dans ce registre la valeur :
o0x50 alors le module fournira un résultat en pouces (inches) sur 16 bits,
o0x51 alors le module fournira un résultat en centimètres sur 16 bits,
o0x56 alors le module fournira un résultat en pouces sur 8 bits,
o0x57 alors le module fournira un résultat en centimètres sur 8 bits.
✍ Effectuer le même travail pour l'envoi de l'ordre de configuration à t = 216μs :
Remarque : C'est à la fin de cet ordre que démarre la mesure par Ultrasons.
✍ D'après cette trame, dans quel mode de fonctionnement se trouve le module ?
L'ordre qui suit le 0x51 est de nouveau un 0xE0. Nous l'avons déjà détaillée plus haut. Il permet de sélectionner à nouveau le module pour lui demander la récupération du résultat de la mesure.
✍ Décoder la trame suivante et indiquer à quel ordre de 1 à 8 elle correspond ? Indiquer également à quel moment cet ordre intervient sur la trame :
Remarque :
oCet ordre permet de sélectionner l'octet haut du résultat de mesure. À la prochaine lecture, on aura donc accès aux 8 premiers bits de poids fort (MSB : Most Significant Byte). Puis, la lecture suivante sera les 8 bits de poids faible (LSB : Least Significant Byte). Le résultat complet sera sur 16 bits.
oLe logiciel USBee suite permet d'obtenir le résultat dans la base que l’on souhaite (voir cadre jaune de l'image du bus I2C avec un affichage en binaire).
✍ Même question pour la trame suivante :
Remarque : Cet ordre permet de demander l'accès au module en lecture.
Nous allons à présent interpréter les chronogrammes de lecture du résultat de mesure du télémètre. Les deux octets de poids fort et de poids faible sont obtenus respectivement à t = 80,66ms et à t = 80,76ms.
✍ Quelle est la valeur contenue dans l'octet de poids fort du résultat de mesure de distance du télémètre ?
✍ Quelle est la valeur contenue dans l'octet de poids faible du résultat de mesure de distance du télémètre ?
✍ Déduire des deux résultats précédents la distance en cm entre l'obstacle et le télémètre pour laquelle la mesure a été effectuée ?
Distance = ( )2 = ( )10 = cm
Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source