BLE Power Save Operation

Description:

This feature explains the configuration of Power Save modes of the module. These can be issued at any time after the Opermode command. By default, Power Save is in disable state.

There are five different modes of Power Save. They are outlined below.

  1. Power Save mode 0

  2. Power Save mode 2

  3. Power Save mode 3

  4. Power Save mode 8

  5. Power Save mode 9


NOTE:

If the user wants to enable power save in CoEx mode (WLAN + BT LE) mode - It is mandatory to enable WLAN power save along with BT LE power save.

The device will enter into power save if and only if both protocol (WLAN, BLE) power save modes are enabled.


Power Save Operations

The behavior of the module differs according to the power save mode it is configured.

The following terminology can be used in the below section in order to describe the functionality.

Protocol Non Connected State Connected State

BLE
This mode is significant when module is in Idle (standby) state. This mode is significant when module is in Advertising state, Scan state or Connected state.

In BLE, Power Save mode 2 and 3 can be used during Advertise/Scan/Connected states. Operational behavior is as below depending on the state.

Power Save Mode 0

In this mode the module is in active state and power save is been disabled.

It can be configured at any time while power save is enable with Power Save mode 2 and 3 or Power Save mode 8 and 9.

Power Save Mode 2 (GPIO Based Mode)

Once the module is configured to power save mode 2, it can be woken up either by the Host or periodically during its sleep-wakeup cycle based upon the connected state intervals.

Power mode 2 is GPIO based. In ULP mode , feature_bit_map[4]has to be set in opermode command. In this mode, When ever host want to send data to the module, gives wakeup indication to module by setting ULP_GPIO_5 high in case of LP or UULP_GPIO_2 in case of ULP(which make module to wakeup from power save). After wakeup, if the module is ready for data transfer, it sends wakeup indication to host (by setting UULP_GPIO_3 high).Host required to wait until module give wakeup indication before sending any data to module.

After completion of data transfer host can give sleep permission to module by resetting ULP_GPIO_5 in case of LP or UULP_GPIO_2 in case of ULP. After recognizing sleep permission from host, module give confirmation to host by resetting UULP_GPIO_3 and again gets back to its sleep-wakeup cycle.

Module can send received packets or responses to host at any instant of time. No handshake is required on Rx path.

Power Save Mode 3 (Message Based Mode)

Power Mode 3 is message based power save. In Power Mode 3 like Power mode 2 both radio and SOC of RS9116-WiSeConnect are in power save mode. This mode is significant when module is in connected state which is any state mentioned the above table. Module wakes up periodically upon every connected state based on the intervals and gives wakeup message ("WKP") to host. For example, in advertising state, he module is awake during advertising event duration and sleeps till Advertising interval.

Module can not be woken up asynchronously. Every time module intends to go to sleep it sends a sleep request message ("SLP") to the host and expects host to send the ack message. Host either send ack ("ACK") or any other pending message. But once ack is sent, Host should not send any other message unless next wakeup message from module is received.

Module shall not go into complete power-save state if ack is not received from host for given sleep message. Module can send received packets or responses to host at any instant of time. No handshake is required on Rx path.

(a)

AT mode
"WKP"
"SLP"

(b)

AT mode
"ACK"

NOTE:

Power save disable command has to be given before changing the state from standby to the remaining states and wise-versa. Suppose if Power Save is enabled in standby state, so, in order to move to Scanning state, first Power Save disable command need to be issued before giving Scan command.


When the module is configured in a co-ex mode and WLAN is in INIT_DONE state, power save mode 2 & 3 are valid after association in the WLAN. Whereas in BT & BLE alone modes, it will enter into power save mode (2 & 3) in all states except in standby state.

Power Save Mode 8

This command has to be issued after the opermode command. Module should be in non connected state before giving this command. Please refer the above table for the state description.

In Power Mode 8 both RF and SoC are in complete power save mode. This mode is significant when module is not connected with any AP. Power mode 8 is GPIO based. In ULP mode , feature_bit_map[4]has to be set in opermode command.

In case of LP (when ulp_mode_enable is '0') host can wakeup the module from power save by making ULP_GPIO_5 high.

In case of ULP (when ulp_mode_enable is '1' or '2') host can wakeup the module from power save by making UULP_GPIO_2 high.

When ulp_mode_enable is set to '0' or '1',once the module gets wakeup it continues to be in wakeup state until it gets power mode 8 commands from host.

When ulp_mode_enable is set to '2', after waking up from sleep module sends following message to host when RAM retention is not enabled. After receiving this message host needs to start giving commands from beginning(opemode) as module's state is not retained.

AT mode
"WKP FRM SLEEP"

Power Save Mode 9

Power Save Mode 9 uses a Message-based handshake. In this mode, the entire module, including the radio, enters powersave mode. This mode is significant when the module is not connected with any AP.

After receiving a power save mode 9 command, the module sends SLP request to the host and waits for an ACK from the host. After the ACK is received, the module goes to sleep. The sleep timer starts when power save command is received. It can be configured by the host using the at+rsi_sleeptimer command. If the host does not set any sleep time, the timer is configured for 3 seconds by default. Upon wakeup, the module sends a wakeup message to the host and expects the host to send an ACK before it goes into the next sleep cycle. The host either sends an ACK or a message. However, once an ACK is sent, no other packet should be sent before receiving the next wakeup message.

When ulp_mode_enable is set to '2', after waking up from sleep, the module sends following message to host when RAM retention is not enabled. After receiving this message, host needs to start giving commands from beginning (opermode) as module's state is not retained.

AT mode
"WKP FRM SLEEP"