2020-12-11 09:17 AM
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
Buy using the ST25R Antenna Matching Tool I get the following values for the custom board:
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.
Everything seems to be correct but why can't I detect any tag?
gaston
Solved! Go to Solution.
2020-12-17 10:51 PM
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
2020-12-15 03:12 AM
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
2020-12-16 12:22 AM
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
2020-12-16 01:11 AM
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
2020-12-16 01:46 AM
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
2020-12-16 02:36 AM
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
2020-12-16 02:39 AM
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
2020-12-16 03:14 AM
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
2020-12-16 03:53 AM
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
2020-12-17 04:51 AM