I've already posted this question in the digi forum but got no definite answers.
I have a project in which I want to create a network of xbee modules communicating with Arduino UNOs and MEGAs (routers and coordinator) and I want the modules to run on a battery.
The xbee module's current consumption is around 1mA when idle which is much more than the Arduio UNO's current consumption.
I thought about making the modules go to deep sleep and wake up when they receive a message. For that I tried getting the signal from the xbee's TX line ... since it does a pull down before starting the message, then I could connect it to pin 2 of my arduino to wake it up.
It happens, it wakes up, but I'm not able to receive the entire message, and the number of bytes missed vary a lot. If it was just the first byte that was lost everything would be OK, but sometimes I start receiving only in the second or third byte, once I even started receiving in the fourth byte (baud is 9600). This is unacceptable because I want to be able to read the message I've received before sending it to the coordinator.
Someone on the other forum mentioned flow control, but it doesn't work for me. Flow control in the xbee is for the xbee only ... RTS pin tells the xbee that it can send data to the microcontroller, CTS pin is driven by the xbee module but it doesn't work, I've checked this in an oscilloscope (CTS pin was configured for CTS and RTS pin was configured as not used)
Is there a way for me to configure the xbee so that it drives a pin, high or low, a few milisseconds before sending the message via the serial line?