The RN4020 can operate in a variety of power states, depending upon the application requirements.
The power states are entered via a combination of settings on the WAKE_HW and WAKE_SW pins, as well as commands issued to the module as shown below:
Please refer to the "RN4020 Bluetooth® Low Energy (BLE) Module" datasheet for detailed electrical specifications.
Idle
This state is entered on power-up whenever WAKE_SW = 1 and represents the state where Command mode is active.
Active RF
This power state is entered upon any required Radio Frequency (RF) activity (TX/RX) during advertising, discovery, pairing, connection, etc.
Note that a key design objective for BLE radios is to remain mostly in a low-power dormant state, waking up only occasionally and very briefly. As a result, the time spent in Active RF is very short.
Note that this depends also on whether you are a Peripheral or Central device (energy usage in BLE is asymmetrical, with Central devices typically consuming more energy).
Deep Sleep
This is one of the low-power states supported by the RN4020. A key feature of this state is that advertising packets are still broadcast.
To put the RN4020 in Deep Sleep mode from Idle/Active mode:
- Make sure the WAKE_HW pin is low.
- Pull the WAKE_SW pin low.
To stop advertisement during Deep Sleep mode, enter the Y command before going to Deep Sleep.
If the RN4020 is operated in a Hostless/Scripting mode (i.e. without a microcontroller), set the UART_RX pin to high via a 10 K resistor to reduce power consumption in Deep Sleep mode.
Dormant
This is the lowest-power state supported by the RN4020.
To put the RN4020 in Dormant mode from Idle/Active mode:
- Make sure the WAKE_HW pin is low.
- Then enter the o command.
- Then immediately pull the WAKE_SW pin low.
RN4020 Communication in Deep Sleep
The RN4020 can communicate and execute commands in Deep Sleep as long as the Universal Asynchronous Receiver Transmitter (UART) baud rate is set to 2400. However, please note that sending frequent UART commands is not recommended at 2400 baud due to the added latency of the low-data rate.
To communicate with RN4020 in Deep Sleep, perform the following steps:
- In Idle mode, set the baud rate to 2400 using the SB command, sb,0.
- Reboot the module for the SB command to take effect, r,1.
- Change the baud rate setting on the host to 2400 in order to communicate with the module.
- Put the module into Deep Sleep, as described above. The module sends END as confirmation of going to Deep Sleep.
Communication continues at 2400 baud rate.
To get the RN4020 out of Deep Sleep and back to normal 115200 baud communications:
- Change the baud rate to 115200 using the SB command, sb,4.
- Reboot the module for the SB command to take effect, r,1.
- Pull WAKE_SW pin high to put the module in Active mode.
- Change the baud rate setting on the host to 115200 in order to communicate with the module.