Asynchronous Cyclic Sleep mode (SM = 4)
The Cyclic Sleep modes allow devices to periodically check for RF data. When the SM parameter is set to 4, the XBee 3 DigiMesh RF Module is configured to sleep, then wakes once per cycle to check for data from a coordinator. The Cyclic Sleep Remote sends a poll request to the coordinator at a specific interval set by SP (Cyclic Sleep Period). The coordinator transmits any queued data addressed to that specific remote upon receiving the poll request.
If no data is queued for the remote, the messaging coordinator does not transmit and the remote returns to sleep for another cycle. If queued data is transmitted back to the remote, it stays awake to allow for back and forth communication until the ST (Cyclic Sleep Wake Time) timer expires. You can also set SO (Sleep Options) bit 8 to force the device to always wake for the full ST time.
To configure a node to act as a coordinator CE must be set to 1. A sleeping node also needs to be configured to know which node is its coordinator. This is done by setting the DH and DL of the sleeper to the SH and SL of the coordinator node. CE on the sleeper node must also be set to 4. In order for the coordinator to queue transmissions meant for the sleeping node any transmissions sent to the sleeping node must be sent using 0x40 (point-to-point) TO options.
If configured, CTS goes low each time the remote wakes, allowing for communication initiated by the remote host if desired. If ON_SLEEP is configured it goes high (ON) after SN (Number of Sleep Periods) sleep periods. Change SN to allow external circuitry to sleep for longer periods if no data is received.