Skip to main content
Visitor II
July 27, 2022
Solved

I am trying to write memory on the ntga213 tag using CR95HF reader

  • July 27, 2022
  • 2 replies
  • 770 views

You're doing a great job.

During the CR95HF reader test,

The NTGA215 Tag is implemented as memory read/write. We proceeded by referring to the data sheet (61 page - ISO14443-A).

Memory Read works normally, but the Memory Write function is not working properly.

I'd appreciate it if you could tell me where it went wrong

0693W00000QMEXCQA5.png0693W00000QMEXWQA5.png[Ardiuno Test Log]

0693W00000QMEbnQAH.png 

    This topic has been closed for replies.
    Best answer by Brian TIDAL

    Hi,

    02 04 02 00 02 80 means PP=02 and MM=80 and therefore the FDT=155ms which should be enough for the Write command.

    If you want to use the 10 ms FDT, the command should be  02 05 02 00 00 21 00 but anyway you should not see frame waiting timeout during write command with your  02 04 02 00 02 80 configuration.

    Can you provide a logic analyzer trace (SPI CLK/MOSI/MISO/SS + IRQ_OUT) from initialization up to the write command so that I can have a look?

    Rgds

    BT

    2 replies

    Technical Moderator
    July 27, 2022

    Hi,

    see https://community.st.com/s/question/0D50X0000AFqKjkSQF/why-does-my-cr95hf-respond-with-0x87-timeout-or-no-tag-after-successfully-writing-to-a-ntag216-nfc-forum-type-2-compliant-tag for identical issue:

    Basically, a Frame Delay Time (FDT) greater or equal to 10 ms is needed for Type 2 write commands (a certain time is needed by the tag to write its EEPROM memory and to send back its ACKnowledge).

    The FDT can be modified through the PP:MM:DD parameters of the ProtocolSelect command.

    As an example, with PP=0x00, MM=0x21, DD=0x00, FDT = 10ms.

    Let me know if using those values fixes your timeout issue. In that case, would you please select this answer as Best answer to close this topic?

    Rgds

    BT

    DJeon.4Author
    Visitor II
    July 27, 2022

    Thank you for your answer

    Currently, ISO Select Protocol Cmd is used as follows:

    protocol select write cmd : 0x 020402000280

    I'm not sure what to fix. Help me

    <packet>

    [0] = 0x02 (protocol select cmd)

    [1] = data_Length

    [2](data) = 0x02

    [3](data) = 0x00

    [4](data) = 0x02

    [5](data) = 0x80

    0693W00000QMFu7QAH.png

    Technical Moderator
    July 27, 2022

    Hi,

    02 04 02 00 02 80 means PP=02 and MM=80 and therefore the FDT=155ms which should be enough for the Write command.

    If you want to use the 10 ms FDT, the command should be  02 05 02 00 00 21 00 but anyway you should not see frame waiting timeout during write command with your  02 04 02 00 02 80 configuration.

    Can you provide a logic analyzer trace (SPI CLK/MOSI/MISO/SS + IRQ_OUT) from initialization up to the write command so that I can have a look?

    Rgds

    BT