cancel
Showing results for 
Search instead for 
Did you mean: 

Manual RSSI calculation showing different values than GUI

TCrav.1
Associate III

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

1 ACCEPTED SOLUTION

Accepted Solutions
Nick K
ST Employee

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

View solution in original post

3 REPLIES 3
Nick K
ST Employee

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.1
Associate III

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 K
ST Employee

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