This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Reading Double UID from a MiFare Ultralight Tag

Dear all,

 

I'm trying to read out the 7 UID bytes (ie double UID) from a MiFare Ultralight Tag, and experience some problems. In my application there will be only one card in the HF-Field, ie no collision will ever occur. The communication sequence with the Tag is based on a script from NXP. The original script was written for reading a 4 byte (single) UID from a 14443-A Tag, with only one Tag in HF-Field. This Works perfekt, ie I activate Tag with ReqA and receive the ATQA. I then issue the SEL 93 and NVB 20, and correctly receive "88 UID0 UID1 UID2 BCC", ie first 3 UID bytes of a double (7 byte) UID. So far so good :).

 

The problem start when I try to read out the remaining last 4 UID bytes.. After Reading the ISO/IEC 14443-3 document I tried simply to issue a SEL 95 and NVB 20 sequence, to get the last UID bytes from cascade Level 2, but in response no UID data was to be read from the Tag. After further reading of the ISO/IEC 14443-3 I tried to send "SEL 93, NVB 70, 88, UID0, UID1, UID2, BCC" to receive a SAK (with expected value 04). And then send "SEL 95 and NVB 20" to read out the remaining 4 UID bytes, from cascade Level 2. No SAK was ever returned, and of cause no remaining UID bytes was returned.

 

Must I issue the "SEL 93, NVB 70, 88, UID0, UID1, UID2, BCC" sequence to get the missing UID bytes, or could I just send "SEL 95 and NVB 20" to read out the last 4 UID bytes in cascade Level 2?

 

Can someone please guide me in the right direction here?

 

Thanks :-)