Skip to main content
Visitor II
May 31, 2022
Solved

Manual RSSI calculation showing different values than GUI

  • May 31, 2022
  • 3 replies
  • 1099 views

Hi ST,

We are currently adapting ST code into a Linux device driver to control a ST25RU3993.

We are trying to integrate the RSSI calculation.

Following the AN4971 Rev2 and this ST question, we use formula

meanRSSI = [RSSI(I) + RSSI(Q)] / 2
Pin (in dBm) = 2.1 * meanRSSI - G

When comparing our readings with GUI calculations for the same values of LogQ and LogI, with the same rxgain, we don't find the same Pin. After doing a lot of readings, we can see that most of the values are "shifted" by 2 units of LogQ and LogI (See image below).

0693W00000NquBBQAZ.png 

Can you help us figure out what's wrong with our readings ?

Thanks,

Thomas

    This topic has been closed for replies.
    Best answer by Nick K

    Hi Thomas,

    thanks for your reply with the register dump. Yes, you are right for RSSI measurement the registers 0x22 is not important. With your register content you use Nominal gain and Mixer gain of +3db. According to Table 3 of the RSSI AN4971 the G value should be 62, as you configured in Reg 0x03 250kHz/M4. 

    In your calculation you should use for this register setting for the calculation of RSSI[dBm] = 2.1 * ((LogI + LogQ)/2) - G .. with G = 62 for +3dB Mixer gain

    We also checked the GUI RSSI calculation and the current version not yet reflect some recent changes of the AN4971.

    ST recently updated the AN4971 for the HPEV board and the GUI calculation is still based on G values for the older EVAL board. This will be fixed with the next release of the GUI.

    BR Nick

    3 replies

    ST Employee
    June 9, 2022

    Hello TCrav.1,

    the GUI is using the formula you referenced in your post.

    What may make a difference is the calculation of the G value.

    In your screenshot it is defined as G = rxgain + 60. But the value 60 depends on your register settings.

    Could you let me know what values you have in Registers 0x09, 0x0A, 0x0D and 0x22

    when doing your measurement ?

    Thanks

    Nick

    TCrav.1Author
    Visitor II
    June 9, 2022

    Hi Nick,

    Thanks for your answer.

    Here is a dump of the registers of the chip just after a tag is found during the inventory:

     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
     0 03 90 22 9b 03 41 05 05 0b 34 60 1b 82 30 40 00
    10 00 48 35 20 e0 06 88 64 1d 0e 04 61 18 00 00 00
    20 00 00 00 00 00 00 00 00 00 06 8f 03 40 79 18 00
    30 00 00 00 61 00 7f 07 00 00 02 00 10 00 00 09 63

    In particular:

    • Reg 0x09 = 0x34
    • Reg 0x0A = 0x60
    • Reg 0x0D = 0x30
    • Reg 0x22 = 0x00

    For these values, I've got:

    • RSSILogI= 8
    • RSSILogQ= 8
    • RSSILinI=142
    • RSSILinQ=141

    The computed RSSI is -46db, (with a rxgain value of -3db, that I got from st25RU3993GetSensitivity function).

    To get the rxgain, I call the ST function st25RU3993GetSensitivity, that effectively reads registers 0D and 0A, but not 09 and 22.

    Thanks,

    Thomas

    Nick KAnswer
    ST Employee
    June 10, 2022

    Hi Thomas,

    thanks for your reply with the register dump. Yes, you are right for RSSI measurement the registers 0x22 is not important. With your register content you use Nominal gain and Mixer gain of +3db. According to Table 3 of the RSSI AN4971 the G value should be 62, as you configured in Reg 0x03 250kHz/M4. 

    In your calculation you should use for this register setting for the calculation of RSSI[dBm] = 2.1 * ((LogI + LogQ)/2) - G .. with G = 62 for +3dB Mixer gain

    We also checked the GUI RSSI calculation and the current version not yet reflect some recent changes of the AN4971.

    ST recently updated the AN4971 for the HPEV board and the GUI calculation is still based on G values for the older EVAL board. This will be fixed with the next release of the GUI.

    BR Nick