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: missing IRQ sending ISO15693 commands in half output power

Part Number: TRF7970A
Other Parts Discussed in Thread: MSP-EXP430G2ET, MSP-EXP430F5529LP,

Hi,

I have the following issue.

If I set the TRF7970 in full output power (STATUS CONTROL REG = 0x20) everything works fine.

If I set the TRF7970 in half output power (STATUS CONTROL REG = 0x30) and I send Read Single block command the transceiver send a correct answer once and at the next command it doesn't send any IRQ, and so on.

Here the log with the dbg strings:

// 1 command

022002  //Read Single Block command

80T40E[00AABBCCDD]  //correct response

//2 command

022002  //Read Single Block command

[y]  //missing IRQ

// 3 command

022002  //Read Single Block command

80T40E[00AABBCCDD]  //correct response

// 4 command

022002  //Read Single Block command

[y]  //missing IRQ

...

I'm starting from fw of TRF7970AEVM using routine HostRequestCommand but switching off transmitter and receiver at the end of each command (STATUS CONTROL REG = 0x10) and on again at the following transmission.

I have this issue only when set half output power.

I've read in the sloa159a the hints for Missing IRQ, it could be due to that?

Could please explain better the workaround:

"The loading and reading of the FIFO should be coded in such a way, that the Stop condition does not fall
directly on the TX byte boundary."

Kind regards

Elisa

  • Hi Elisa,

    at first, the firmware for the TRF7970AEVM is known to have bugs and will no longer be supported. Better resources for a firmware are:

    https://www.ti.com/lit/zip/sloc346 which is for ISO15693, written for the MSP-EXP430G2ET Launchpad

    https://www.ti.com/lit/zip/sloc297 also for the MSP-EXP430G2ET Launchpad, supports different standards (UART output only)

    https://www.ti.com/lit/zip/sloa227 full NFC software package with firmware and GUI for the MSP-EXP430F5529LP (and others)

    Please see also the FAQ for more information:

    https://www.ti.com/lit/sloa246

    Regarding your question, I have no idea how the setting of the power mode should have an influence on the IRQs. The workaround explained in the document you have mentioned, is meant for the parallel interface mode, which is the mode that have a stop condition. If you are using the SPI mode please see TRF7970A datasheet chapter 6.10.5 for information how this stop condition correlates with the dummy read needed in SPI mode when reading the IRQ status. You can check if this is implemented correct and maybe solves your IRQ problem.

    Best Regards,

    Helfried 

  • Thanks for your quick reply.

    I will look at the fw you suggest but because I use parallel interface could you please also clarify the workaround or show me an example code of this?

    Kind regards

    Elisa

  • Hi Elisa,

    I tried to find more information about that issue, but was not able to find anything that explains that in more detail, nor any example code. I think the reason is that all the implementations I have seen so far and all our demo hardware is using the SPI interface. The only system that has the possibility to switch between parallel and SPI was the no longer supported TRF70AEVM.  
    If you haven't already designed your custom hardware with the parallel interface I would recommend using the SPI interface and take one of the firmware samples I have recommend as a base for your own development.

    Best Regards,

    Helfried

  • Dear Helfried,

    unfortunately we've already designed the hardware using the parallel interface.

    It seems that at the end of a successful Read command the IRQ Status Register = 0xA0, then if I send a new READ command it fails (never get a IRQ interrupt on selected pin but only interrupts due to timer elapsed).

    If instead I read IRQ Status register before sendig next command, IRQ Status register value reset to 0x00 and the command is correctly proceeded.

    Any idea of why IRQ Status register = 0xA0 after receiving command response?

    When the TRF7970A is set to full power everything works fine and at the end of read command IRQ Status Register = 0x00.

    I described the behaviour with read single block command but obviously I get the same result with all the other commands.

    Kind regards

    Elisa

  • Hi Elisa,

    the value of 0x0A in the IRQ status register would indicate that TX is in progress and the FIFO is empty. This means that the IRQ at the end of TX was either not issued or was not handled by the MCU. I still have no idea why you notice a dependency from the power setting for this behavior. In your first post you wrote that you have added a TX off and switch also of the receiver. Would it change something if you remove this from the code?

    Best Regards,

    Helfried  

  • Hi Helfried,

    the strange behavior is that if I enable debug string in IRQ interrupt routine I can see the correct sequence of the command process:

    IRQ status reg = 0x80 (dbg string 'T')

    IRQ status reg = 0x40 (dbg string 'E')

    but reading the IRQ status reg at the end of reception I found 0x80 (while with full power at the end of reception is correctly 0x00).

    I tried to not switch off transceiver and receiver at end of the command Chip status reg = 0x30 (3V power supply) and it stops working at all, IRQ status reg is fixed 0x80...

    An interesting thing I found is that if I simply turn on the transmittere and receiver in half power (Chip status reg from 0x00 to 0x30) and then I read the IRQ status reg, I found IRQ status reg = 0x80! The same thing doesn't happen in full power, switching on the transceiver (Chip status reg from 0x00 to 0x20) and  the IRQ status reg=0x00.

    Any idea?

    Best regards

    Elisa