Skip to main content
RFlod.2
Associate III
March 28, 2025
Solved

ST25R3911 Capacitance measurement

  • March 28, 2025
  • 1 reply
  • 1194 views

I have RFID reading with ST25R3911 working now with RFAL and  I would like to sense if there is a RFID tag nearby before starting RFID reading.

 

I did not find any example code in RFAL. I looked into data sheet and tried to read the registers:

st25r3911ReadRegister(0x3C, &c);
printf("CapA %d\n\r", c);
st25r3911ReadRegister(0x3D, &c);
printf("Cap %d\n\r", c);
st25r3911ReadRegister(0x2B, &c);
printf("Volt %d\n\r", c);

but I just get zeros:

CapA 0
Cap 0
Volt 176

 

How shall this be done?

This topic has been closed for replies.
Best answer by Ulysses HERNIOSUS

Hi RFlod.2,

yes. But as said I strongly recommend to start from ST25R3911B-DISCO board. It will be working out of the box.

We have looked into the X-NUCLEO-NFC05 and have not found any obvious reason for it to to not work.

Regards, Ulysses

1 reply

Ulysses HERNIOSUS
Technical Moderator
March 28, 2025

Hi,

Capacitance measurement is a feature of the Wake-up system. Best if you get the ST25R3911B-DISCO whose GUI has a tab for experimenting with it. Also the related AN4985 will give some explanation. 

From RFAL perspective you have the following entries:

  • st25r3911MeasureCapacitance()
  • st25r3911CalibrateCapacitiveSensor()
  • rfalWakeUpConfig.cap

Please beware that this feature will also react to water/human body and is more susceptible to emission from other radios / fluorescent lamps, etc. than the inductive wake-up system.

BR, Ulysses

RFlod.2
RFlod.2Author
Associate III
April 4, 2025

I tries the functions and they seem to work. But I get very small changes (on ST devkit) like :

No card: 140

One card:  137

Another card:142

 

When using 

st25r3911MeasureCapacitance(&c);
printf("Cap %d\n\r", c);

Is this expected?

Ulysses HERNIOSUS
Technical Moderator
April 4, 2025

Hi, 

which devkit are you using?

BR, Ulysses