cancel
Showing results for 
Search instead for 
Did you mean: 

Which software to use to send the rfalGetTransceiveRSSI() command?

VSoni.1
Associate III

I have an ST25R3916-DISCO board which I am using to communicate with ST25 tags with an antenna. I'm using the ST25R3916 Discovery GUI to see the tag information on the computer. My antenna is being recognized, but how do I read the RSSI value of the signal? I read on multiple forums that they use the rfalGetTransceiveRSSI() command to obtain RSSI values, but how do I send the command? Is there any example code for the same?

1 ACCEPTED SOLUTION

Accepted Solutions
Ulysses HERNIOSUS
ST Employee

Hi VSoni.1,

as hinted already in how-to-measure-rssi-using-st25r3916discoverygui you can issue that command after having performed an successful exchange with a card. You can see an example usage inside stsw-st25r011. Please beware that some commands don't get a response or get potentially multiple responses which causes the RSSI to be 0 at the end. Examples for this would be the following commands: HLTA/SLEEP_A, HLTB/SLEEP_B, NFC-B/F/V slotted inventory to name the most common ones.

BR, Ulysses

View solution in original post

7 REPLIES 7
Ulysses HERNIOSUS
ST Employee

Hi VSoni.1,

as hinted already in how-to-measure-rssi-using-st25r3916discoverygui you can issue that command after having performed an successful exchange with a card. You can see an example usage inside stsw-st25r011. Please beware that some commands don't get a response or get potentially multiple responses which causes the RSSI to be 0 at the end. Examples for this would be the following commands: HLTA/SLEEP_A, HLTB/SLEEP_B, NFC-B/F/V slotted inventory to name the most common ones.

BR, Ulysses

VSoni.1
Associate III

Thanks a lot for your response, Ulysses. In the first forum link that you provided, I see that the person is able to see the RSSI value on his board itself ('705'). However, in my case, I am just able to see the RSSI signal strength bar on my board. Is there any way by which I can get the RSSI value to be displayed on the board?

Secondly, I looked at the STSW-ST25R011 firmware documentation. It only provides examples of using the board and not the Discovery GUI software. I also checked the user manual for the discovery GUI software and it has a section for 'Analog Config' (section 1.4.15) which mentions that the RFAL software structure can be used here.

So, from where can I issue the rfalGetTransceiveRSSI() command?

Ulysses HERNIOSUS
ST Employee

Hi VSoni.1,

just look inside STSW-ST25R011 where rfalGetTransceiveRSSI() gets called. In general you should call it after a successful exchange to retrieve the information of the last exchange.

Best Regards, Ulysses

VSoni.1
Associate III

Hello Ulysses!

I have STSW-ST25R011 downloaded. There are 4 folders named 'Drivers', 'Middlewares', 'Projects', and 'Utilities' inside STSW-ST25R011\ST25R3916_DISCO_v1.2.0 directory. I checked inside all the folders, there are .c and .h files. I did find an RFAL folder but did not see a rfalGetTransceiveRSSI() file. Am I supposed to install one of the .c or .h files in my ST25R3916 Discovery GUI firmware update? I am a newbie to this software and the NFC area in general. So how do I call a function?

Ulysses HERNIOSUS
ST Employee

Hi VSoni.1,

just look around in the files how it is done. Search in the files like below:

[ /<2>work/ST25Disco_ST25R3916]] grep -R rfalGetTransceiveRSSI .
./Middlewares/ST/fw_3916/DISCO-STM32L4x6/Src/dispatcher.c:        err = rfalGetTransceiveRSSI(&rssi);
./Middlewares/ST/RFAL/include/rfal_rf.h:ReturnCode rfalGetTransceiveRSSI( uint16_t *rssi );
./Middlewares/ST/RFAL/source/st25r3916/rfal_rfst25r3916.c:ReturnCode rfalGetTransceiveRSSI( uint16_t *rssi )
./Projects/ST25-Discovery/Demonstrations/ST25R3916Demo/Src/exampleRfalPoller.c:  rfalGetTransceiveRSSI( &rssi );
./Projects/ST25-Discovery/Demonstrations/ST25R3916Demo/Src/exampleRfalPoller.c:    rfalGetTransceiveRSSI( &rssi );
./Projects/ST25-Discovery/Demonstrations/ST25R3916Demo/Src/exampleRfalPoller.c:    rfalGetTransceiveRSSI( &rssi );

This reveals some calls of the function and the implementation. I assume what you are looking for is in the exampleRfalPoller.c.

Regards, Ulysses

VSoni.1
Associate III

Hey Ulysses, I located the exampleRfalPoller.c file. So how do I load this file into my board, or how do I flash the firmware STSW-ST25R011 on the board?

Hi,

there are multiple options using the PC GUI / ST-LINK. In its easiest form you can just drop the contained .bin file onto drive which appears on your PC when connecting. Please also refer to the PC GUI usermanual and the various documentation of the ST-Link / STM32 CubeProgrammer.

Best Regards, Ulysses