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 RFID

Part Number: TRF7970A

Hi All,

    We meet an issue about the trf7970A, we use it to develop a NFC/RFID reader, MCU is stm32F030, chage the code from sloc297c.

Can write and read the register's value of TRF7970 now, But there is no IRQ generate.  the TRF79xxA_checkExternalRfField always return FAIL,

and read the register :TRF79XXA_RSSI_LEVELS(0x0F)   always reply 0x42 back.  The ISO is use 14443a.

uint8_t NFC_appIso14443a(void)
{
#ifdef ENABLE_14443A

#if (TRF79xxA_VERSION == 70)
if (TRF79xxA_checkExternalRfField() == true)
{
return STATUS_FAIL;
}
#endif

    Can you help to see this, what is the problem maybe?5241.RFID_schematic.pdf

   Thanks!

   Qi

   

  • Hello Qi,

    Schematically everything looks fine.

    Given the description of the issue and the fact you are using a different MCU in the STM device my recommendation would be to get a Logic State Analyzer and review the SPI communication closely. Make sure the timings are correct for each packet, the SPI clock is 2 MHz, and also that all the bytes are written correctly.

    The description sounds very much like an issue with SPI communication and since we can't support the STM MCU, we would need to see SPI captures to provide any further support but really if you just compare captures from each MCU it should be easy to identify the root cause.

  • Hello Ralph,

          

  • Hello Ralph,

            Our SPI clock is about 3 MHz, We have test some register, like the register:  0x00 、0x01, both can write and read

    correct.

           Thanks!

           Qi

  • Hello Qi,

    Simple read/write tests are a good step but the device has a lot of timing dependencies especially when waiting for IRQ's so you need to investigate the entire communication chain as directed in my initial post. The MSP430 example is fine tuned to handle all timings accurately but if those timings are shifted (namely, reduced in duration) you will miss events.

  • Hi Ralph,

         what's the function of TRF79xxA_checkExternalRfField?   This function return is true, then will not run turnonRF and REQA process.


    uint8_t NFC_appIso14443a(void)
    {
    #ifdef ENABLE_14443A

    #if (TRF79xxA_VERSION == 70)
    if (TRF79xxA_checkExternalRfField() == true)
    {
    return STATUS_FAIL;
    }
    #endif

    TRF79xxA_setupInitiator(0x88); // Configure the TRF79xxA for ISO14443A @ 106kbps and Receive no CRC 0x88

          Thanks!

          Qi

  • Hello Qi,

    It looks for if there is an external RF field generated by another NFC reader in the proximity to avoid RF field collisions when trying to read tags.

  • Hi Ralph,

        As the datasheet, the value register 0x0F should be 0x40 after init. But by my side always read the value of  register 0x0F

    is 0x42 (have test the SPI read and write other registers is OK), what's the problem maybe? 

        Thanks!

  • Hello Harold,

    It could be that noise is present on the system and is being picked up by the antenna, or another source of an RF field is nearby. Is this occurring on multiple boards or just a single board?

  • Hi Ralph,

        We just made some samples for development, just found a single board have this phenomenon. 

    And we have no other source of an RF field  nearby when this happen. Our remaining boards also failed to read Tags

    until now.

        Thanks!

         Harold

         

  • Hello Harold,

    Have you reviewed the layout guidelines to ensure that the board has proper layout: http://www.ti.com/lit/an/sloa139a/sloa139a.pdf

    Big points include making sure the TX and RX paths do not cross at all, and that no digital signals are routed across the TX/RX path.

    I would also suggest to check for noise on the power and ground pins. Especially if any of the power or ground pins have longer traces near the TX/RX path.