cancel
Showing results for 
Search instead for 
Did you mean: 

ST25R3916B Software Implementation

MERSI
Associate III

Hi everyone,

I’m currently working on integrating the ST25R3916B NFC reader into my custom hardware and would like to avoid implementing the complete driver from scratch in C/C++. Therefore, I’m trying to base my work on the X-CUBE-NFC6 software package provided by ST.

Is this the right starting point for using the ST25R3916B as a standalone chip (not on an evaluation board)?

I manually downloaded the full package from:
:backhand_index_pointing_right:https://www.st.com/en/embedded-software/x-cube-nfc6.html#get-software
— because STM32CubeIDE didn’t seem to import all relevant source files automatically.

Now I’m struggling a bit to understand which components or folders I actually need from the package to get the basics working.

Also, in CubeMX / CubeIDE I can see the following configuration options (see screenshot).

pic1.png

 

 

However, I'm unsure what to select in terms of the “Board Extension” and “Board Part” settings. Since I’m not using any ST eval board, just the bare ST25R3916B, I don’t know which options are still relevant, and which might introduce unwanted dependencies.

If anyone has experience using this IC in a custom setup and can give some guidance (e.g. which RFAL features to enable, how to adapt the board interface), I’d be very grateful!

Thanks a lot in advance!

7 REPLIES 7
Brian TIDAL
ST Employee

Hi,

simply follow the STMicroelectronics.X-CUBE-NFC6_GettingStarted.pdf from X-CUBE-NFC6\3.1.0\Documentation. As a ST25R3916B is used, make sure to replace NFC06A1 by NFC08A1.

Rgds

BT

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Thank you, @Brian TIDAL !

I'm currently struggling a bit with integrating the ST25R3916B IC on my custom PCB using the STM32F030.

STM32CubeIDE automatically generates a demo.h file with demoIni() and demoCycle() declarations, but it doesn't include a corresponding demo.c file with the actual function definitions.

Could you please point me in the right direction or let me know how I should proceed? I'd really appreciate your help!

 

image.png

 

Brian TIDAL
ST Employee

Hi,

feel free to share your ioc file so that I can have a look.

Rgds

BT

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

@Brian TIDAL That would be great. Currently i've set the NFC Middleware Settings as Board Parts / Extension.

 

 

Brian TIDAL
ST Employee

Hi,

The Device NFC Application has not been selected in your setup:

BrianTIDAL_0-1750145407016.png

Make sure to select it if you want the demo being included. In your case this is the ndef_demo as the NDEF application has been selected:

BrianTIDAL_1-1750145672039.png

I've seen that the FreeRTOS is being used. I would suggest you have a look to the FreeRTOS demo inside the ST25 embedded NFC library.

Rgds

BT

 

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Thank you for the fast reply @Brian TIDAL 

 

When i activate "Device NFC Application" it wants me to specify the UART and User BTN Pins (see picture below). The Problem is that i don't have these implemented on my PCB. I only have the ST25R3916B IC. When i leave the "Found Solutions" as undefined it will give me multiple Build Errors.

 

MERSI_0-1750146651234.png

 

Brian TIDAL
ST Employee

Hi,

yes I've seen you do not have any free pins (except if you reassign some of GPIO_output e.g. PA2/PA3 for USART2 and PC13 for the button).

Anyway, the generated application is designed for bare metal and will probably not run with FreeRTOS. I recommend again to have a look to the FreeRTOS demo inside the ST25 embedded NFC library and to port from STM32L4 to STM32F0.

Rgds

BT

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.