Configuration hardware d`un module XBee par commande AT
Transcription
Configuration hardware d`un module XBee par commande AT
Vincent GARAVILLON Janvier 2012 NOTE D’APPLICATION Configuration hardware d'un module XBee par commande AT Cette note d’application s’adresse aux utilisateurs d’un module XBee série 2 du constructeur Digi dont on peut voir une représentation ci-dessous. SOMMAIRE PRESENATION DU MODULE Xbee SERIE 2 ………………………….………………………………….……. p1 RENTRER EN MODE COMMANDE AT ……………….………………………………….………………………. p2 COMMANDE AT ………………………..………………………….………………………………….…………………. p2 SORTIR DU MODE COMMANDE AT ………………………………….………………….………………………. p5 EXEMPLE DE PARAMETRAGE D’UN MODULE X XBee SERIE 2 ………………………………………. p6 PRESENTATION DU MODULE Xbee SERIE 2 Figure 2 : Module XBee série 2 Figure 1 : Assignement des broches Le module XBee utilise une liaison asynchrone pour communiquer avec un microcontrôleur. La configuration des paramètres de la liaison RS232 (Vitesse, parité, start et stop, …) s’effectue à l’aide des commandes AT. Celles-ci peuvent être envoyées soit par un HyperTerminal soit via un microcontrôleur si l’on ne possède pas de port série. C’est cette deuxième méthode qui est présenté. Cela nécessite d’utiliser au minimum les broches Vcc, GND, OUT et IN du module Xbee. Les broches OUT et IN doivent être connectées respectivement aux broches Rx et Tx d’un microcontrôleur. Le module Xbee peut être alimenté entre 2,7 et 3,3 volts. 1/6 Vincent GARAVILLON Janvier 2012 Vcc Vcc Vcc Tx Tx Module XBee série 2 Microcontrôleur Rx Rx Gnd Gnd Figure 3 : Montage simplifié d'un module XBee et d'un microcontrôleur Note : Les commandes AT ne permettent pas la mise à jour du firmware. RENTRER EN MODE COMMANDE AT Pour modifier ou lire les paramètres du module, on va dialoguer par des commandes "AT" à 9600 Baud (il s’agit de la valeur par défaut du module).Il faut tout d'abord passer dans le mode "commande" en envoyant 3 fois le caractère "+" soit 2B en hexadécimal en moins de 1 seconde. On doit respecter un temps de garde (de 1 seconde) avant et après l'envoi de ces 3 caractères. Le module répond par "OK" + "CR" ( ). Le caractère "+" et le temps de garde sont modifiables par une commande AT. Temps de garde 1 secondes Aucun caractère envoyé «+»«+»«+» Temps de garde 1 secondes Aucun caractère envoyé Commande AT possible Passage en mode AT Note : Le plus souvent, l’échec pour rentrer en mode commande est dû à une erreur de vitesse de transmission. Il faut s’assurer que l’UART du microcontrôleur est bien régler à 9600bps. COMMANDE AT: Il existe un grand nombre de commande AT. Cette note d’application en présente les principales dans le tableau 1. L’ensemble des commandes AT existant peut se trouver à la page 29 du lien suivant : ftp://ftp1.digi.com/support/documentation/90000866_A.pdf Commande de lecture : Elle est constituée des 2 caractères ASCII: « A » et « T » suivis de 2 caractères spécifiques à la commande suivi d'un "CR" ( ). Le module renvoi alors la valeur de son paramètre. 2/6 Vincent GARAVILLON Janvier 2012 Syntaxe d’envoi d’une commande AT de lecture: "AT" + "ASCII commande" + « CR » Exemple: ATDH Le module renvoi la valeur contenu dans le registre DH suivi de « CR ». En cas d’envoi d’une commande AT non reconnu par le module Xbee, celui-ci retourne le message « ERROR ». Commande d’écriture : Elle est constituée des 2 caractères ASCII: "A" et "T" suivis de 2 caractères spécifiques à la commande, puis suit ou pas le caractère "Espace" et enfin suit le paramètre à écrire en hexadécimal. On termine la commande par un "CR" ( ). Le module répond par "OK" suivi d'un "CR" ( ). Les modifications des valeurs contenues dans les registres ne s’appliquent qu’une fois que l’on est sorti du mode commande AT. Syntaxe d’envoi d’une commande AT : "AT" + "ASCII commande" + "Espace" (optionnel) + Paramètre (hexa) + « CR » Exemple: ATDH A3 Cette commande fixe la valeur du registre DH à 0xA3. Le module répond par « OK » suivi de « CR ». ATWR le module sauve les paramètres modifiés dans sa mémoire non volatile et répond par « OK » suivi de « CR ». En cas d’envoi d’une commande AT non reconnu par le module Xbee, celui-ci retourne le message « ERROR ». Il est aussi possible d’envoyer plusieurs commandes à la suite: Exemple: ATID 56, DL 6F1,WR Cette commande fixe la valeur du registre ID à 0x56. Puis fixe la valeur du registre DL à 0x6F1 et sauve les paramètres dans la mémoire EEPROM. Le module répond par « OK », « OK », « OK » suivi de « CR ». Note : Si la vitesse de transmission est modifiée il faut penser à re-paramétrer l’UART avec la nouvelle valeur dès que l’on quitte le mode commande AT de façon à pouvoir communiquer avec le module Xbee par la suite. Tableau 1 : Commande AT Commande AT WR description Sauve les paramètres dans la mémoire non volatile. Il faut impérativement attendre la réponse "OK" du module avant de lui envoyer une nouvelle commande. 3/6 Format du paramètre -- Valeur par défaut -- Vincent GARAVILLON RE Janvier 2012 -- -- 0-1 -- 0 – 0xFFFFFFFF 0 0 – 0xFFFFFFFF 0xFFFF MY MP SH Restaure les paramètres par défaut du module. Cette commande ne réinitialise pas le champ ID Réinitialise les paramètres de la couche réseau sur un ou plusieurs modules au sein du réseau. Toutes les informations de routages sont perdues. NR = 0 : réinitialise le module qui a reçu la commande NR = 1 : réinitialise tous les modules contenus dans le PAN Modifie ou lit les 32 bits MSB de l'adressage destinataire. Modifie ou lit les 32 bits LSB de l'adressage destinataire. Lit les 16 bit de l'adressage réseau du module. Lit les 16 bit de l'adressage parent du module. Lit les 32 bits MSB du n° de série du module 0 – 0xFFFE 0 – 0xFFFE 0 – 0xFFFFFFFF SL Lit les 32 bits LSB du n° de série du module. 0 – 0xFFFFFFFF CH Modifie ou lit le canal utilisé dans la bande 2,4 GHz. ID Modifie ou lit l'adresse du Pan ID. Le changement de PAN est effectué lorsque le module est réinitialisé sur une commande FR, NR ou réalimenter. Défini ou lit le temps qu’acceptera le module pour découvrir d’autre nœud du réseau lorsque ND est activé 0 - 0x1A 0 (0x0B) 1 (0x0C) 2 (0x0D) 3 (0x0E) 4 (0x0F) 5 (0x10) 6 (0x11) 7 (0x12) 8 (0x13) 9 (0x14) 10 (0x15) 11 (0x16) 12 (0x17) 13 (0x18) 14 (0x19) 15 (0x1A) 0 - 0xFFFF 0xFFFE 0xFFFE Défini en usine Défini en usine 0 NR DH DL NT ND PL Cherche et donne les modules trouvés. Pour chacun on obtient: MY + SH + SL + DB + NI. La commande se termine au bout de 2,5 secondes et le module renvoie un "CR"(retour chariot). On peut faire suivre la commande d'un paramètre constitué des 20 caractères du NI d'un module. Dans ce cas on obtient en réponse uniquement les paramètres de ce module. Modifie ou lit la puissance de sortie du module. 4/6 0x0234 0 - 0xFC [x 100 msec] 0x3C optional 20Byte NI or MY value -- 0-4 4 0 = -10 / 10 dBm 1 = -6 / 12 dBm 2 = -4 / 14 dBm Vincent GARAVILLON Janvier 2012 3 = -2 / 16 dBm 4 = 0 / 18 dBm 0-7 0 = 1200 bps 1 = 2400 bps 2 = 4800 bps 3 = 9600 bps 4 = 19200 bps 5 = 38400 bps 6 = 57600 bps 7 = 115200 bps 0–1 0 = CTS non permit 1 = RTS permit 0–1 0 = RTS non permit 1 = RTS permit 0–1 0 = Fonction non enclenchée 1 = Fonction enclenchée 0 – 0xFFFF BD Vitesse de transmission D7 Configuration contrôle de flux D6 Configuration contrôle de flux D5 Configure la LED d’association. La LED clignote 1*/sec quand le module est alimenté. La LED clignote 2*/sec quand le module rejoint un réseau VR Lit la version firmware du module CT Modifie ou lit le Time Out qui fait repasser le module en mode IDLE »repos » si aucune commande AT ne parvient. 2 - 0x028F [x 100 ms] 0x64 CN Dit explicitement au module de quitter le mode commande AT. Modifie ou lit le temps de garde entre l’envoie de deux caractères. Cette période est utilisé pour éviter d’entrer par inadvertance dans le mode commande AT. -- -- 1 - 0x0CE4 [x 1 ms] (max of 3.3 sec décimale) 0 - 0xFF 0x3E8 GT CC Modifie ou lit le caractère ASCII utilisé pour passer en mode commande. 3 0 1 1 Défini en usine 0x2B (‘+ ‘) SORTIR DU MODE COMMANDE AT: Il existe deux méthodes pour sortir du mode commande AT : Si aucune commande AT n'est parvenue au module après son passage en mode commande pendant un temps de TIME OUT de 10 secondes (valeur par défaut et paramétrable par une commande AT), le module retourne en mode « repos ». Pour quitter le mode commande avant la fin du Time OUT, il faut envoyer la commande AT suivante: ATCN et le module répond alors par "OK" 5/6 Vincent GARAVILLON Janvier 2012 EXEMPLE DE PARAMETRAGE D’UN MODULE XBee SERIE 2: Commande AT envoyé par le microcontrôleur via l’UART +++ ATID 56 <entrer> ATMY <entrer> ATCH 2 <entrer> ATBD 7 <entrer> ATDH 0x2614AF <entrer> ATDL 0x65AFC5D <entrer> ATWR <entrer> ATCN <entrer> Réponse du module OK <CR> (Entre dans le mode commande AT) OK <CR> (positionne le PAN à 56) {valeur actuel} <CR> (lit l’adresse réseau du module Xbee) OK <CR> (choix du canal 3) OK <CR> (vitesse de transmission 115200bps) OK <CR> (modifie l’adresse de destination haute) OK <CR> (modifie l’adresse de destination basse) OK <CR> (sauve les paramètres dans mémoire non volatile) OK <CR> (quitte le mode commande AT) 6/6