Read Rx digital RSSI value

Setup requirements for digital RSSI:
0x040C[6] = 0, don’t bypass AGC module
0x040A[13:12] = 1, set AGC mode to RSSI
0x0400[14:13] = 0, select RSSI value to be captured into 0x040E, 0x040F registers
0x040A[2:0] = any value from 0 to 7 (from 2^7 to 2^14 samples), set how many samples used to calculate RSSI

Reading the digital RSSI value: (note) rapid reading can output duplicate RSSI values, because it is recalculated periodically depending on the 0x040A[2:0] selection.

  1. trigger rising edge of CAPTURE:
    0x0400[15] = 0
    0x0400[15] = 1
  2. Read digital RSSI value from the registers
    uint32_t digitalRSSI = (SPI_read(0x040F) << 2) | (SPI_read(0x040E) & 0x3);
2 Likes