I'm using the MFRC630 in my product. Right now, I can't get an accurate response to my REQA command, to allow me to do further reading and writing of the Tag. I would expect a 0x00 0x44, but instead am getting 0x1A 0xDD. Furthermore, when I check the length of the FIFO (using address 0x04) after my Transceive command, I never seem to get any data back (hence I'm reading garbage). What question is: In software, what are the steps required to setup the Transmitter and Receiver circuitry to properly exchange data using ISO/IEC14443A protocol? This is what I am currently doing:
- Load Protocol (Writing 0x00 0x00 to the FIFO and writing the Load Protocol 0x0D to the Command register)
- Turning RF field on (I can verify this works using a current meter)
- Set RX and TX CRC preset to the same value (0x19 value for their registers)
- Clearing IRQ0 and IRQ1 registers
- Sending the REQA command (0x26) to the FIFO, and executing a transceive command.
- After a wait of between 20-40ms (I don't have the interrupts enabled yet), I check the FIFO length (always 0), and the IRQ0 register (RxIRQ bit is never high)
Am I missing a setup step?
I've also experimented with including the LoadReg Command during setup with the FIFO values (0x00 0xC1 0x29 0x11) which I saw using my logic analyzer with the NFC Cockpit tool performing a "Activate Layer" command. I can't figure out what exactly that performs, but it didn't seem to help.
I can verify the hardware works as I can solder in my own front end and antenna into the CLEV6630B proto board and using the NFC Cockpit tool can get the expected REQA response and continue to read and write my Tags.
Any help regarding the setup of the registers and code is appreciated.