cancel
Showing results for 
Search instead for 
Did you mean: 

ST25R3916B not able to read NFC-A card

BezaG
Associate II

Hello,

I am using the ST25R3916B reader on a custom board to read NFC-A cards. I first experimented on the X-Nucleo-nfc08a1 expansion board connected to esp32-s3 devkit. I modified the RFAL library a bit to fit my needs and kept most registers at their default values. With this setup I was able to communicate with an NFC-A card perfectly.

On my custom board, which is powered by 3V, I am able to communicate with the reader: read IC ID, read/write registers, receive interrupts. But I still haven't been able to communicate with the card. I receive no ATQA for my REQA. In fact no rxs or rxe interrupts are being raised (txe interrupt is being raised after sending direct command Send REQA). Code used on X-nucleo-nfc08a1 and custom board are exactly the same, except they have different SDA and IRQ pins.

I am still checking out the hardware design to check for any issues, especially with the antenna matching circuit. In the mean time I wanted to check a few other things:

1. I receive an oscillator_stable irq on my custom board. Does this rule out any issues with my external crystal oscillator?

2. I select the supply mode by measuring the voltage on VDD so the mode for my custom board is 3.3v, whereas on the x-nucleo it is 5v. Is there any other register I should change because of this difference?

3. Are there any other concerns you might think of?

PS. I did a test on both boards where I just do initialization (oscillator_on, supply mode selected, direct command adjust regulator) then send measure amplitude command in a loop. On the x-nucleo I am able to detect amplitude changes when a card gets close, even when my iphone gets close. On my custom board however the amplitude doesn't change at all. 

Thanks in advance.

1 ACCEPTED SOLUTION

Accepted Solutions

Hi,

I am suspecting issues on the the supply / antenna matching of your board, not the chip itself.

Seeing an adjusted voltage of 4400mV and 2800mV makes sense, so supply seems to be ok.

You were suspecting an issue in your software - wrong registers. So this is why I am suggesting you cross-connect to a known to be working NFC board.

Going from the X-NUCLEO to your custom board I don't expect any specific registers changes to be immediately required. At some point you may want to optimize things (output power, waveshaping). But nothing which really makes it non-operational.

Actually also the other cross-connect can make sense: It let's you verify that your software works.

BR, Ulysses

View solution in original post

6 REPLIES 6
BezaG
Associate II

Attached is the antenna matching circuit for reference.

Ulysses HERNIOSUS
ST Employee

Hi,

chances are that the matching is completely off. Please share details on how you designed and matched the antenna including smith charts. Please also look around on community - this is a recurring question answered before with links to tools and appnotes.

BR, Ulysses

Antenna matching circuit for reference is attached. I don't have a network analyzer so i can't get smith charts. The hardware team is rechecking that circuit.

I have scoured the site, tried everything I thought related to my problem to no avail. I just want to make sure there are no firmware issues on my side.

What possible register settings have I missed?

Hi,

if you want to rule out firmware issues then I propose to cross-connect the SPI + IRQ to the nucleo board (while disabling the ST25R3916B on your custom board).

With default settings the RFAL should perform the Adjust Regulator command - results available in space B 0x2C register (reg_*).

BR, Ulysses

I apologize but I don't understand the goal here.


@Ulysses HERNIOSUS wrote:

With default settings the RFAL should perform the Adjust Regulator command - results available in space B 0x2C register (reg_*).


I already do Adjust regulator command in my firmware. On the x-nucleo board it adjusts it to 4400 mv and on my custom board to 2800mv. 

Regarding this suggestion;


@Ulysses HERNIOSUS wrote:

if you want to rule out firmware issues then I propose to cross-connect the SPI + IRQ to the nucleo board (while disabling the ST25R3916B on your custom board).


at this point I am only trying to build an nfc reader module and just have a demo function that listens to a card and returns its UID if found. The mcu on my custom board is esp32-s3-wroom which is the same as the dev kit connected to the xnucleo. (both are running the same firmware: i2c communication) I imagine cross connecting will probably result in the x-nucleo working the same as before (reads card and returns UID with no problem). Do you think there might be a problem with the particular st25r3916b IC on my custom board?

Hi,

I am suspecting issues on the the supply / antenna matching of your board, not the chip itself.

Seeing an adjusted voltage of 4400mV and 2800mV makes sense, so supply seems to be ok.

You were suspecting an issue in your software - wrong registers. So this is why I am suggesting you cross-connect to a known to be working NFC board.

Going from the X-NUCLEO to your custom board I don't expect any specific registers changes to be immediately required. At some point you may want to optimize things (output power, waveshaping). But nothing which really makes it non-operational.

Actually also the other cross-connect can make sense: It let's you verify that your software works.

BR, Ulysses