Hi,
TRF7970A connected with MCU through SPI and system clock is 13.56 MHz. The below is configuration of TRF to communicate with iso15693 tag :
TRF Enable()
TRF_SendDirectCommand(TRF_SOFT_INIT_CMD)
TRF_SendDirectCommand(TRF_IDLE_CMD);
TRF_ResetFIFO();
TRF_WriteRegister(TRF_MODULATOR_CONTROL, 0x31)
TRF_WriteRegister(TRF_REGULATOR_CONTROL, 0x00)
TRF_WriteRegister(TRF_NFC_TARGET_LEVEL, 0x00);
TRF_turnRfOn();
Single Inventory Command 8F, 91, 3D, 00, 30, 26, 01, 00
With above configuration, TRF communicates with iso15693 tag on 4 boards but does not work on other 4 boards. The below is non working scenario:
MCU transmits the single inventory command to TRF and TRF generates the interrupt on interrupt line (checked wit logic analyzer). MCU reads the TRF's IRQ STATUS REGISTER and MCU always gets 0x80 (transmission complete) and never receives a 0xC0 or 0xE0 or 0x40. MCU also read the FIFO length and received response as 0x00 (means no data in TRF's FIFO). As per my understanding, TRF generates interrupt if it has received data from tag but not sure why IRQ STATUS REGISTER only provides 0x80. Please assist in resolving this problem.
SPI engine is working fine because it is reading and writing to TRF's registers successfully.
Please let me know if you need more inputs from my end on this.
Thanks,
Anuj