You are on page 1of 48

N.H.Molinari/ M.

Estevez OverSens

El ABC de la
comunicacin XBee

2013
OverSens / sensado global
www.oversens.com
+54 0230 xxxxxxxx
info@oversens.com

Descripcin detallada de comando API para el manejo de mdulos XBee Serie S2


.Ejemplos de aplicacin detallados y probados.. Gua de comandos API
. Utilizacin de Digi FrameMarker

Indice:

Digi API Frame Maker Utility// Utilitario Digi API Frame Maker
Por Norberto H. Molinari y Marcelo Estevez, OverSens

XBee radio firmware comes in two versions, API mode and AT/transparent mode. API mode extends the level of interaction between a host
application and a module in the network. From Section 2 Serial Interface Protocols - API operation in the XBee Pro Product Manual:
El firmware del XBee viene en dos versiones, el modo de API y el modo AT / transparente. Modo de API se extiende el nivel de interaccin
entre una aplicacin host y un mdulo en la red. De la Seccin 2 - Protocolos de la interfaz en serie - operacin de API en el XBee Pro Manual
del producto:
The API provides alternative means of configuring modules and routing data at the host application layer. A host application can send data
frames to the module that contain address and payload information instead of using command mode to modify addresses. The module will send
data frames to the application containing status packets; as well as source, and payload information from received data packets.
La API proporciona los medios alternativos para la configuracin de los mdulos y el enrutamiento de datos en la capa de aplicacin host.
Una aplicacin host puede enviar tramas de datos al mdulo que contiene informacin de direccin y la carga til en lugar de utilizar el modo
de comando para modificar las direcciones. El mdulo enviar tramas de datos a la aplicacin que contiene los paquetes de estado, as como
de origen, y la informacin de carga til de los paquetes de datos recibidos.
The API operation option facilitates many operations such as the examples cited below:
->
->
->

Transmitting data to multiple destinations without entering Command Mode


Receive success/failure status of each transmitted RF packet
Identify the source address of each received packet

La opcin de operacin de API facilita muchas operaciones, como los ejemplos que se citan a continuacin:
-> La transmisin de datos a mltiples destinos, sin entrar en el modo de comando
-> Recibir xito / fracaso del estado de cada paquete de RF transmitida
-> Identificar la direccin de origen de cada paquete recibido

The Digi API Frame Maker utility was created to generate API frames easily. Here is the link to it
http://ftp1.digi.com/support/utilities/digi_apiframes.htm. This tool corresponds to the API Frames section in the XBee Pro Product Manual at
this link http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/zigbee-mesh-module/xbee-zb-module#docs.
El utilitario Frame Maker de Digi API, fue creado para generar marcos API fcilmente. Aqu est el enlace a la misma,
http://ftp1.digi.com/support/utilities/digi_apiframes.htm. Esta herramienta corresponde a la seccin Marcos de API en del Producto XBee
Pro http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/zigbee-mesh-module/xbee-zb-module#docs.

Here is the list of types of API Frames from the manual:


Aqu est la lista de los tipos de marcos API del manual:

And you will see the buttons corresponding to each type of API frame in the Frame Maker tool:
Y vers los botones correspondientes a cada tipo de trama API en la herramienta Frame Maker:

Para nuestro ejemplos usaremos como direccin de 64DestAddr para Coordinador la 00 13 A2 00 40 69 B1 21 y Como EndPoint la 00 13 A2 00
40 69 82 C7 la cual deber colocarse en el lugar correspondiente cuando se fabrican los paquetes. La 16DestAddr ser para ambos FF FE.
EXAMPLE #1 Sending an AT command to a device
In this example we are going to send an AT command in an API frame. For this example we will send an AT command, using API mode, to set
DIO1 (pin 19) to an output-low and then set it to an output-high. The list of AT commands for XBee Pro modules is in Section 10 of the user
manual. Look under the section for I/O commands. The AT command for DIO1 is D1 and the parameter to set it as an output low is 4:
Ejemplo # 1 - El envo de un comando AT a un dispositivo
En este ejemplo vamos a enviar un comando AT en un marco API. Para este ejemplo vamos a enviar un comando AT, usando el modo de API,
para establecer DIO1 (pin 19) a una salida baja y luego otra vez en una salida alta. La lista de comandos AT para mdulos XBee Pro se
encuentra en la Seccin 10 del manual del usuario. Busque en la seccin de comandos de E / S. El comando AT para DIO1 es D1 y el parmetro
para establecerla como una salida baja es 4

First, click on 0x08 AT Command, then enter D1 in the AT Cmd box and 4 in the AT CmdData box then click on Build Packet. The packet should
be visible in the Packet box as shown below:

En primer lugar, haga clic en 0x08 en el Comando, introduzca D1 en el AT cuadro Comando y 4 en el AT cuadro CmdData continuacin, haga
clic en Crear paquete. El paquete debe ser visible en el cuadro de paquete como se muestra a continuacin:

7E 00 05 08 01 44 31 04 7D is your packet. In this example we are going to take that packet and enter it in the XCTU terminal window and send a
packet to an XBee Pro that we have attached.
7E 00 05 08 01 44 31 04 7D es el paquete resultante. En este ejemplo vamos a tomar ese paquete y entrar en la ventana de terminal XCTU y
enviar un paquete a un Pro XBee que hemos fijado.

In the XCTU terminal window click on the Show Hex button and then click on Assemble Packet. In the pop-up window that appears click on the
HEX button, then enter the 7E 00 05 08 01 44 31 04 7D packet. If you have copied this to your clipboard you can right click and paste to this
window. You can then hit Send Data to send the packet.
En la ventana de terminal XCTU haga clic en el botn Mostrar Hex y luego haga clic en Montar Packet. En la ventana emergente que aparece,
haga clic en el botn HEX, introduzca la 7E 00 05 08 01 44 31 04 paquetes 7D. Si ha copiado esta en el portapapeles usted puede hacer clic
derecho y pegar en esta ventana. A continuacin, puede golpear Enviar datos para enviar el paquete.
This packet will appear in blue in the terminal window and a response will appear in red:
Este paquete aparecer en azul en la ventana de terminal y la respuesta aparecer en rojo:

The response can also be verified with the Frame Maker tool. First, click on 0x88 AT Command Response. Then enter D1 in the AT Cmd window.
Status window has 00 by default which is a successful response. Do not enter a parameter in the CmdData window as it is not returned in the
response. Click on the Build Packet button. Your screen should look like this:
La respuesta tambin se puede verificar con la herramienta Frame Maker. En primer lugar, haga clic en 0x88 AT Comando Respuesta. A
continuacin, introduzca D1 en el AT ventana Cmd. Ventana Estado tiene 00 por defecto, que es una respuesta exitosa. No introduzca un
parmetro en la ventana CmdData ya que no se devuelve en la respuesta. Haga clic en el botn Build Packet. Su pantalla debe tener este
aspecto:

You can now verify that you have a correct response from the radio.
Ahora puede comprobar que tiene una respuesta correcta del modulo.
To change the same output to high you would go through the steps as on page 4 above but insert 5 to the CmdData box instead of 4. The
response should be the same as before.
Para cambiar la misma salida de alta va a ir a travs de los pasos en la pgina 4 anterior, pero insertar 5 al cuadro CmdData en lugar de 4. La
respuesta debe ser la misma que antes.

EXAMPLE #2 Sending a remote AT command from the coordinator to another device


Ejemplo # 2 - Envo de un mando a distancia de comandos AT del coordinador a otro dispositivo
This example assumes you have your Zigbee network set up. You will need to open X-CTU and select the COM port for the coordinator of the
network. Make sure that you can communicate with the coordinator by hitting the Test/Query button on the PC Settings tab. If you are getting
a communication error, try changing the baud rate. The two common baud rates are 9600 and 115200. After you verify that you can
communicate with the coordinator go to the terminal window.
En este ejemplo se supone que tiene la red Zigbee establecido. Usted tendr que abrir X-CTU y seleccione el puerto COM para el coordinador
de la red. Asegrese de que usted puede comunicarse con el coordinador pulsando el botn de prueba / consulta de la ficha Configuracin de
PC. Si usted est recibiendo un error de comunicacin, intente cambiar la velocidad de transmisin. Las dos velocidades de transmisin ms
comunes son 9600 y 115200. Despus de comprobar que puede comunicarse con el coordinador de ir a la ventana de terminal.
We will send a remote AT command, using API mode, to set DIO1 (pin 19) to an output-high. The list of AT commands for XBee Pro modules is in
Section 10 of the user manual. Look under the section for I/O commands. The AT command for DIO1 is D1 and the parameter to set it as an
output high is 5:
Le enviaremos una instancia de comandos AT, usando el modo de API, para establecer DIO1 (pin 19) a una salida alta. La lista de comandos
AT para mdulos XBee Pro se encuentra en la Seccin 10 del manual del usuario. Busque en la seccin de comandos de E / S. El comando AT
para DIO1 es D1 y el parmetro para establecerla como una salida alta es 5:

The other bit of information we will need is the 64-bit destination address of the Zigbee radio that we are sending the remote AT command to.
You will find it on the bottom of your RF module. The numbers should begin with 0013A2 for Digi devices. For this example, my RF modules
address is 0013A20040489C62.
La otra parte de la informacin que se necesita es la direccin de destino de 64 bits del modulo Zigbee que estamos enviando el mando a
distancia de comandos AT a. Lo encontrar en la parte inferior del mdulo RF. Los nmeros deben comenzar con 0013A2 para dispositivos
Digi. Para este ejemplo, mi direccin mdulos RF es 0013A20040489C62.
Now open the API Frame Maker Utility at the link given on page 1. Click on 0x17 Remote AT Command Request, then enter the destination
address in the 64DestAddr box, enter FFFE in the 16DeviceAddr box(we dont know the network address at this point), enter 02 in the
RemoteCmdOptions box(apply changes immediately), enter D1 in the AT Cmd box and 5 in the AT CmdData box then click on Build Packet. The
packet should be visible in the Packet box as shown below:

10

Ahora abra el utilitario API Frame Maker. Haga clic en 0x17 remoto a peticin de comandos, a continuacin, introduzca la direccin de
destino en el cuadro 64DestAddr, introduzca FFFE en el cuadro 16DeviceAddr (no sabemos la direccin de red en este momento), introduzca
02 en el cuadro RemoteCmdOptions (aplicar cambios de forma inmediata), introducir D1 en el cuadro En Cmd y 5 en el AT cuadro CmdData
continuacin, haga clic en Crear paquete. El paquete debe ser visible en el cuadro de paquete como se muestra a continuacin:

11

7E 00 10 17 01 00 13 A2 00 40 48 9C 62 FF FE 02 44 31 05 33 is your packet. (Your packet will be slightly different, varying due to the unique
destination address used.) In this example we are going to take that packet and enter it in the XCTU terminal window and send a packet from
the coordinator to the other RF module.
7E 00 10 17 01 00 13 A2 00 40 48 9C 62 FF FE 02 44 31 05 33 es el paquete. (Su paquete ser ligeramente diferente, variando debido a la
direccin de destino nico que se utiliza.) En este ejemplo vamos a tomar ese paquete y entrar en la ventana de terminal XCTU y enviar un
paquete desde el coordinador al otro mdulo de RF.
Para nuestro caso si trabajamos sobre DIO3; el paquete para colocar en ON DOI3 a enviar ser:

7E 00 10 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 44 33 05 B6
In the XCTU terminal window click on the Show Hex button and then click on Assemble Packet. In the pop-up window that appears click on the
HEX button, then enter the 7E 00 10 17 01 00 13 A2 00 40 48 9C 62 FF FE 02 44 31 05 33 packet. If you have copied this to your clipboard you
can right click and paste to this window. You can then hit Send Data to send the packet.
En la ventana de terminal XCTU haga clic en el botn Mostrar Hex y luego haga clic en Montar Packet. En la ventana emergente que aparece,
haga clic en el botn HEX, introduzca le paquete 7E 00 10 17 01 00 13 A2 00 40 48 9C 62 FF FE 02 44 31 05 33 .Si ha copiado esta en el
portapapeles usted puede hacer clic derecho y pegar en esta ventana. A continuacin, puede golpear Enviar datos para enviar el paquete.

This packet will appear in blue in the terminal window and a response will appear in red:
Este paquete aparecer en azul en la ventana de terminal y la respuesta aparecer en rojo:

12

13

The response can also be verified with the Frame Maker tool. First, click on 0x97 Remote Command Response. Then enter the 64 bit destination
address in the 64SrcAddr window, enter the network address in the 16SrcAddr window(In this instance, 7BBA came from checking the MY
parameter in the destination module in an XCTU window), and enter D1 in the AT Cmd window. Status window has 00 by default which is a
successful response. Do not enter a parameter in the CmdData window as it is not returned in the response. Click on the Build Packet button.
Your screen should look something like this:
La respuesta tambin se puede verificar con la herramienta Frame Maker. En primer lugar, haga clic en Comando Respuesta remota 0x97. A
continuacin, introduzca la direccin de destino de 64 bits en la ventana 64SrcAddr, introduzca la direccin de red en la ventana 16SrcAddr
(En este caso, 7BBA vino de comprobar el parmetro MI en el mdulo de destino en una ventana XCTU), y entre D1 en el AT ventana Cmd .
Ventana Estado tiene 00 por defecto, que es una respuesta exitosa. No introduzca un parmetro en la ventana CmdData ya que no se
devuelve en la respuesta. Haga clic en el botn Build Packet. Su pantalla debe ser algo como esto:

14

You can now verify that you have a correct response from the radio.
Ahora puede comprobar que tiene una respuesta correcta de la radio.
To change the same output to high you would go through the steps as on page 4 above but insert 5 to the CmdData box instead of 4. The
response should be the same as before.
Para cambiar la misma salida a alto, vea los pasos mencionados en las pginas anteriores, pero tiene que insertar 5 al cuadro CmdData en
lugar de 4. La respuesta debe ser la misma que antes.
Para nuestro caso si trabajamos sobre DIO3; el paquete para colocar en OFF DOI3 a enviar ser:

7E 00 10 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 44 33 04 B7

15

Ejemplo # 3 Lectura de un canal analgico a distancia de comandos AT del coordinador a otro dispositivo
Se deber proceder de igual manera que en los casos anteriores, abra el utilitario API Frame Maker. Haga clic en 0x17 remoto a peticin de
comandos, a continuacin, en el campo FrameID introduzca 12 introduzca la direccin de destino en el cuadro 64DestAddr (para nuestro caso
0013200406982C7), introduzca FFFE en el cuadro 16DeviceAddr (no sabemos la direccin de red en este momento), introduzca 0 en el
cuadro RemoteCmdOptions (aplicar cambios de forma inmediata) introducir IS en el cuadro en ATCmd y nada en el AT cuadro CmdData
continuacin, haga clic en Crear paquete. El paquete debe ser visible en el cuadro de paquete como se muestra a continuacin:

16

Al construir el paquete entregara: 7E 00 0F 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 49 53 96

Inicio trama
Largo paquete
Comando remoto pedido
Identificador de trama cualquiera menos
Adress largo
Adress corto
Opciones 00
Comando de pedido IS

7E
00 0F
17
12
00 13 A2 00 40 69 82 C7
FF FE
00
49 53

Recuerde que el modulo que hacer las veces de remoto deber tener la siguiente configuracin:

MDULO REMOTO CONFIGURADO CON:


Direccin: 00 13 A2 00 40 69 82 C7
API
Habilitado
DIO1 = 2 Habilitado Como AD1

17

A travs del X CTU, enviamos el paquete y la respuesta ser:

7E 00 14 97 12 00 13 A2 00 40 69 82 C7 00 00 49 53 00 01 04 00 00 00 0E
0014
97
12
ID
ID
00 00
49 53

CANTIDAD DE BYTES
RESPUESTA REMOTA
FRAME ID
MODULO COMPLETO
MODULO CORTO
OPCIONES
IS

00
01
04 00
00 00
0E

OK RESULT
CANTIDAD MUESTRAS
I/O HABILITADAS (X,AD5,AD4,AD3,AD2,AD1,AD0,DIO8) (DIO7,DIO6,DIO5,DIO4,DIO3DIO,DIO2DIO,DIO1,DIO0)
VALORES CANALES ADC HABILITADOS 1
Checksum

Si variamos el potencimetro VR conectado a la entrada analgica 1 (AN1) del kit, observaremos que cambia el paquete en 00 00 , dependiendo
de su valor y por consiguiente el Checksum variara
Como se llega a saber que I/O tenemos habilitado de donde sale el 04 00, la palabra de habilitacin de salida est compuesta de la siguiente
manera

X
0

AD5
0

AD4
0

AD3
0

04
AD2 AD1
0
1

AD0
0

DIO8
0

00
DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 DIO0
0
0
0
0
0
0
0
0

18

Ejemplo # 4 Lectura de una entrada digital a distancia de comandos AT del coordinador a otro dispositivo
Si queremos saber el valor o estado en que se encuentra una entrada digital desde el coordinador a un EndPoint procederemos de la
siguiente manera. Abra el utilitario API Frame Maker. Haga clic en 0x17 remoto a peticin de comandos, a continuacin, en el campo
FrameID introduzca 12 introduzca la direccin de destino en el cuadro 64DestAddr (para nuestro caso 0013200406982C7), introduzca FFFE en
el cuadro 16DeviceAddr (no sabemos la direccin de red en este momento), introduzca 0 en el cuadro RemoteCmdOptions (aplicar cambios
de forma inmediata) introducir IS en el cuadro en ATCmd y nada en el AT cuadro CmdData continuacin, haga clic en Crear paquete. El
paquete debe ser visible en el cuadro de paquete como se muestra a continuacin, de igual manera que lo hicimos para las analgicas

19

Al construir el paquete entregara: 7E 00 0F 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 49 53 96

Inicio trama
Largo paquete
Comando remoto pedido
Identificador de trama cualquiera menos
Adress largo
Adress corto
Opciones 00
Comando de pedido IS

7E
00 0F
17
12
00 13 A2 00 40 69 82 C7
FF FE
00
49 53

MDULO REMOTO CONFIGURADO CON:


Direccin: 00 13 A2 00 40 69 82 C7
API
Habilitado
DIO3 = 3 Habilitado Como DIO3
A travs del X CTU, enviamos el paquete y la respuesta ser:

7E 00 14 97 12 00 13 A2 00 40 69 82 C7 00 00 49 53 00 01 00 08 00 08 02
Donde:

7E
0014
97
12
00 13 A2 00 40 69 82 C7
00 00
49 53

Inicio de trama
Cantidad de bytes
Respuesta remota
Frame ID
ID modulo completo
Opciones
IS

20

00
OK RESULT
01
CANTIDAD MUESTRAS
00 08 I/O HABILITADAS SOLO DIO3 (X, AD5, AD4, AD3, AD2, AD1, AD0, DIO8) (DIO7, DIO6, DIO5, DIO4, DIO3, DIO2, DIO1, DIO0)

08

AD5
0

AD4
0

00
AD3 AD2
0
0

AD1
0

AD0
0

DIO8
0

08
DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 DIO0
0
0
0
0
1
0
0
0

VALORES CANALES DIO HABILITADOS (DIO3) para DIO3 en 1 y 00 para DIO3 en 0

El valor se corresponde con el bit del peso como la entrada DIO3 est en 1 lgico
X
0

AD5
0

AD4
0

AD3
0

AD2
0

AD1
0

AD0
0

DIO8
0

DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 DIO0


0
0
0
0
1
0
0
0

AD2
0

AD1
0

AD0
0

DIO8
0

DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 DIO0


0
0
0
0
0
0
0
0

En cambio si estuviera en 0 lgico seria

X
0

AD5
0

AD4
0

AD3
0

21

Si queremos trabajar con configuraciones de ms de una entrada habilitada debemos proceder as:
Configuracin, habilitamos AD1 y DIO3
ENVIO COMANDO AT: IS
7E 00 0F 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 49 53 96

Respuesta
Con DIO3 =0 y AD1 = 0
7E 00 16 97 12 00 13 A2 00 40 69 82 C7 00 00 49 53 00 01 04 08 00 00 00 00 06
Con DIO3 =1 y AD1 = Max
7E 00 16 97 12 00 13 A2 00 40 69 82 C7 00 00 49 53 00 01 04 08 00 08 03 FF FC
Habilitacin AD1 4 y de DIO3 8
Valor AD1
Valor 16 bit de todas IO en 1 DIO3

22

Ejemplo # 5 Escribir una salida de PWM a distancia de comandos AT del coordinador a otro dispositivo
La info del manejo de PWM es bastante compleja, para pasar el valor de salida de PWM a un EndPoint debemos tener en cuenta que depender
de la entrada analgica de otro como lo indica el ejemplo, si trabajamos con dos mdulos solamente, en cambio si queremos trabajar enviando
mensajes entre distintos mdulos trabajaremos con API.Las salidas PWM se configuran mediante el comando ATPx=2. La salida PWM0 se conecta con la informacin de la entrada analgica remota
AD0, mientras que PWM1 lo hace con AD1. De esta forma, configurando ATP1=2, el ciclo de trabajo de PWM1 depender del valor de la seal
analgica AD0 en el mdulo remoto. (Comunicacin entre dos placas)
Ejemplo: Tomando dos placas XBoard cualesquiera y alimentndolas, stas se enlazarn. Observar que el LED PWM1 responde a la posicin del
preset VR en la otra placa. Si vara la posicin del preset de una placa, observar como cambia la intensidad del LED PWM1 en la otra. La
transmisin de informacin es a unas cuatro veces por segundo. Este tiempo est regido por el valor del parmetro IR. Ingresando a modo
comando en el mdulo (solapa Terminal, ingresar +++ como en cualquier modem) y luego colocando ATIR=200, luego del tiempo de inactividad,
dicho mdulo comenzar a transmitir cada 512 milisegundos. Podemos evitar el tiempo de inactividad ingresando ATCN y grabar el cambio en
memoria no voltil mediante ATWR. Tambin podemos modificar el valor en la solapa Modem Configuration y grabar todas las modificaciones
presionando el botn Write del grupo Modem parameters and firmware.
Ambos mdulos estn transmitiendo la medicin del preset, el termistor, y el estado de los dipswitches.
Si pasamos a la solapa Terminal, podemos observar el flujo de datos. Si tipeamos algo, esto saldr por el pin TD del puerto serie virtual,
ingresando al pin TD del XBee, y sern transmitidos a la placa remota, saliendo por RD (y viceversa), junto con la informacin de las mediciones.
Si coloca un loop en la placa remota, puenteando TD y RD con un par de pines y un jumper o un trozo de alambre, observar el retorno de sus
propias transmisiones.
Si conecta una de las placas mediante la placa USB2UART a una PC y corre alguno de los programas provistos (dgRFAPIMonitor o XBeeNetView),
podr observar las mediciones del otro mdulo.
Retire la alimentacin de uno de los mdulos. Observar que al cabo de unos segundos (4) el LED PWM0 se apaga, indicando que no se recibe
nada. Sin embargo, el LED PWM1 permanece sin cambios por un tiempo mayor (aprox. 25,5 segundos), retornando luego al estado de reposo.
Esto se controla mediante los parmetros RP (RSSI PWM Timer) y PT (PWM Output Timeout) respectivamente

23

Existe un timer de inactividad que opera de igual forma que los timers individuales de las salidas digitales, el mismo es comn para ambas salidas
PWM, y se controla mediante el comando ATPT, de modo que ATPT=64 es un tiempo de 10 segundos, pasado el cual la salida PWM1 se pone
inactiva (ciclo de trabajo 0%, estado lgico bajo).
Si queremos trabajar con mensajes tipo API procederemos as:
ENVIO COMANDO AT: M1 PARA PWM 0100

24

7E 00 11 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 4D 31 01 00 B3

Valor de PWM M1 0100


Respuesta
7E 00 0F 97 12 00 13 A2 00 40 69 82 C7 00 00 4D 31 00 31

ENVIO COMANDO AT: M1 PARA PWM 0200

7E 00 11 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 4D 31 02 00 B2

Valor de PWM M1 0200


Respuesta
7E 00 0F 97 12 00 13 A2 00 40 69 82 C7 00 00 4D 31 00 31

25

ENVIO COMANDO AT:M1 PARA PWM 0300

7E 00 11 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 4D 31 03 00 B1

Valor de PWM M1 0300


Respuesta
7E 00 0F 97 12 00 13 A2 00 40 69 82 C7 00 00 4D 31 00 31

ENVIO COMANDO AT: M1 PARA PWM 03FF

7E 00 11 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 4D 31 03 FF B2

Valor de PWM M1 03FF


Respuesta
7E 00 0F 97 12 00 13 A2 00 40 69 82 C7 00 00 4D 31 00 31

26

ENVIO COMANDO AT: M1 PARA PWM 0000

7E 00 11 17 12 00 13 A2 00 40 69 82 C7 FF FE 00 4D 31 00 00 B4

Valor de PWM M1 0000


Respuesta
7E 00 0F 97 12 00 13 A2 00 40 69 82 C7 00 00 4D 31 00 31

NOTA1: la respuesta de todos los casos anteriores es la misma

Poner PWM DESDE UN NODO CUALQUIERA con valor PWM1 = 0200


Origen 00 13 A2 00 40 69 82 C7
Destino 00 13 A2 00 40 68 B1 21
Envi valor PWM1 = 0200
7E 00 11 17 12 00 13 A2 00 40 68 B1 21 FF FE 00 4D 31 02 00 2A
Respuesta
7E 00 0F 97 12 00 13 A2 00 40 68 B1 21 00 00 4D 31 00 A9

27

Poner PWM DESDE UN NODO CUALQUIERA con valor PWM1 = 0000


Armamos el comando API, se proceder de la siguiente manera
Origen 00 13 A2 00 40 69 82 C7
Destino 00 13 A2 00 40 68 B1 21

28

Envo valor PWM1 = 0200

7E 00 11 17 12 00 13 A2 00 40 68 B1 21 FF FE 00 4D 31 02 00 2A
Respuesta
7E 00 0F 97 12 00 13 A2 00 40 68 B1 21 00 00 4D 31 00 A9
NOTA2: Se probaron ambos mdulos como END POINT y funcionaron los comandos API bien PWM y AT IS

29

Ejemplo # 6 - Pedir que mdulos estn en red

Quien est en la red comando ATND (ND SOLO QUIEN ESTA EN LINEA)
7E 00 0F 17 12 00 00 00 00 00 00 FF FF FF FE 00 4E 44 49
Responde
7E 00 0F 97 12 00 13 A2 00 40 69 82 C7 00 00 4E 44 05 18
Si quiero saber adems de quien est en lnea que tienen habilitados deber preguntar
7E 00 0F 17 12 00 00 00 00 00 00 FF FF FF FE 00 49 53 3F
Responde
7E 00 14 97 12 00 13 A2 00 40 69 82 C7 00 00 49 53 00 01 00 08 00 00 0A
Entrega quien est en la red y que tienen habilitado y su valor, por ejemplo en dispositivo encontrado es el: 00 13 A2 00 40 69
82 C7 , y tiene habilitado:

30

Ejemplo # 7 Solicitud de pedido remoto de valores de entradas habilitadas pero con nombre propio MY ( 16deviceaddr)
ENVIO COMANDO AT: IS
Ejemplo practico
Configurar mdulo con MY =54 01
Comando AT IS con MY 16 bit en 54 01 ( 16 device addr)
7E 00 0F 17 12 00 13 A2 00 40 69 82 C7 54 01 00 49 53 3E
Respuesta

7E 00 14 97 12 00 13 A2 00 40 69 82 C7 54 01 49 53 00 01 04 00 03 FF B7
Valor AD1 en 03FF
Si no colocamos en el envi la 64DeviceAddr
7E 00 0F 17 12 00 00 00 00 00 00 00 54 01 00 49 53 E5
El modulo no responde

31

Configuracin de mdulos en bajo consumo


Modo de Bajo Consumo (Sleep Mode).
El modo de sueo hace posible que el mdulo RF entre en un modo de bajo consumo de energa cuando no se encuentra en uso.
Para poder entrar en modo de sueo, se debe cumplir una de las siguientes condiciones:
Sleep_RQ(pin 9) est en alto y el mdulo est en pin sleep mode (SM= 1,2 o 5)
El mdulo est en reposo (no hay transmisin ni recepcin de datos) por la cantidad de tiempo definido por ST (Time before Sleep). [ST
slo est activado cuando SM=4,5]
La configuracin de los ciclos de sueo se realiza principalmente con el comando SM. Por defecto, los modos de sueos estn
deshabilitados (SM=0), permaneciendo el mdulo en estado de reposo/recepcin. En este estado el mdulo est siempre preparado para
responder a un comando, ya sea, por el puerto serial o la interfaz RF.
Modos de sueo controlado por Pin
Pin de Hibernacin
Este modo minimiza el consumo de energa cuando el mdulo se encuentra en reposo. Este modo se habilita cuando Sleep_RQ(pin 9) est
en alto, el mdulo terminar cualquier transmisin, recepcin o procedimientos de asociacin y entrar en modo de reposo y luego en
modo de sueo. En este estado el mdulo no responder a comandos entrantes, ya sea, desde la interfaz serial como RF.
Cuando se baja el estado lgico de Sleep_RQ (pin 9) el mdulo saldr del modo de sueo y estar listo para recibir o enviar datos.
Pin Doze
Este modo funciona de la misma forma que el modo Pin de Hibernacin, sin embargo, Pin Doze presenta un tiempo de activacin menor y
mayor consumo de energa.
Para despertar un mdulo operando en modo Pin Doze, se debe bajar Sleep_RQ (pin9) y ste comenzar a transmitir o recibir informacin
cuando la lnea CTS este en nivel lgico bajo.

32

Modos de sueo cclicos


Sueo cclico remoto (SM = 4)
El modo de sueo cclico remoto permite que el mdulo revise la data por la interfaz RF peridicamente. Cuando el parmetro SM es
seteado a 4, el mdulo se configura para efectuar ciclos de sueo, luego, despierta una vez por ciclo para revisar si existen datos en el
coordinador de sueo de la red (SM = 0, CE = 1). El mdulo remoto, enva esta solicitud al coordinador a a intervalos de tiempo
determinados por el parmetro ST (Periodo de dormido). El coordinador transmitir los datos que se puedan encontrar en su buffer de
salida al mdulo remoto una vez recibida la solicitud de datos.
En el caso que el coordinador no tenga datos para ser enviados al mdulo que realiza la solicitud, el coordinador no transmitir y el
mdulo remoto retornar a su estado de sueo. Si existen datos para ser enviados al mdulo solicitante, el coordinador se quedar
despierto y transmitiendo hasta el Timer ST (Tiempo antes de dormir) se complete.
Sueo cclico remoto y Pin para despertar (SM = 5)
Este modo se utiliza para despertar un mdulo remoto, ya sea por la interfaz RF o por poner en estado bajo el pin Sleep_RQ utilizado para
comunicacin orientada a eventos. El sueo cclico funciona de la misma forma que el modo de sueo cclico remoto con la funcionalidad
extra de poder despertar el mdulo utilizando un pin.
Cualquier actividad limpiar la cuenta de ST( Tiempo antes de dormir), de esta manera el mdulo slo volver a dormir luego que no
exista alguna actividad durante el periodo de ST. Si el mdulo despierta por cambios en el pin Sleep_RQ, los posteriores cambios sern
ignorados durante su funcionamiento.
Coordinador de sueo
Este modo configura al mdulo para funcionar como coordinador de sueo. El coordinador acepta mensajes a un mdulo especfico con
direcciones de 16 o 64 bit y los mantiene en su buffer interno hasta que los mdulos remotos despiertan y solicitan datos al coordinador.
El parmetro SP del coordinador debe ser seteado con el mismo valor que los mdulos remotos, para que se pueda producir la
comunicacin entre los ciclos de sueo.

33

Resumen
A continuacin se presenta una tabla resumen, considerando los modos de operacin, consumos, voltajes y condiciones para entrar en
modo de bajo consumo.

Configuracin modos de bajo consumo (ejemplos)


A continuacin se presentan ejemplos de configuracin de los cclos de sueo para un mdulo XBee.
Ejemplo 1
Comandos AT:
ATSM4 // SM = 4
ATST 0x000B // ST queda configurado con 11 [ms]
ATSP 0x0004 // SP queda configurado con 4*10[ms] = 40[ms]
Con SM=4, el mdulo permanece en modo sleep o dormido durante el tiempo SP y revisa si tienes datos provenientes desde el
coordinador durante el tiempo ST. Este ciclo se repite en el tiempo.

34

Ejemplo 2
Comandos AT:
ATSM5 // SM = 5
ATST 0x000B // ST queda configurado con 11 [ms]
ATSP 0x0004 // SP queda configurado con 4*10[ms] = 40[ms]
Con SM=5, el mdulo realizar el mismo ciclo anterior pero solo despertar si SLEEP_RQ (pin 9) pasa a LOW, y permanecer en modo
sleep si este pin se encuentra en HIGH.

35

Ejemplo 3
Comandos AT:
ATSM1
Con SM=1, El mdulo RF solo revisa si existen datos provenientes desde el coordinador cuando el estado de SLEEP_RQ es LOW. Si el
estado es HIGH el mdulo RF permanecer en hibernacin.

36

Resumen de comandos ms importantes


A continuacin se muestra una tabla resumen con los comandos AT para el mdulo Xbee ms importantes. El contenido se muestra con el
rango permitido por el comando, una descripcin, y las configuraciones para cada valor del parmetro. Para utilizar el programa se debe
ingresar AT y luego, sin espacios, el comando a configurar y el valor del parmetro en caso de que se quiera ajustar, o sin nada en caso de
que se quiera consultar el valor de ese parmetro.

37

38

39

40

41

Anexo1:
Modo de operacin API
Este modo es ms complejo, pero permite el uso de frames con cabeceras que aseguran la entrega de los datos, al estilo TCP. Extiende el nivel
en el cual la aplicacin del cliente, puede interactuar con las capacidades de red del mdulo.
Cuando el mdulo XBEE se encuentra en este modo, toda la informacin que entra y sale, es empaquetada en frames, que definen operaciones y
eventos dentro del mdulo.
As, un Frame de Transmisin de Informacin (informacin recibida por el pin 3 o DIN) incluye:
Frame de informacin RF transmitida.
Frame de comandos (equivalente a comandos AT).
Mientras que un Frame de Recepcin de Informacin incluye:
Frame de informacin RF recibida.
Comando de respuesta.
Notificaciones de eventos como Reset, Associate, Disassociate, etc.
Esta API, provee alternativas para la configuracin del mdulo y ruteo de la informacin en la capa de aplicacin del cliente. Un cliente puede
enviar informacin al mdulo Xbee. Estos datos sern contenidos en un frame cuya cabecera tendr informacin til referente el mdulo.
Esta informacin adems se podr configurar, esto es, en vez de estar usando el modo de comandos para modificar las direcciones, la API lo
realiza automticamente. El mdulo as enviar paquetes de datos contenidos en frames a otros mdulos de destino, con informacin a sus
respectivas aplicaciones, conteniendo paquetes de estado, as como el origen, RSSI (potencia de la seal de recepcin) e informacin de la carga
til de los paquetes recibidos.
Entre las opciones que permite la API, se tienen:

Transmitir informacin a mltiples destinatarios, sin entrar al modo de Comandos.


Recibir estado de xito/falla de cada paquete RF transmitido.
Identificar la direccin de origen de cada paquete recibido.

42

Conexin API
Esta conexin, agrega informacin extra a los paquetes de datos RF. Ya no son enviados de forma transparente, sino que cada paquete de datos,
son almacenados dentro de un frame, con una estructura definida que permite una forma ms robusta para enviar datos. Esto permite entre
otras cosas determinar el origen de algn paquete recibido dentro de la red.
Cuando la configuracin API est activada, cada paquete RF que se enva o recibe se encapsula en un frame de datos UART. Para esto se utiliza el
comando AP. El frame se observa en la siguiente figura:

Figura 5-11. Estructura del Frame del modo API.


Existen tres posibilidades de configuracin. Con AP=0, se deshabilita el frame API y el mdulo trabaja en modo transparente. Con AP=1, el
mdulo trabaja en el modo API. Y con AP=2, el mdulo trabaja en modo API, pero con Carcter de Escape. Este modo es necesario solo cuando
se envan bytes que interfieren con la estructura del Frame. stos son:

0x7E Delimitador de Frame.


0x7D Escape
0x11 XON
0x13 XOFF

43

Este modo, ingresa un carcter de escape, adems de otra operacin sobre el bytes de interferencia. Esto hace que el frame sea ms grande, al
agregar bytes, pero evita que la cabecera del frame se confunda con los datos enviados. Otra ventaja es el Checksum, que permite verificar que
los datos entregados no se hayan corrompido.
Entre las posibilidades que permite la API, es la posibilidad de cambiar parmetros a travs de comandos AT, envindolos al mdulo de destino.
As, desde un mdulo, es posible configurar otro utilizando el modo API. Tambin es posible consultar sobre el estado de algn parmetro en
otro mdulo. Adems se puede consultar sobre el estado del mdem, como saber si est asociado a un coordinador, o si el mdulo es o no un
coordinador.

44

Anexo2: Medidas , Circuito elctrico y Placa de desarrollo XBee


Pin Out XBee

45

Medidas XBee

46

Esquema placa de desarrollo

47

Distribucin de componentes y jumpers

48

You might also like