cancel
Showing results for 
Search instead for 
Did you mean: 

SendRecv command not working ST25R95

thompeters2004
Associate II

Hello everyone,

I’m reaching out with a question regarding the ST25R95-VMD5T. I’m working on a project where I need to read an NFC tag from an nRF52832 board, specifically an ISO 14443-4A NXP MIFARE Plus tag. This tag stores a URL in an NDEF message: nordicsemi.com.

I’ve managed to retrieve the 7-byte UUID from the nRF board with the following sequence of commands:

  1. Protocol mode select: [00 02 02 02 00]
    Response: [00 00]

  2. REQA: [00 04 02 26 07]
    Response: [80 05 44 00 28 00 00]

  3. Anti-collision CL1: [00 04 03 93 20 08]
    Response: [80 08 88 5F 47 1D 8D 28 00 00]

  4. Select CL1: [00 04 08 93 70 88 5F 47 1D 8D 28]
    Response: [80 06 24 D8 36 08 00 00]

  5. Anti-collision CL2: [00 04 03 95 20 08]
    Response: [80 08 C2 78 3A 8E 0E 28 00 00]

  6. Select CL2: [00 04 08 95 70 C2 78 3A 8E 0E 28]
    Response: [80 06 20 FC 70 08 00 00]

  7. Protocol mode select: [00 02 05 02 00 00 21 00]
    Response: [00 00]

  8. Read command: [00 04 03 30 01 28]
    Response: [87]

The UUID I’ve obtained is 5F 47 1D C2 78 3A 8E, which I’ve confirmed with a mobile reader.

At this point, I’m unsure of the next steps and what to expect from subsequent responses. I’ve attached the relevant code files in the appendix:

  • nRF code: ndef_file_m.c and main.c
  • ST25R95 code: st25r95.c

Thank you for any insights or guidance on how to proceed!

3 REPLIES 3
Brian TIDAL
ST Employee

Hi,

as far as I know, this tag can support either ISO14443-4 communication mode or ISO14443-3 communication mode. In Step 8, your READ command (30 01) is not an ISO14443-4 command. If you plan to use ISO14443-4 communication mode, you need first to perform ISO14443- 4 activation (RATS/ATS) and then send the proper ISO 7816 commands (SELECT, READ BINARY, etc.)

I suggest to use the ST25R Embedded Library for the ST25R95. This library provides a ready to use demo for reading NDEF. It provides support for the ISO14443-4 protocol layer. It is portable C code that can be ported to your own MCU.

I suggest as well to use an ISO14443-4 ST25TA tag rather than this multi mode tag.

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.

Hello BT,

Thank you for your reaction but it is not clear to me. The library isn't that functional to make my own MCU work. Is there not another way to help me?

Brian TIDAL
ST Employee

Hi,

what do you mean by "The library isn't that functional to make my own MCU work"? The code of the NFC and NDEF stack is platform independent. Platform dependent stuff is managed through platform macros that can be redirected to your spi_chip_select/spi_write/etc. functions.

Using our library will provide you the protocol stack to communicate over ISO14443-4 otherwise you will have to implement it by yourself.

If you want to make it simpler and use only READ command to read blocks of memory, I would suggest to use a T2T tag (for example ST25TN tag) instead of a T4T tag. With T2T tags, once the REQA/SELECT phase has been performed, READ commands can be directly issued without to have to deal with a complex communication protocol

You can find ready to use T2T tags in the ST25-TAG-BAG-UT1.

By the way, I had a look to the main.c and ndef_file_m.c: this seems to be related to Card Emulation...

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.