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 fifo status

Other Parts Discussed in Thread: TRF7970A

hi, 

I'm working with trf7970A. I'm using  Spi with SS and ISO15693. I write  the register 0x00 -> 0x20 and 0x01->0x02 to work in rfid mode.

I can read all the register.

When pass the tag and read the fifo status, this send me differents value all the time. This is normal? should be a fixed value?

I'm reading a 0x40 in irq status.

I'm using the tag-it HF-i. 

  • Hello Cric,

    The FIFO status value which is returned is going to indicate the amount of data read from a tag, i.e. the Length of Bytes contained inside of the FIFO. Therefore it will vary depending on how many bytes of the data is sent back by the tag. For example, an inventory command will return 0x0A bytes (10 bytes, Flags+DSFID+8 Byte UID) back, while a Read Single block command may only return 0x05 or 0x06 blocks back (pending on if Block security status is returned) for any Tag-It HF-I tag (all these have 4 block data blocks).

    Resetting the FIFO will ensure that the prior value and the length of the prior receive are cleared.

    Therefore, if you are presenting the same tag, sending the same ISO15693 command, receive a 0x40 from the IRQ Status, read the FIFO Status, read out the FIFO data, and then reset the FIFO with direct command 0x0F then I would expect that the FIFO status you receive each time to be the same value.

    Does this explanation help?

  • Hi Ralph,

    I pass the tag 1 time, then I chech the fifo status several times, and is different each time. I'm checking with the oscilloscope in the miso line.
    I try with another register and works fine. I don't know what is the diference between the Fifo status registers and another one.

    Thanks,
  • Hi Cric,

    Do you know what your firmware is doing in terms of sending or receiving commands?

    The FIFO is used every time an RF command is sent out, or a reply is received. If the firmware is setup to send out RF commands to poll for a tag, then the FIFO status would continue to change as different strings of data are sent to it - even if no tag is present.
  • Hi Ralph,

    I'm not sending anything. I'm only reading some adress to check the correct setup. I'm starting to develop a rfid reader and my firmware is to simple, at the moment i'm checking the diferents address and trying to read the uid of a tag, and the first step is read the status Fifo.

    In the 0x00 addresss , I write the 0x20 to enable the RF, this is correct? (tranmister ON and receiver ON)
    I don't know what happens....

    Best regards
  • Hi Cric,

    If you are not sending any RF commands then I am not sure why you would ever receive a 0x40 in the IRQ status register which was mentioned in your introduction post. A Tag-It HF-I tag would not send any information that should trigger a 0x40 just because it is exposed to an RF field.

    Can you take shots of your oscilloscope on the SPI lines to show what happens when you get different results read from the FIFO? The more communication you can share the better. If you happen to be able to get a Logic State Analyzer and get shots from that, it would be even more helpful.

    The FIFO status value is expected to change when anything is sent (written to) or received (read from) the FIFO buffer. So if you are observing these changes, and also seeing the IRQ status register change, I expect somehow there are commands being issued and that is why you are seeing the FIFO change.