First, the configuration. I’m using a Xbee ZB S2C SMT module and have it talking back to an X2e coordinator. On the module, the following are set:
SM = 0x5 (SM5, Cyclic with Pin Wake)
SP = 0x32 (50 x 10ms = 500ms)
ST = 0xBB8 (3000ms)
D6 = 0x1 (RTS Enabled)
D7 = 0x1 (CTS Enabled)
Other settings for baud rate, guard time, and zigbee network configuration are all working when sleep is disabled, so I don’t think they should be an issue.
On the coordinator I set:
SP = 0x32 (50 x 10ms = 500ms)
ST = 0xBB8 (3000ms)
All other setting left at factory default.
Upon powering up the Xbee module and the micro controller that drives it via UART, the micro controller is able to configure all the Xbee module settings, and any communication within ST (3s) functions normally. After 3s have elapsed, power consumption drops dramatically, and CTS is pulled high with a brief dip every 500ms (as expected).
After initialization, the micro controller is also sleep skipping along and holding the RTS line high unless it is currently awake and monitoring the UART port. If I set the monitoring time (RTS pulled low) to be really long (100ms) it seems to work most of the time, but if I shorten the monitoring timeout to 50ms I encounter a problem with almost every transmission.
I’ve included a link to an image of a session where there is both a successful transmission and a failed transmission were captured. It seems the common element is that if RTS is low at the time the Xbee module wakes up and retrieves the data, transmission occurs as expected, but if RTS is high at that time the Xbee module just holds the data indefinitely (regardless of future changes to the RTS line).
(click if the image is clipped for the full image)
I think that the Xbee module is getting the traffic because after transmission the CTS line is held constantly low, and power consumption spikes considerably, the Xbee module just doesn’t transmit the data in it’s buffer over UART on the next RTS low pulse as I would expect. Any help is greatly appreciated.
Thanks,
Jeremy