Home  >  Support  >  Support Forum  >  Problem in receiving data: xbee pro s2b

Problem in receiving data: xbee pro s2b

0 votes
I have to transfer data between two xbee modules wirelessly.
I don't have any setup to configure xbee by x-ctu
I have to configure xbee on the run with the help of microcontroller.
I am using Xbee Pro S2B.


1.Since xbee pro s2b don't let to set ""atmy" to I don't understand how to set xbee own address.

2. Below are code I have used for tx & rx.
In both codes I am able to configure xbee as per the code. I get ok reeponse from all the commands.
Tx code transmit data after that. But problem is rx don't receive data??

I have try to set different destination address of xbee's, same address but no help??


3. Tx code is below:
void code_tx(void) { /* CPU = 16Mhz Uart: 9600bps, 8 bits , 1 stop , no parity MCU to XBEE Pro S2b connections: Vcc, Dout,Din,Sleep,GNd Rest all pins on xbee are unconnected */ XBEE_PIN_WAKEUP(); wait_delay_us(20000); while( 'F' == response ) { /* send a dummy character */ xbee_uart_tx_string((u8_t *)("X")); /* guard time */ wait_delay_us(3000000); /* send AT command */ xbee_uart_tx_string(("+++")); response = xbee_response_ok_check(); if( 'T' == response ) { /* factory defaukt */ wait_delay_us(200000); xbee_uart_tx_string(("atre")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send destination address */ wait_delay_us(200000); xbee_uart_tx_string((u8_t *)("atdh0")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send destination address */ wait_delay_us(200000); xbee_uart_tx_string("atdlffff")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send ID address */ wait_delay_us(200000); xbee_uart_tx_string(("atid2244")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* sleep mode setting */ wait_delay_us(200000); xbee_uart_tx_string(("atsm1")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* write my address in memory */ wait_delay_us(200000); xbee_uart_tx_string(("atd70")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* write my address in memory */ wait_delay_us(200000); xbee_uart_tx_string(("atwr")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* exit AT mode */ wait_delay_us(200000); xbee_uart_tx_string(("atcn")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } /* if failed then restart */ if( 'F' == response ) { for(cnt = 0 ; cnt < 100 ; cnt++) wait_fine_delay_us_timeout(WAIT_TIMER_PSC_20000_US , WAIT_TIMER_ARR_20000_US); } } /* SLEEP MODE */ XBEE_PIN_SLEEP(); while(1) { XBEE_PIN_WAKEUP(); wait_delay_us(10000); xbee_uart_tx_string(("HELLO WORLD")); XBEE_PIN_SLEEP(); wait_delay_us(4000000); } } [/CODE] 3. Rx code is below: [CODE]void code_rx(void) { /* CPU = 16Mhz Uart: 9600bps, 8 bits , 1 stop , no parity MCU to XBEE Pro S2b connections: Vcc, Dout,Din,GNd Rest all pins on xbee are unconnected */ while( 'F' == response ) { /* send a dummy character */ xbee_uart_tx_string((u8_t *)("X")); /* guard time */ wait_delay_us(3000000); /* send AT command */ xbee_uart_tx_string(("+++")); response = xbee_response_ok_check(); if( 'T' == response ) { /* factory defaukt */ wait_delay_us(200000); xbee_uart_tx_string(("atre")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send destination address */ wait_delay_us(200000); xbee_uart_tx_string((u8_t *)("atdh0")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send destination address */ wait_delay_us(200000); xbee_uart_tx_string("atdlffff")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send ID address */ wait_delay_us(200000); xbee_uart_tx_string(("atid2244")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* write my address in memory */ wait_delay_us(200000); xbee_uart_tx_string(("atwr")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* exit AT mode */ wait_delay_us(200000); xbee_uart_tx_string(("atcn")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } /* if failed then restart */ if( 'F' == response ) { for(cnt = 0 ; cnt < 100 ; cnt++) wait_fine_delay_us_timeout(WAIT_TIMER_PSC_20000_US , WAIT_TIMER_ARR_20000_US); } } while(1) { xbee_response_check(); } } [/CODE][CODE]void code_tx(void)
{
/*
CPU = 16Mhz
Uart: 9600bps, 8 bits , 1 stop , no parity

MCU to XBEE Pro S2b connections: Vcc, Dout,Din,Sleep,GNd
Rest all pins on xbee are unconnected

*/


XBEE_PIN_WAKEUP();
wait_delay_us(20000);

while( 'F' == response )
{
/* send a dummy character */
xbee_uart_tx_string((u8_t *)("X"));

/* guard time */
wait_delay_us(3000000);

/* send AT command */
xbee_uart_tx_string(("+++"));
response = xbee_response_ok_check();

if( 'T' == response )
{
/* factory defaukt */

wait_delay_us(200000);

xbee_uart_tx_string(("atre"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* send destination address */
wait_delay_us(200000);

xbee_uart_tx_string((u8_t *)("atdh0"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* send destination address */
wait_delay_us(200000);

xbee_uart_tx_string("atdlffff"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* send ID address */
wait_delay_us(200000);

xbee_uart_tx_string(("atid2244"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* sleep mode setting */
wait_delay_us(200000);

xbee_uart_tx_string(("atsm1"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* write my address in memory */
wait_delay_us(200000);

xbee_uart_tx_string(("atd70"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* write my address in memory */
wait_delay_us(200000);

xbee_uart_tx_string(("atwr"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* exit AT mode */
wait_delay_us(200000);

xbee_uart_tx_string(("atcn"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}


/* if failed then restart */
if( 'F' == response )
{
for(cnt = 0 ; cnt < 100 ; cnt++)
wait_fine_delay_us_timeout(WAIT_TIMER_PSC_20000_US , WAIT_TIMER_ARR_20000_US);
}

}

/* SLEEP MODE */
XBEE_PIN_SLEEP();


while(1)
{
XBEE_PIN_WAKEUP();
wait_delay_us(10000);
xbee_uart_tx_string(("HELLO WORLD"));
XBEE_PIN_SLEEP();

wait_delay_us(4000000);

}


}
[/CODE]


3. Rx code is below:

void code_rx(void) { /* CPU = 16Mhz Uart: 9600bps, 8 bits , 1 stop , no parity MCU to XBEE Pro S2b connections: Vcc, Dout,Din,GNd Rest all pins on xbee are unconnected */ while( 'F' == response ) { /* send a dummy character */ xbee_uart_tx_string((u8_t *)("X")); /* guard time */ wait_delay_us(3000000); /* send AT command */ xbee_uart_tx_string(("+++")); response = xbee_response_ok_check(); if( 'T' == response ) { /* factory defaukt */ wait_delay_us(200000); xbee_uart_tx_string(("atre")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send destination address */ wait_delay_us(200000); xbee_uart_tx_string((u8_t *)("atdh0")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send destination address */ wait_delay_us(200000); xbee_uart_tx_string("atdlffff")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* send ID address */ wait_delay_us(200000); xbee_uart_tx_string(("atid2244")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* write my address in memory */ wait_delay_us(200000); xbee_uart_tx_string(("atwr")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } if( 'T' == response ) { /* exit AT mode */ wait_delay_us(200000); xbee_uart_tx_string(("atcn")); xbee_uart_tx_data(0x0d); response = xbee_response_ok_check(); } /* if failed then restart */ if( 'F' == response ) { for(cnt = 0 ; cnt < 100 ; cnt++) wait_fine_delay_us_timeout(WAIT_TIMER_PSC_20000_US , WAIT_TIMER_ARR_20000_US); } } while(1) { xbee_response_check(); } } [/CODE][CODE]void code_rx(void)
{

/*
CPU = 16Mhz
Uart: 9600bps, 8 bits , 1 stop , no parity

MCU to XBEE Pro S2b connections: Vcc, Dout,Din,GNd
Rest all pins on xbee are unconnected

*/

while( 'F' == response )
{
/* send a dummy character */
xbee_uart_tx_string((u8_t *)("X"));

/* guard time */
wait_delay_us(3000000);

/* send AT command */
xbee_uart_tx_string(("+++"));
response = xbee_response_ok_check();

if( 'T' == response )
{
/* factory defaukt */

wait_delay_us(200000);

xbee_uart_tx_string(("atre"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* send destination address */
wait_delay_us(200000);

xbee_uart_tx_string((u8_t *)("atdh0"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* send destination address */
wait_delay_us(200000);

xbee_uart_tx_string("atdlffff"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* send ID address */
wait_delay_us(200000);

xbee_uart_tx_string(("atid2244"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* write my address in memory */
wait_delay_us(200000);

xbee_uart_tx_string(("atwr"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}

if( 'T' == response )
{
/* exit AT mode */
wait_delay_us(200000);

xbee_uart_tx_string(("atcn"));
xbee_uart_tx_data(0x0d);
response = xbee_response_ok_check();
}


/* if failed then restart */
if( 'F' == response )
{
for(cnt = 0 ; cnt < 100 ; cnt++)
wait_fine_delay_us_timeout(WAIT_TIMER_PSC_20000_US , WAIT_TIMER_ARR_20000_US);
}

}


while(1)
{
xbee_response_check();

}


} [/CODE]
asked Jul 1 in XBee Programmable Development by aamirali New to the Community (0 points)

Please log in or register to answer this question.

1 Answer

0 votes
You have the wrong product for what it is you want to do. You need to use the XBee 802.15.4 modules instead. The XBee ZB modules you are using requires you to change the firmware on one of them to Coordinator AT. This requires you to connect them to the PC and XCTU. Since you do not have that as an option, (To set one as a Coordinator) they will not associate to each other and form a network.
answered Nov 12 by mvut Veteran of the Digi Community (2,134 points)
Contact a Digi expert and get started today! CONTACT US
...