3.7.7.7 RSSI Measurement
The RSSI measurement feature determines and provides a snapshot of the current RF signal
strength. Internal gain compensation automatically removes the effects of the antenna
damping and IF amplifier from the RSSI value. The result is placed in the 16-byte-wide
support FIFO (SFIFO). The fill level and the content of the SFIFO can be read out using
the Read Fill Level RSSI FIFO
and Read RSSI FIFO
SPI
commands, respectively. See SPI Command Reference from Related Links.
The signal power at the matched 50Ω antenna input can be calculated in dBm:
with RSSI_OFFSET = 135 dBm in Low-Band and 134 dBm in High-Band.
The RSSI measurement can be activated independently for each service in the eepServices.rssiSysConf.RssiEnable EEPROM variable.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x00DE | rssiSysConf | RssiEnable | — | rssiBufEvMask | RSSIbuf[4:0] |
A new RSSI value is stored in the SFIFO at the end of every RSSI update period. The length of this period can be configured independently for each service in the eepServices.RSSC.RSUP[3:0] EEPROM variable. The configuration tool calculates the actual time period based on the configured value. The formula is given in the hardware description of the RSSI buffer. See RSSI Buffer from Related Links.
Depending on the eepServices.RSSC.RSPKF configuration, either the peak or the average value of the last update period is provided.
The eepServices.RSSC.RSHRX variable must be set according to the receive band (Low-Band/High-Band) to allow for the correct internal damping compensation of the RSSI value.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x0138 | RSSC | — | RSPKF | RSHRX | RSWLH | RSUP[3:0] |
During the RSSI measurement, the current SFIFO fill level is compared to a configurable buffer threshold. This threshold can be set up independently for each service using the eepServices.rssiSysConf.RSSIbuf[4:0] EEPROM variable.
Any time the fill level reaches the threshold of the current receive path, an SFIFO fill level match condition becomes true. In that case, the firmware signals the occurrence by setting the SFIFO event flag in the events.system (R15).
Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
System (R15) events.system | SYS_ERR | CMD_RDY | SYS_RDY | AVCCLOW | LOWBATT | SFIFO | DFIFO_RX | — |
In addition, the generation of an external event on pin 28 (EVENT) is supported if the rssiBufEvMask mask bit is enabled and the associated event occurs.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x00DE | rssiSysConf | RssiEnable | — | rssiBufEvMask | RSSIbuf[4:0] |
Use the determined RSSI value as an SOT and EOT condition. For more comparison, see RSSI Range Check in the Telegram Settings and Signal Checks from Related Links.
An RSSI window must be defined and the corners (thresholds) of this window must be written via SPI to the associated rssiThresholds[x][y].RSSH/L SRAM variables. The RSSI window consists of a lower and an upper threshold and is available for each channel in each service.
The eepServices.RSSC.RSWLH EEPROM variable defines whether the measured signal strength must be inside or outside of the defined RSSI window for a successful check.
Address Service0 | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0x0138 | RSSC | — | RSPKF | RSHRX | RSWLH | RSUP[3:0] |
The RSSI measurement can also be activated on demand by using the Start RSSI
Measurement
SPI command. Afterward, the resulting RSSI value can be
obtained by using the Get RSSI Value
SPI command.
The RSSI measurement is also part of the sub-channeling feature. See Subchanneling from Related Links.