SLOA140B April   2009  – November 2018 TRF7960 , TRF7960A , TRF7961 , TRF7962A , TRF7963A

 

  1.   Using the SPI Interface With TRF7960
    1.     Trademarks
    2. 1 TRF7960 - SPI With SS* Mode Errata
      1. 1.1 SCLK Polarity Switch
      2. 1.2 IRQ Status Register Read
      3. 1.3 Direct Command Processing
      4. 1.4 Initialization of Derivative Registers
      5. 1.5 Transmitting One Byte Through the FIFO
      6. 1.6 Extra Dummy Bytes on RX
      7. 1.7 Timing Conditions for MOSI With Respect to S_CLK
  2.   Revision History

Direct Command Processing

Table 2 lists the direct commands supported by the TRF7960 and TRF7961.

Table 2. Command Codes

Command Code (hex) Command Comments
00 Idle
03 Software initialization Software initialization, same as power on reset
0F Reset FIFO
10 Transmission without CRC
11 Transmission wtih CRC
12 Delayed transmission without CRC EPC
13 Delayed transmission with CRC EPC
14 Transmit next time slot ISO15693, Tag-it™
16 Block receiver
17 Enable receiver
18 Test internal RF (RSSI at RX input with TX off)
19 Test internal RF (RSSI at RX input with TX on)

Table 3 lists the direct commands that need the software fix when using SPI with SS* mode. These are the direct commands that are executed stand-alone (direct commands with just one byte).

Table 3. Direct Commands

Direct Command Command Code Need Dummy Clock
Idle 0x03 Yes
Software initialization 0x00 Yes
Reset FIFO 0x0F Yes
Transmit next time slot 0x14 Yes
Block receiver 0x16 Yes
Enable receiver 0x17 Yes
Test internal RF 0x18 Yes
Test external RF 0x19 Yes
Transmit without CRC 0x10 No
Transmit with CRC 0x11 No
Delayed transmit without CRC 0x12 No
Delayed transmit with CRC 0x13 No

It is recommended to have this software fix written as part of a direct command function. An example of a direct command is the slot markers (EOF) for ISO 15693. This will not work in SPI mode.

This is solved by a software fix by implementing the direct command (for example transmit next slot” ) in one of two ways:

  1. Have an additional SCLK cycle (low/high) before SS* goes high.
  2. or

  3. Send a dummy TX write (8 SCLK cycles) before SS* goes high.

This is shown in the diagram below.

solution_loa140.gif

The pseudo code shown below in the DirectCommand function implements a SCLK low/high/low transition.

code2_loa140.gif