
| Vous êtes : (racine du site)
(Electronique)
> (Electronique en lycée)
|
|
Liaison RS232 sans fil - Module XBee - Réseau ZigBee - Nombre de visite(s) : 26649 Date de mise à jour : lundi 9 juin 2008, par Dartois Olivier Mis à jour le 15/10/08 Le prétexte de cette réalisationCela fait environ un an que je cherche à programmer à distance mes pics au moyen d’une liaison série sans fil en utilisant TinyBootLoader (voir aussi l’article sur TinyBootLoader). Les "transceivers" classiques n’ont pas un débit suffisant (je veux pouvoir transmettre jusqu’à 115200 baud/s) et leur cout est relativement élevé. En parcourant le site de Lextronic, je suis tombé sur des petits modules qui prennent en charge toute la pile de protocole ZigBee. Ces modules portent le nom de XBee et sont fabriqués par Maxstream/Digi. Depuis Lextronic ne vend plus ces modules mais ils sont disponibles chez Farnell ou MatLog. Présentation des modules XBeeCes modules se présentent de la manière suivante :
Selon la documentation constructeur, il existe deux modes de fonctionnement de ces modules :
Réalisation du dongle USB<->XBeeDans notre cas, nous utiliserons le mode "transparent" de ces modules pour faire une liaison RS232 sans fil. Il faut maintenant interfacer ces modules avec un PC. Comme le port sériel est en voie de disparition, il est plus judicieux d’utiliser un port USB. J’ai donc choisi de réaliser un "dongle USB" pour interfacer le module XBee et le PC avec l’aide du célèbre Chip de FTDI : le FT232R. Ce dongle permet une connection directe sur un port USB du PC grâce à un connecteur USB de type A mâle. Deux dels visualiseront le trafic RX et TX. Une del indiquera si le module XBee est "associé", c’est-à-dire s’il a réussi à établir la connection avec l’autre module XBee. Trois cavaliers permettent d’établir (ou non) les connections DTR, CTS et RTS. La taille étant un critère principal pour la réalisation de ce dongle, les composants seront des CMS (le FT232R n’existe de toute façon plus que dans ce format). En fait il existe des solutions de ce type chez Droids ou chez SparkFun. Le prototype se présente de la manière suivante :
Le schéma électrique, les typons, le plan d’implantation et la liste du matériel sont données en pièces jointes en bas de cet article. Pour souder ces composants nous avons à notre disposition une machine de placement des CMS et un four. Notez cependant que la plupart des composants sont au format 1206 donc vous pouvez les souder directement avec un fer à souder à pointe fine. Seul le FT232R peut poser problème. La solution pour souder correctement ce composant est d’utiliser un flux de soudure (Ref. Farnell : 1521896) et je peux vous assurer que cela fonctionne très bien (jetez un coup d’œil à cette vidéo pour visualiser la technique de brasage). Notez que ce dongle peut recevoir indifféremment des modules XBee standards ou pro. Réalisation et Première mise en fonctionUne fois la plaque réalisée et percée, vérifiez la continuité des pistes et surtout l’absence de court-circuit entre piste très proche. Soudez tous les composants CMS et la fiche USB (Ne soudez pas votre module XBee !). Téléchargez les derniers pilotes pour le FT232R sur le site de FTDI puis branchez le dongle dans un port USB de votre PC (si vous aviez déjà des pilotes FTDI installés, il faut les retirer du système avec l’utilitaire FTClean pour mettre en place les nouveaux). Une fois les pilotes installés vous disposerez d’un nouveau port série "virtuel" sur votre ordinateur. Si le FTDI n’est pas détecté, il vous faudra vérifier vos pistes et surtout les soudures au niveau du FT232R (pas de pont entre deux pattes, circuit correctement alimenté en 5V par le bus USB...). Pour tester le dialogue avec le circuit FTDI, lancez un logiciel de communication par voie série (genre TinyBootLoader au hasard ;-) puis ouvrez le port COM virtuel à une vitesse quelconque (19200baud/s, 8bits de données, pas de bit de parité, 1 bit de stop => 19200,8N1). Envoyez quelques caractères, la del TX doit clignoter à chaque envoi. Maintenant que l’on est un prés sur que le FTDI fonctionne correctement, vérifiez la tension sur la pastille 1 du XBee (Vdd => on doit trouver 3,3V) et la tension sur la pastille 10 (Gnd => on doit trouver 0V). Si ces deux tensions sont correctes alors vous pouvez souder votre module XBee. Configuration du FT232RIl serait bien de personnaliser le message de description du dongle, genre "Pont USB <-> XBee", lorsqu’on branche celui-ci plutôt que d’avoir "USB <-> Serial cable". Vous pensez que les deux diodes TX et RX seraient plus utiles pour indiquer d’autres évènements liés au fonctionnement du FTDI. Bref vous pouvez personnaliser le FT232R avec le logiciel MProg. Téléchargez et installez ce logiciel. Lancez-le puis cliquez sur l’icône "Loupe". Vous devriez avoir la liste des circuits FTDI détectés sur le système (Par ex : Number Of Blank Devices = 0 Number Of Programmed Devices = 1). Si vous n’obtenez rien c’est très certainement parce que vous n’avez pas les derniers pilotes d’installés (voir plus haut). Dans le cas contraire, cliquez sur le menu "Tools" puis "Read and Parse". A partir de ce moment vous pouvez personnaliser votre circuit. Ci-dessous une capture d’écran de ma configuration :
Les ampoules noires indiquent les paramètres modifiés (en particulier n’oubliez pas d’augmenter le courant max fourni par le bus USB : "Max Bus Power" si vous utilisez un XBee Pro car ils ont besoin de plus de courant sans dépasser 150mA). Le cadre rouge indique les paramètres modifiables intéressants. En particulier les paramètres C0 et C1 puisqu’ils sont "reliés" aux dels TX et RX du dongle !
Configuration du XBeeIl faut maintenant configurer un minimum votre XBee. Pour cela vous avez deux solutions. Soit vous réalisez la configuration en envoyant des commandes "AT" au module, soit vous utilisez le logiciel X-CTU. Dans un premier temps, nous allons configurer certains paramètres de bases avec le logiciel X-CTU puis nous testerons quelques commandes "AT". Notez bien que les quelques explications qui suivent ne vous dispense pas de lire la documentation officiel du logiciel (en anglais, format DOC Microsoft Word : lisible avec OpenOffice et disponible au format PDF à la fin de cette article). Connectez votre dongle puis lancez le logiciel X-CTU. Il doit se présenter de la manière suivante :
Dans le premier onglet "PC Settings", réglez la vitesse à 9600bauds/s, 8 bits de données, 1 bit de stop, pas de parité. Cliquez ensuite sur le bouton "Test/Query". Si la communication se passe correctement, une nouvelle fenêtre s’ouvrira avec le type de XBee détecté et le numéro de révision du micro-programme. Dans le cas contraire, essayez avec d’autres vitesses de transmission. Passez ensuite dans l’onglet "Modem Configuration" puis cliquez sur le bouton "Read". Le logiciel X-CTU va lire tous les paramètres du XBee. Vous pouvez alors les modifier dans la liste déroulante qui est apparue. Les paramètres importants dans notre cas (rappel : il faut établir une liaison point à point pour programmer des µc PIC ou autres à distance) :
Ces paramètres sont données pour une version "1241" du firmware. Une fois que tous les paramètres sont modifiés il faut les sauvegarder dans l’eeprom du XBee en cliquant sur le bouton "Write". Il faudra alors vous reconnecter au module XBee pour voir si les paramètres ont été appliqués (attention à changer la vitesse de transmission en baud dans le premier onglet si vous avez changé le paramètre BD). Le dongle d’émission est configuré et n’attends plus que son petit frère pour programmer des µC. Le paragraphe suivant décrit une configuration avancé du module XBee. Vous pouvez allègrement la "passer" si elle ne vous intéresse pas et vous rendre à la section décrivant le "module" de réception. Configuration avancé du XBeeIl s’agit juste ici de vérifier ou fixer quelques paramètres du XBee en mode commande AT. Cliquez sur l’onglet "Terminal" puis tapez "+++" en moins d’une seconde sans les guillemets et sans appuyer sur la touche entrée. Cette combinaison de caractères (modifiable) permet de passer dans le mode commande AT du XBee. Celui-ci vous répond alors "OK" (en rouge pour indiquer les réponses du module, en bleu ce que vous avez tapé).
Si vous ne câblez pas la del asso du dongle vous ne pouvez pas savoir si le module XBee est correctement démarré. Il est aussi intéressant de savoir si d’autre module XBee sont dans le voisinage, etc... Vous disposez des commandes suivantes :
Ainsi avec la commande précédente vous pouvez découvrir et identifier individuellement tous les modules XBee pour éventuellement dialoguer en point à point avec eux grâce à leurs SH et SL (voire NI). Il peut être utile de "reflasher" un module. Soit pour lui changer son type de fonctionnement (coordinateur ou routeur/end device), soit pour mettre un firmware de type AT ou API, soit parce qu’une nouvelle version du firmware en place est sortie. Pour effectuer cette opération, il faut cliquer sur l’onglet "Modem Configuration" puis lire la configuration actuelle en cliquant sur le bouton "Read". Ensuite sous la zone "Function Set" vous voyez apparaitre le type de firmware qui est programmé dans le module. Si vous n’avez pas reprogrammé le module, le firmware disponible doit être ZNET 2.5 ROUTER/END DEVICE AT. Pour changer le micro-logiciel, cliquez simplement sur le firmware désiré, dans notre cas ce sera ZNET 2.5 COORDINATOR AT. Ensuite il suffit de cocher la case "Always update firmware" puis de cliquer sur le bouton "Write" pour changer de firmware. Une fois l’opération finie, il faut avoir à l’esprit que le module XBee est remis en configuration par défaut. Il faudra se déconnecter et se reconnecter en 9600 bauds/s. Le module récepteurLe module récepteur se présente physiquement de la manière suivante :
Le schéma structurel au format Proteus Isis 7.2, le typon au format Ares 7.2 et un document au format PDF de présentation du module de réception sont disponibles à la fin de l’article en pièce jointe. Avant de souder le XBee, il faudra vérifier au multimètre que les tensions de 3,3V en sortie du régulateur et la masse sont correcte. L’alimentation du XBee peut être fourni de manière "extérieur" par une pile de 4,5V, de 9V ou une alimentation stabilisée sur les deux picots prévus à cet effet sur la carte ou l’alimentation peut venir d’un 5V sur le connecteur HE10-10 (broche 1-2), le régulateur 3,3V s’occupe d’abaisser la tension. Dans ce cas, l’interrupteur devra être positionné vers le "bas". Si l’interrupteur est en position vers le "haut", l’alimentation du module XBee est alors fourni DIRECTEMENT à travers le connecteur HE10-10 (broche 1-2). Cette alimentation DEVRA IMPERATIVEMENT ETRE DE 3,3V sous peine de destruction du module. Cela sous-entend que sur la carte qui héberge le PIC a programmer, vous avez un régulateur 3,3V ou que le PIC fonctionne lui-même avec une tension de 3,3V (ce qui serait de tout façon bien mieux pour ne pas faire souffrir les entrées/sorties du module XBee en lui envoyant du 5V issu du PIC). Pour tester votre module de réception, procédez de la sorte :
Pour la suite....c’est à dire la programmation du PIC à distance avec TinyBootLoader c’est pour trés bientôt !!! Je pense faire avec un élève une vidéo qui présente tout ce qui est décrit auparavant, ca sera nettement plus parlant (au sens strict comme au sens figuré :)
|
Dans la même rubrique :
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Visiter le site de l'académie de Limoges | Plan du site | Accueil | |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||