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.

TRF7961getting collison Interrupt instead of RX interrupt

Other Parts Discussed in Thread: TRF7961

Hello

I designed my own PCB with an TRF7961. TRF is supplied with 3.3V.  When I try to do an one slot ISO15693 Inventory I always get a collision Error although only one Tag is range of the reader?

TRF7961 is initialised with the following data: (Pseudocode)

SendSPI(0x09,0x01);    //100%OOK

SendSPI(0x00,0x20);   //RF active 3.3V

SendSPI(0x01,0x00);  //ISO15693 Low bit rate

SendSPI(0x07,0x36); //No Response Timeout

ReceiveSPI(0x4C,0x2);  //Read two bytes from IRQ Status Register (dummy Read)

SendSPI(0x8f,0x91,0x3d,0x00,0x30,0x26,0x01,0x00)

 

After that I get an Interrupt and read out 0x82 of the IRQ Status Register. I don't understand why the collision Bit is set although there is only one Tag in Range?

 

Can you please Help me.

 

 

 

  • try changing your request flags byte to match what you have set the reader IC ISO Control register for or vice-versa.

    ie - if you are using low tag data rate, single slot, you should be sending 0x24, not 0x26 or if you change the ISO control register to 0x02, then you can send 0x26.

     

  • Thank you for your anser

    After some time of testing, I found out, that if you use a slow SPI Interface (17,5 kHz Clock) and Low Data Rate (Flags 0x24) I get a Collision Interrupt. I've raised my Clock frequency and now it works.

    But I have another question:

    When I send the collision command 0x8f 0x910x3d 0x00 0x30 0x04 0x01 0x00

    I get first an IRQ with flag 0x80. I react with a Reset Fifo Command (0x8f)

    After that I get an Interrupt with flag 0x60. Now I read 9Bytes from the Fifo.

    But the bytes seem to be shifted. The first two bytes are 0x00. In the third byte the ID begins. Why are the first two bytes 0x00 ?? why is it shifted?

     

    Thank you for your help

  • Christophe80 -

    This is not an error. The ISO15693-3 defined response of a tag to an Inventory Command is:

    So the two 0x00 bytes you are seeing that precede the UID are the error response flags (should always be 0x00) and the DSFID, which should be programmed as 0x00 from the factory (which you could change to another value if you want to)

    You do not see the SOF, CRC or EOF because the reader checks that (the CRC) for you and strips all three of them out of the response back to the MCU to reduce the handling required by the MCU of the response string.