This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TRF7970A: TRF7970A issue with interrupt line and IRQ STATUS REGISTER

Part Number: TRF7970A

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

  • Hi Anuj,

    are you having the TRF7970A supplied with 3.3V or with 5V? Sometimes the regulator setting can cause trouble when set to the lowest voltage. Can you give it a try and set the TRF_REGULATOR_CONTROL to 0x03. Please let me know if this makes any difference.

    Best Regards,

    Helfried

  • Hi Helfried,

    Thanks for your quick response. TRF7970A is supplied with 3.3 V. I modified the code for TRF_REGULATOR_CONTROL register and executed the code on both working and non working device. This modification did not make the non working device work. Working device is getting response from the tag with the modified code.

    Thanks,

    Anuj

  • Hi Anuj,

    what I can see from your description is that the TRF shows in the IRQ register it has the data transmitted but never received a response. Because this can also be related to the board and not only to the TRF device it would be good to see if the problem follows the device or the board. Would it be possible to mount a TRF from a non-working board to a working board?

    You could also verify if the non-working board is transmitting the 13.56MHz with a sufficient level and if possible check if the tag is responding. If the tag is responding the next step would be to verify the RX path on the board. 

    Best Regards,

    Helfried

  • Hi Helfried,

    I will try these steps and update. 

    Datasheets describes that if TRF receives data from tag then it will generate interrupt which is happening in our non working device but IRQ register says that TRF only transmitted the data. Will TRF generate interrupt for data transmission also ? 

    THanks,

    Anuj 

  • Hi Anuj,

    there are basically two flags in the IRQ status register for the communication with the tag. Bit 7 shows that TX is in progress but the IRQ line will be set when TX is complete. When SOF is received from the tag bit 6 will be set to show that RX is in progress but the IRQ line will be set when RX is completed.

    Please see also the notes in the FAQ chapter 4.6 regarding the IRQ flag states and the handling:

    https://www.ti.com/lit/an/sloa248b/sloa248b.pdf

    Best Regards,

    Helfried

  • Hi Helfried,

    We traced the RF field on the working (2 boards) and non-working boards (2 boards) using spectrum analyzer.

    Working board data (sample size - 2 boards): Spectrum analyzer detected the RF field with 13.50M HZ frequency and signal level was around -10 dB when tag was not placed below the TRF. Signal level was around 0 dB when tag was placed below the TRF.

    Non-working board data (sample size - 2 boards):

    Spectrum analyzer detected the RF field with 13.50M HZ frequency and signal level was around -40 dB when tag was not placed below the TRF. Signal level was around -35 dB when tag was placed below the TRF.

    We also replaced existing TRF chip on non working board with new TRF chip but it did not make the board work and dB level was the same around -40 dB.

    Please suggest the next steps.

    Thanks,
    Anuj

  • Hi Anuj,

    from the symptoms you have described it is clear that the problem must be on the board and depends not of the TRF device. You where able to measure the 13.56MHz with a low level which means the transmitter is active but the signal is not strong enough. At first step you can check the power for the transmitter stage (VDD_PA) . The next step would be to check the correctness of the impedance matching network and the antenna.

    If possible you can disconnect the antenna and replace it with a 50Ohm load to see if the problem is related to the antenna or the impedance matching network.

    Best Regards,

    Helfried

  • Hi Helfried,

    We looked at the tuning of the RFID antenna on a “good” board and a “bad” board using network analyzer. The good board is properly tuned at 13.56MHz and the bad board antenna is closer to 41MHz. This is why the RFID signal was so weak on the bad board. The board house must have used incorrect trace widths or copper thicknesses on a batch of the boards.

     

    Thanks again for helping troubleshoot this.

    Thanks,

    Anuj