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.

RSSI value not changing after keeping the HF-I tags near to TRF7970A

Other Parts Discussed in Thread: TRF7970A

Hii

We are working on TRF7970A which is interfaced with the i.MX6 Sabresd running on linux platform (3.10.17 yocto kernel). 

We added the trf7970a driver(trf7970a.c) in the drivers/nfc/ dir.

Also we added the digital stack comprising digital_technology.c, digital_core.c ,digital_dep.c digital.h

  • Initially we had issues in powering up the device. We resolved by adding a correct power up sequence in the driver.
  • Then we faced issue of getting continuous interrupts at boot time. We resolved by adding a pull down in the interrupt line and setting the IRQ line as rising edge triggered.
  • But now we are facing another issue. We are using nfctool for polling for any tags by command nfctool -p -d nfc0 
  1.   After giving this command the following scenario occurs:The reader tries to send some command. But while sending command it receives the interrupt with the interrupt status register having the value 0x10 meaning protocol error.
  2. Then the trf7970 sends the command to disable the Receiver and the FIFO gets reset.
  3. After this again reinitialization of the the chip takes place. And the same process of sending command the receiving interrupts is continued.
  4. The RSSI value in the RSSI status register (0x0F) is constant at value 0x40  even when the HF-I tags are kept near the reader

    Please suggest me  any solution as I am not able to find a way out to solve this error

  • Hello,

    What hardware are you using?  Are you using custom TRF7970A hardware and antenna, or one of our Eval boards?  

    Is there any metal very close to the antenna?  What about any NFC readers near by?  

    Can you try making sure that register 0x18 is 0x00, this can just be added to the initialization routine.

     

    If none of this works, could you provide a LSA capture from power-up to Protocol error.  If not possible, maybe a log of the exact commands being sent/received up to this point.

    Thanks,

    JD   

  • Hi John

    Thanks for your reply.

    We are using Freescale's I.MX6 Sabresd Board. Through the SPI of Sabresd we have connected the NFC development board TRF7970ATB.

    There are no metals or NFC reader nearby.

    NFC Target Detection Level Register(0X18) is already initialized with 0x00

    When I give command nfctool -p -d nfc0 from the user space. It takes the call to the trf7970a driver: Then the below command runs continuosly


    trf7970a_init()
    *Initializing device - state: 1
    cmd: 0x83
    cmd: 0x80
    trf7970a_write: 0xb 0x1      // Writing register 0xb with value 0x1
    trf7970a_write: 0x9 0x91
    trf7970a_write: 0x14 0xf

    trf7970a_write: 0x10 0x0
     trf7970a_write: 0x18 0x0
    cmd: 0x97
    cmd: 0x99
    trf7970a_write: 0x1 0x2  
    trf7970a_write: 0x0 0x21

    trf7970a_send_cmd()        This command is for ISO15693 protocol. We are using HF-I Tags

    cmd: 0x8f
    cmd: 0x91
    cmd 0x3d
    cmd: 0x0
    cmd: 0x30
    cmd: 0x26
    cmd: 0x1
    cmd: 0x0

    After this interrupt occurs:
    trf7970a_read_irqstatus ()


    trf7970a_read: 0x0C   //Reading interrupt status register


    Continuous read inside trf7970a_read_irqstatus ( for clearing IRQ status register )

    Value Returned : 0X80

    cmd: 0x8f

    Bringing the HF-I tags nearby the reader

    trf7970a_read: 0x0F // Reading RSSI and Oscillator Status Register

    Value returned: 0x40

    The value of this register is constant.

    The process of reinitializing the deivce is continuously repeated. And we do not receive any data from the tag.

    Regards

    Deep ter

     

     




  • Can anyone help me with this issue??