Write 0x3F to interrupt ;ask register
Write 0x21 to CS Control
Write 0x02 to ISO Control
Write 0x13 to RX No response time
Write 0x21 to Modulator control register
Write 0x80 to TX Pulse Length
Receiver Gain Adjust command
Then here's the bytes I send to read the tag's First Block data:
size = 11;
buf[0] = 0x8f; /* Flush FIFO */
buf[1] = 0x91; /* send with CRC */
buf[2] = 0x3d; /* write continous from 1D (TX len) */
buf[3] = (u8) (size >> 8); /* Length in FIFO */
buf[4] = (u8) (size << 4);
buf[5] = 0x22; /* ISO15693 flags */
buf[6] = 0x20; /* Read single block command */
buf[7] ~buf[14] //Tag ID
buf[15]=0x01; //Bluck Number
When I send this data, the IRQ status register's value is 0xA0; Then I delay more time when I receive the interrupt, I get the IRQ Status Register's value is 0xE0, than indicate the Chip is receiving and transporting data at the same time. I'm so confused about this problem.