Hi @EduardoZamora ,
Thanks for your comments.
1. Yes, below is correct.
The application does not react at all, and you are not getting any other response, is this correct?
2. Tag I am using is recognized by NFC TagInfo by NXP android Application. Card details recognized by Taginfo application is as below.
IC Type : Unknown MIFARE Classic IC, possibly cloned.
Technology Supported: ISO/IEC 14443-3 (TYPE A) compatible.
3. I was debugging NfcFactoryTestApp.c application and put debug prints inside
static void Functional (int handle) function, and I found that instead of (Answer[0] != 0x61) || ((Answer[1] != 0x05) && (Answer[1] != 0x03)) I am getting
Answer[0] = 0x61
Answer[1] = 0x23
Answer[2] = 0x00
static void Functional (int handle)
{
char NCIStartDiscovery[] = {0x21, 0x03, 0x09, 0x04, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x06, 0x01};
char NCIRestartDiscovery[] = {0x21, 0x06, 0x01, 0x03};
char Answer[256];
printf("Functional test mode, starting discovery loop ...\n");
tml_transceive(handle, NCIStartDiscovery, sizeof(NCIStartDiscovery), Answer, sizeof(Answer));
if((Answer[0] != 0x41) || (Answer[1] != 0x03) || (Answer[3] != 0x00)) {
printf("Cannot start discovery loop\n");
return;
}
printf("NFC Controller is now in functional mode - Press Crtl^Z to stop\n");
while(1) {
do {
tml_receive(handle, Answer, sizeof(Answer));
for(int i=0;i<3;i++){
printf("0x%x\r\n", Answer[i]);
}
} while ((Answer[0] != 0x61) || ((Answer[1] != 0x05) && (Answer[1] != 0x03)));
printf(" - tag discovered, restarting discovery loop ...\n"); tml_transceive(handle, NCIRestartDiscovery, sizeof(NCIRestartDiscovery), Answer, sizeof(Answer));
}
}