RFSense is a low power feature of the EFR32 Wireless MCU family. It can "wake up" an MCU from its EM2 or even EM4 power modes. Practically, it is an ultra low power interrupt source, running on ULFRCO clock.
The RFSense is a wide band circuit, it can detect energy in the 100MHz - 5 GHz frequency range, filtered only by the matching network of the RF front end. This is an advantage, as no need for separate PCB components. But it’s also a drawback: it is sensitive to any kind of interferer signal as well.
EFR32xG22 has an updated RFSense module, which improves the performance compared to EFR32 Series 1 in multiple ways:
RFSense works below 0C degree
RFSense works if voltage is scaled down
Introduces Selective mode
Legacy mode
In legacy mode, EFR32xG22 RFSense is fully compatible with the one in Series 1. This means that if the RFSense module detected energy for a configured time, it generates an interrupt.
Selective mode
Selective mode mitigates the unfiltered nature of RFSense. Instead of simply detecting energy for a given time period, it detects "a pattern of energy", which is essentially an OOK packet. The packet is Manchester coded, uses fixed 1kbps bitrate, 1B preamble and 1-4B sync word (no payload added). This packet can be transmitted by any OOK capable device, including all EFR32 wireless MCUs (Series 1 and Series 2).
Selective mode offers 2 configuration options to select from: "optimized for sensitivity" or "optimized for noisy environment".
The Wakeup Packet
The wakeup packet is a fixed-configuration OOK packet with the following settings:
Starts with a 1 B preamble (always 0x55).
Followed by a 1-4 B sync word.
No payload required.
Both the preamble and sync word are transmitted LSB first.
1 kbps bitrate (before coding).
Recommended carrier is 2.45 GHz.
Selective Mode Transmit Example Without Using API
Assume you select 0xb16e as your sync word, and you want to transmit it with only a signal generator (or a simple radio with MSB-first byte handling and no Manchester coder).
First, flip the endianness of both preamble and sync word: 0x55 becomes 0xaa and 0xb16e becomes 0x768d.
The full packet is then 0xaa768d, which after Manchester coding becomes 0x99996a6995a6.
Configuring this encoded packet and transmitting on 2.45 GHz with high enough TX power should wake up a device configured for selective RF Sense with the 0xb16e sync word
Proprietary Knowledge Base
RFSense on EFR32xG22
RFSense is a low power feature of the EFR32 Wireless MCU family. It can "wake up" an MCU from its EM2 or even EM4 power modes. Practically, it is an ultra low power interrupt source, running on ULFRCO clock.
The RFSense is a wide band circuit, it can detect energy in the 100MHz - 5 GHz frequency range, filtered only by the matching network of the RF front end. This is an advantage, as no need for separate PCB components. But it’s also a drawback: it is sensitive to any kind of interferer signal as well.
EFR32xG22 has an updated RFSense module, which improves the performance compared to EFR32 Series 1 in multiple ways:
Legacy mode
In legacy mode, EFR32xG22 RFSense is fully compatible with the one in Series 1. This means that if the RFSense module detected energy for a configured time, it generates an interrupt.
Selective mode
Selective mode mitigates the unfiltered nature of RFSense. Instead of simply detecting energy for a given time period, it detects "a pattern of energy", which is essentially an OOK packet. The packet is Manchester coded, uses fixed 1kbps bitrate, 1B preamble and 1-4B sync word (no payload added). This packet can be transmitted by any OOK capable device, including all EFR32 wireless MCUs (Series 1 and Series 2).
Selective mode offers 2 configuration options to select from: "optimized for sensitivity" or "optimized for noisy environment".
The Wakeup Packet
The wakeup packet is a fixed-configuration OOK packet with the following settings:
Selective Mode Transmit Example Without Using API
Assume you select 0xb16e as your sync word, and you want to transmit it with only a signal generator (or a simple radio with MSB-first byte handling and no Manchester coder).
First, flip the endianness of both preamble and sync word: 0x55 becomes 0xaa and 0xb16e becomes 0x768d.
The full packet is then 0xaa768d, which after Manchester coding becomes 0x99996a6995a6.
Configuring this encoded packet and transmitting on 2.45 GHz with high enough TX power should wake up a device configured for selective RF Sense with the 0xb16e sync word
For more details on selective mode, see AN1244: EFR32 migration guide for Proprietary applications