I'm writing an stm32 driver for the NXP MFRC522 ISO14443A PCD but cannot get it to talk to DESFIRE cards.
My code will correctly identify both Mifare Classic (4-byte) and NTAG203F (7-byte) PICCs and it can correctly read the contents of an NTAG203, so I'm confident that the analogue layer is probably right and that I have the cascading anti-collision protocol close enough to correct to select a single card. I'm using one of those $5 eBay MFRC522 boards with a PCB antenna that's about 32x35mm square, 4 loops.
However when I present it with a DESFIRE card, there is no reply to REQA or WUPA. For lack of ATQA, the code doesn't begin the anticollision process, it just thinks there is no PICC present and keeps on REQA-polling at a few Hz.
My android can talk to the DESFIRE cards (MF3ICD81) with no issues, so the problem must be with my system. Likewise our local bus passes are DESFIRE and can be detected by an android but they do not respond to REQA from my system.
Does anyone know if there is any manner in which DESFIRE cards need to be treated differently, e.g. modulation settings or something (I have set the "Force 100% ASK" bit)? Any common pitfalls?