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.

TRF7960A vs TRF7970

Other Parts Discussed in Thread: TRF7960, TRF7960A, TRF7970A

Hi,

I have a full functional board with a trf7960 chip, now I have developed an upgrade of this board, and I would want to use 7979 instead of 7960A.

I have put the same circuitry of the 7960 board (for the rfid section) on this new one. 

But if I put on it a 7970 chip I don't succedded in read the 7970 register via SPI with SS. I have seen that my command arrive to the miso e clk pin, but neither exit.

In the SAME board (phisically)  I have put the 7960 and all work fine ! 

Please help me, I have just bougth 500 pcs. of 7970, and I must produce this 500 board next month.

Best regards and thanks in advance.

Marco

  • Hi Marco,

    There are a couple of considerations you will need to make to your firmware when switching from TRF7960A to TRF7970A. 

    The TRF7970A does not require a switching of the DATA_CLK polarity when switching from read and write modes.  The TRF7960A does require this.

    The TRF7970A requires that you send the  software initialization direct command(0x03) upon power up.   

    See section 5.9.5 of the datasheet for the SPI details.

  • Marco -

    to add to Eddie's comment here - the register 0x09 (for the TRF7970A) is defaulted to support 27.12MHz crystal. Thus, if you are using same BOM as what you have for the TRF7960 (meaning, that you are using a 13.56MHz crystal) then you must change B7 from 1 to 0 to support your clock.

    We recently updated some code that we had done for the Stellaris LM3S9B96 kit where we made some logic which read this register value out first, then configured it as described above (since we are also using 13.56MHz clock) then configured SPI based on which part was being used (-60A vs. -70A)

      

  • Josh / Eddie,

    is there a (perhaps more or less) complete comparison between TRF7960 / TRF7960A and TRF7970A from a software / firmware point of view (e.g. SPI Mode, Default register settings, etc.)?

    I have a similar dilemma as Marco has. A couple of devices running with TRF7960 (without 'A'!), that shall be 'upgraded' to TRF7970A in order get a SW update later for adding ISO14443 support and perhaps NFC features (without the need of exchanging HW at the customer's site). But in the first step the microcontroller-software shall be identical (no concrete SW change planned so far).

    As far as I understand now, it is NOT possible to run a TRF7970A with a microcontroller-SW written for a TRF7960, is it?

    - Frank

  • Frank -

    Basically - thats correct - the FW differences are:

     

    Send Soft Init (0x03 è 0x83) and Idle (0x00 è0x80) to the TRF7970A after raising EN line to make sure SPI is going to work. This is covered on page 36 of the datasheet èhttp://www.ti.com/lit/ds/symlink/trf7970a.pdf

    Then, if still using 13.56MHz crystal, you must change the register 0x09 to make B7 a 0 (it is default = 1, for 27.12MHz clock)  You can follow table 6-13 on page 65 of the data sheet èhttp://www.ti.com/lit/ds/symlink/trf7970a.pdf                                                       

    The next thing is the fact that we removed the requirement to add 1 to the number received from the read of the FIFO status register (versus the TRF796x devices)It This is covered in table 6-33 on page 75 of the data sheet èhttp://www.ti.com/lit/ds/symlink/trf7970a.pdf

  • Thanks to Josh and Eddie,

    I have modified my firmware with all the tips they have give me; but I don't succedded in have some response from TRF7970.

    I'm waiting for a completely new board in order to test it (because solder and unsolder the chips I think can give some trouble to the circuit strip).

    As documentation I have found only the SLOA158 .

    Marco

  • Are there basically any changes in the board layout to be considered when switching from TRF7960 to TRF7970A?

  • There should be zero board layout change when moving from TRF7960 to TRF7970A.  For example, our TRF7960EVM and TRF7970AEVM are exactly the same, with the only difference being the TRF79xx chip which is populated.

  • Hello Eddie,

    you wrote:

    "The TRF7970A does not require a switching of the DATA_CLK polarity when switching from read and write modes. "

    However, the TRF7970A's manual says something different:

    ""The read command is sent out on the MOSI pin,MSB first, in the first eight clock cycles. MOSI data
    changes on the falling edge,and is validated in the reader on the rising edge,as shown in Figure5-17.
    During the write cycle,the serial data out (MISO) is not valid.After the last read command bit (B0) is
    validated at the eighth rising edge of SCLK,after half a clock cycle,valid data can be read on the MISO
    pin at the falling edge of SCLK.

    According to this, TRF7970A works in the same ways as TRF7960 does, switching the SPI-edge.

    So I am confused...

    Best wishes

    Anyu Dai

  • Hi, I have exactly the same problem, I had the trf7960a and worked very well, I read and wrote a card completely, now I change the I.C. but I keep the same circuit, and it doesn't work, I mean I don't get a correct response, I send the reset software and idle commands first of all ( I didn't change the spi configuration) and then I try to read, but I can't read, I wonder if there is something else that I can do, any change in the circuit?, any other change in the S.W.?

  • the TRF7970A does not require the clock polarity change like the TRF7960, -61, -62A, and -63A devices. Most likely this is your issue.

    Please see figure 5-17 here ==> http://www.ti.com/lit/gpn/trf7970a 

  • Thank you, you are right that was the problem.

    I have one more question, about the I.S.O.18092 (N.F.C.P.I.-1).

    How should I use the Perform response RF Collision Avoidance (n = 0) command(0x06), I mean, Is like the transmit with C.R.C. command, for example:

    start condition

    send the Perform response RF Collision Avoidance (n = 0) command

    send the number of bits to the 0x1d an d0x1e registers

    send the data to the F.I.F.O.

    stop condition

    Is like that?

    Is similar the 0x05 command, the Perform response RF Collision Avoidance (n = 1,2,3)?

    Thank you for your attention,

    Daniel


  • not sure i am following your question exactly. 

    RE: the collision position register usage...this value is set to zero automatically by the decoder at start of receive. The decoder then counts the received bits from zero up and when detecting a collision it triggers an IRQ. The user doesn't have to do anything.

    It is possible to manually clear the value by switching from RFID mode to NFC mode and back to RFID mode.
    For example writing 0x21 to Reg 0x01 (NFC mode) and then write 0x08 to Reg 0x01 (RFID 14443A).

  • Hi,

    No, that wasn't my question, I understand the collision position register and that the values of the parameters will change if I write on the 0x01 reg in order to succeed in the communication.

    The situation is that when I configure the reg 0x01 to work in N.F.C. active target mode, the register 0x0c is different, I am using the definition of the table 6-21 of the datasheet (trf7970a),

    My question is, How is the sequence that I should follow if I want to send data in this mode?, I am asking how should I use the 0x05 and 0x06 commands, Is the sequence presented by me previously correct or wrong?.

    Thank you for your attention

    Daniel

  • 05 and 06 commands? not sure i am following you here...do you mean register writes or what exactly?

  • Sorry if I wasn't clear,

    the commands 0x05 and 0x06, (Perform response RF Collision Avoidance and Perform response RF Collision Avoidance (n = 0))