cancel
Showing results for 
Search instead for 
Did you mean: 

[ST25R95] The response time of the SendRecv command is too long(>500us)

vgegok
Associate

I am trying to use ST25R95 as an ISO14443-A card reader to read a standard Mifare classic 1K card. I am using a logic analyzer (Saleae) to detect that the card response time after sending the SendRecv command is about 500us or more, which is too high for my actual needs, The following is a screenshot of the logic analyzer:

vgegok_1-1729850741684.png

Note: The MOSI pin in the figure is not connected to the logic analyzer, as connecting the MOSI pin will cause ST25R95 to fail to start, This issue can be ignored in this discussion for now.

 

 

 

 

 

 

Wait for 100ms after the startup sequence is completed.

The IDN command received the correct response.

The protocol selection command has received a response of 0x0000.

Send SendRecv command: (00) 04 02 26 07

After approximately 500us, IRQ_OUT asserts.

 

 

 

 

 

 

 

I'm not sure if this is a problem with the configuration I'm using or the original ST25R95 design, but I hope to shorten the response time.

2 REPLIES 2
Brian TIDAL
ST Employee

Hi,

the IRQ_OUT asserts when a response to a previous command is available. In the present case, the IRQ_OUT asserts when a response from the tag has been received  or when the Frame Waiting Time (FWT) timer elapses. See the protocolSelect command if you want to change this FWT.

I see a lot of 03h polling in your trace. This is not needed if you rely on IRQ_OUT handling. I do not see the reading of the response (02h).

Also, I guess you have your own SW implementation. I would suggest to base your development on the X-CUBE-NFC3 package that provides ready to use demos.

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.

I use polling to obtain responses, and IRQ_OUT is only for reference.

The ST kit I purchased has not yet arrived.

 

In my tracking, 0x02 is located at the end of the time measurement, after the IRQ_OUT assertion. The response time I measured is above 500us.

If you have measurement data, please let me know.