cancel
Showing results for 
Search instead for 
Did you mean: 

cr95hf Residual bits in last byte [0x90]

ksevil
Associate

Hi,

I am reading mifare desfire tag which is iso14443-4 compliant using cr95hf.

Most of the time, communication is completed successfully but sometime, i am getting 0x90 result code when using SendRecv command.

0x90 EUnintByte Residual bits in last byte. Useful for ACK/NAK reception of ISO/IEC 14443 Type A.

I do not know how to handle this error and i could not find any information in the iso14443a specifications.

Could help me to find resources for this topic?

Is it recoverable error or should i stop the communication after getting this error?

Regards.

This discussion has been locked for participation. If you have a question, please start a new topic in order to ask your question
1 ACCEPTED SOLUTION

Accepted Solutions
Brian TIDAL
ST Employee

Hi,

the 0x90 result code is used when the last received byte is incomplete. This is used typically in T2T mode to receive 4-bits ACK/NACK responses.

Your tag is not a T2T tag and IsoDep (ISO14443-4) protocol is used for Reader<->Tag communication. Having a 0x90 result code in your case is due to a transmission error. The IsoDep protocol has to manage this as an invalid block and has to act accordingly to cause the retransmission of the block.

If your are using your own implementation of the IsoDep layer (ISO14443-4), make sure to follow Rule 4. and Rule 5. from ISO14443-4.

If you are using ST RFAL middleware, the IsoDep layer properly manages this case .

Note: I would recommend to use the ST RFAL which provides ready to use source code for NFC communication with ST25R readers. See STSW-ST25R017 for the ST25 embedded NFC library for ST25R95 reader and tag products.

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.

View solution in original post

1 REPLY 1
Brian TIDAL
ST Employee

Hi,

the 0x90 result code is used when the last received byte is incomplete. This is used typically in T2T mode to receive 4-bits ACK/NACK responses.

Your tag is not a T2T tag and IsoDep (ISO14443-4) protocol is used for Reader<->Tag communication. Having a 0x90 result code in your case is due to a transmission error. The IsoDep protocol has to manage this as an invalid block and has to act accordingly to cause the retransmission of the block.

If your are using your own implementation of the IsoDep layer (ISO14443-4), make sure to follow Rule 4. and Rule 5. from ISO14443-4.

If you are using ST RFAL middleware, the IsoDep layer properly manages this case .

Note: I would recommend to use the ST RFAL which provides ready to use source code for NFC communication with ST25R readers. See STSW-ST25R017 for the ST25 embedded NFC library for ST25R95 reader and tag products.

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.