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.

Note: Failing to read out via SPI when more than 16 sampled RSSI values are stored, results in the oldest values being permanently deleted.

The signal power at the matched 50Ω antenna input can be calculated in dBm:

RF_POWERIN=RSSI2RSSI_OFFSET

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]

Note: The lower and upper thresholds are initialized to 0x00 and 0xFF during system start-up.

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.