cancel
Showing results for 
Search instead for 
Did you mean: 

cannot detect any tag on ST25R3916

Gaston
Senior

Hi,

I have made a custom design for reading/writing NTAG213 tags based on the X-NUCLEO-NFC06A1 board. I have adapted the firmware that works on this demo board (along with all the drivers related to the ST25R3916 and RFAL) into a STM32G030K8T6 microcontroller.

I have neither capacitive sensing nor AAT implemented in Hardware and I have also disabled these mechanisms in the Firmware according to this post.

The antenna design is very similar to the ST25R3916 Discovery Board (2 turns, 65mm x 85 mm). For the the antenna analysis I have measured its real parameters following the indications of the AN5276 Application Note:

This is LANT = 1.03 uH RSDC = 440m Ohms fres = 60.19 MHz Rp @ fres = 7.29 Kohms

0693W000006FVXtQAO.png 

Buy using the ST25R Antenna Matching Tool I get the following values for the custom board:

0693W000006FVQdQAO.png 

On the Firmware side the Initialization is successful (ERR_NONE)... but does not detect any tag during execution of the detection cycle routines.

I have checked the presence of any signal near the antenna by means of a small loop made with the oscilloscope probe. I see that the antenna is actually emitting at 13.56MHz every second.

0693W000006FVXFQA4.bmp 

Everything seems to be correct but why can't I detect any tag?

gaston

1 ACCEPTED SOLUTION

Accepted Solutions

Hi Gaston,

I think you can just implement your own function e.g. in your main.c:

void HAL_GPIO_EXTI_RisingCallback(uint16_t /*GPIO_Pin)
{
   st25r3916Isr();
}

Because of the __weak used in stm32g0xx_hal_gpio.c your version of the function will be used as opposed to the default one.

Ulysses

View solution in original post

14 REPLIES 14
Ulysses HERNIOSUS
ST Employee

Hi Gaston,

can you already rule out that there is an issue in your ported software? Does it for example work with a cross-connected NFC6?

Regards, Ulysses

Travis Palmer
ST Employee

Hello Gaston,

can you measure the voltage on the RFI pins using the direct command "Measure Amplitude" ?

Please execute the command with and without card in the field and post its result.

BR Travis

Hi Ulysses,

The porting was done from the STM32L476RG-Nucleo project. I will perform another porting starting from the STM32L053R8-Nucleo, which is a M0 + cortex like the one in my custom design.

gaston

Hi Travis,

I've measured the voltage after demoIni() initialization function.

err = st25r3916ReadRegister(0xD3U, &result);

In both cases (with and without a card) the result is zero.

I've reproduced the same reading in the NUCLEO-NFC06A1 project with the same result.

Am I performing the right procedure to measure the voltage on the RFI pins?

gaston

Hi Gaston,

Please execute:

st25r3916MeasureAmplitude() or rfalChipMeasureAmplitude(). It will execute the D3 command , wait for the interrupt and retrieve the result from AD converter register.

Regards, Ulysses

Hi Gaston,

My idea was mainly for not opening two construction sites at the same time: Port to new MCU and new reader HW. IMO no need to repeat porting, just do a cross-connection of your port to and NFC06 board to see your port is working properly (disconnect/disable the 3916 on your board).

Regards, Ulysses

Thank you.

ADC 8-bit result in the NUCLEO-NFC06A1 board (4 turns, 30x45 mm antenna):

153 (without tag)

134 (with tag)

ADC 8-bit result in the custom board (2 turns, 65x85 mm antenna):

109 (without tag)

108 (with tag)

gaston

Travis Palmer
ST Employee

Hello Gaston,

153 * 0.01306 = 1.998V

109 * 0.01306 = 1.424V

Both voltages should be sufficient to read tags. It might be that there is no analog problem. Could you do SPI traces and share them with us?

BR Travis

Hi Travis,

Here's the SPI traces:

During Initialization

0693W000006G7rNQAS.png 

Work Cycle

0693W000006G7rmQAC.pngDecoded SPI files (during init & cycle loop) are attached in zip format.

regards,

gaston