cancel
Showing results for 
Search instead for 
Did you mean: 

Can we address multiple ST25DV from a single master on the same I2C bus independently ?

PSaho
Associate II

The idea is to stack 3 X-NUCLEO-NFC04A1 on top of a NUCLEO-L476RG and access one X-NUCLEO-NFC04A1 at a time either from RF or through I2C using the X-CUBE-NFC4 or directly through HAL APIs.

We were thinking of disable RF of two X-NUCLEO-NFC04A1 and enable for one at a time but when we are calling the API NFC04A1_NFCTAG_SetRFDisable() it is disabling RF of all the boards as all are stacked together that means hanging on the same I2C bus.

Please help us to find a solution as we are now evaluating the ST25DV product for using it in one of our upcoming device.

1 ACCEPTED SOLUTION

Accepted Solutions
JL. Lebon
ST Employee

​Hello,

Your problem is that you are connecting three I2C devices with identical device address on the same I2C bus.

So, when you send an I2C command to one ST25DV-I2C, they are in fact all accessed by this command.

It not possible to configure the I2C device address of the ST25DV-I2C, so normally, it should not be possible to connect three ST25DV-I2C on the same I2C bus.

One solution is to have 3 different I2C buses, and connect 1 ST25DV on each.

If you have only one I2C bus (this is your case), there is another possibility: you will need to put the two ST25DV-I2C that are not accessed in Low Power Mode when accessing the third one.

The good thing is that the X-Nucleo-NFC04A1 is using the 12 pins package version of the ST25DV-I2C. On this version, you have access to the LPD (Low Power Mode) of the device.

If you set the LPD pin to high, the ST25DV-I2C will enter the Low Power Mode. In this mode, it will answer normally to any RF request, but will not answer to any I2C command.

So, by setting high the LPD pin of two ST25DV, you can access the third one by I2C.

Of course, you will need little rework of the board. The LPD pin can be disconnected from the main nucleo board by removing the R11 resistor. You then need to reassign and reconnect this LPD pin of each ST25DV to another STM32 GPIO.

On the RF side, it is perfectly possible to have the 3 devices working together. This is by design supported by ISO15693 device. You need to access each device in "addressed mode", or use selected state to ensure you are talking to only one tag at a time.

Hope this help.

Best regards.

View solution in original post

6 REPLIES 6
JL. Lebon
ST Employee

​Hello,

Your problem is that you are connecting three I2C devices with identical device address on the same I2C bus.

So, when you send an I2C command to one ST25DV-I2C, they are in fact all accessed by this command.

It not possible to configure the I2C device address of the ST25DV-I2C, so normally, it should not be possible to connect three ST25DV-I2C on the same I2C bus.

One solution is to have 3 different I2C buses, and connect 1 ST25DV on each.

If you have only one I2C bus (this is your case), there is another possibility: you will need to put the two ST25DV-I2C that are not accessed in Low Power Mode when accessing the third one.

The good thing is that the X-Nucleo-NFC04A1 is using the 12 pins package version of the ST25DV-I2C. On this version, you have access to the LPD (Low Power Mode) of the device.

If you set the LPD pin to high, the ST25DV-I2C will enter the Low Power Mode. In this mode, it will answer normally to any RF request, but will not answer to any I2C command.

So, by setting high the LPD pin of two ST25DV, you can access the third one by I2C.

Of course, you will need little rework of the board. The LPD pin can be disconnected from the main nucleo board by removing the R11 resistor. You then need to reassign and reconnect this LPD pin of each ST25DV to another STM32 GPIO.

On the RF side, it is perfectly possible to have the 3 devices working together. This is by design supported by ISO15693 device. You need to access each device in "addressed mode", or use selected state to ensure you are talking to only one tag at a time.

Hope this help.

Best regards.

Many thanks for your kind help. We will try to use the low power mode to switch between devices.
Have a wonderful day.
PSaho
Associate II

Can you please suggest NFC Read and Writer to work with 3 device together which is supported by ISO15693. Currently we are using mobile app which sense and list the device one at a time. We are looking for NFC Reader/Writer which supports anti collision feature and recognize multiple device so that we can select any one of them at a time and communicate to it.

Thanks and Regards

JL. Lebon
ST Employee

​Hello,

ST is manufacturing readers that support ISO15693. All of them can address multiple tags, as this is an intrinsic feature of ISO15693.

You can visit this web page https://www.st.com/en/nfc/st25-nfc-rfid-readers.html. All readers available are listed here and can be order there.

I suggest the ST25R3911B.

Best regards.

Thanks Lebon for your suggestion.

Is it possible to use ST25R3911B and select one NFC tag (Through RF) out of a bunch of NFC tags placed together and read / write to it ?

Ulysses HERNIOSUS
ST Employee

Hi,

yes this is possible. You can use ST25R3911B-DISCO or ST25R3916-DISCO which include a convenient PC GUI which does the requested job out of the box or do some minor changes to the software of X-NUCLEO-NFC05A1 or X-NUCLEO-NFC06A1 to do it from firmware.

Regards, Ulysses