2022-05-30 11:36 PM
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).
Can you help us figure out what's wrong with our readings ?
Thanks,
Thomas
Solved! Go to Solution.
2022-06-10 04:10 AM
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
2022-06-09 02:59 AM
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
2022-06-09 04:45 AM
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:
For these values, I've got:
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
2022-06-10 04:10 AM
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