SLOS787J May 2012 – March 2020 TRF7964A
PRODUCTION DATA.
The output of the TRF7964A analog receiver block is a digitized subcarrier signal and is the input to the digital receiver block, which consists of two sections that partly overlap. The digitized subcarrier signal is a digital representation of the modulation signal on the RF envelope. The two sections of the digital receiver block are the protocol bit decoder section and the framing logic section.
The protocol bit decoder section converts the subcarrier coded signal into a serial bit stream and a data clock. The decoder logic is designed for maximum error tolerance. This tolerance lets the decoder section successfully decode even partly corrupted subcarrier signals that would otherwise be lost due to noise or interference.
The framing logic section formats the serial bit stream data from the protocol bit decoder stage into data bytes. During the formatting process, special signals such as the start of frame (SOF), end of frame (EOF), start of communication, and end of communication are automatically removed. The parity bits and CRC bytes are also checked and removed. The end result is "clean or raw" data that is sent to the 127-byte FIFO register where it can be read by the external microcontroller system. Providing the data this way, in conjunction with the timing register settings of the TRF7964A, means that the firmware developer does not need to know the finer details of the ISO protocols to create a very robust application, especially in low-cost platforms in which code space is at a premium and high performance is still required.
The start of the receive operation (successfully received SOF) sets the IRQ flags in the IRQ Status register (0x0C). The end of the receive operation is signaled to the external system MCU by setting pin 13 (IRQ) to high. When data is received in the FIFO, an interrupt is sent to the MCU to signal that there is data to be read from the FIFO. The FIFO Status register (0x1C) should be used to provide the number of bytes that should be clocked out during the actual FIFO read. Additionally, an interrupt is sent to the MCU when the received data occupies 75% of the FIFO capacity to signal that the data should be removed from the FIFO. By default, that interrupt is triggered once the received data packet is longer than 124 bytes. This setting can be modified in the Adjustable FIFO IRQ Levels register (0x14).
Any error in the data format, parity, or CRC is detected and notified to the external system by setting pin 13 (IRQ) to high. The source condition of the interrupt is available in the IRQ Status register (0x0C). Section 6.14.3.3.1 describes the bit coding description of this register.
The framing section also supports bit-collision detection as specified in ISO/IEC 14443 A and ISO/IEC 15693. When a bit collision is detected, an interrupt request is sent and a flag is set in the IRQ Status register (0x0C). For ISO/IEC 14443 A specifically, the position of the bit collision is written in two registers: partly in the Collision Position register (0x0E) and partly in the Collision Position and Interrupt Mask register (0x0D) (bits B6 and B7).
This collision position is presented as sequential bit number, where the count starts immediately after the start bit. This means a collision in the first bit of a UID would give the value 00 0001 0000 in these registers when their contents are combined after being read (the count starts with 0 and the first 16 bits are the command code and the number of valid bits [NVB] byte).
The receive section also contains two timers.
The RX wait time timer is controlled by the value in the RX Wait Time register (0x08). This timer defines the time interval after the end of the transmit operation during which the receive decoders are not active (held in reset state). This prevents false detections resulting from transients following the transmit operation. The value of the RX Wait Time register (0x08) defines the time in increments of 9.44 µs. This register is preset at every write to the ISO Control register (0x01) according to the minimum tag response time defined by each standard.
The RX no response timer is controlled by the RX No Response Wait Time register (0x07). This timer measures the time from the start of the slot in the anticollision sequence until the start of tag response. If there is no tag response in the defined time, an interrupt request is sent and a flag is set in the IRQ Status register (0x0C). This enables the external controller to be relieved of the task of detecting empty slots. The wait time is stored in the register in increments of 37.76 µs. This register is also preset automatically for every new protocol selection.
The main register controlling the digital part of the receiver is the ISO Control register (0x01). By writing to this register, the user selects the protocol to be used. With each new write in this register, all related registers are preset to their defaults for the protocol, so no further adjustments in other registers are needed for proper operation. Table 6-6 describes the bit fields of the ISO Control register (0x01).
NOTE
If changes to other registers are needed to fine-tune the system, those changes must be made after setting the ISO Control register (0x01).
BIT | SIGNAL NAME | FUNCTION | COMMENTS |
---|---|---|---|
B7 | rx_crc_n | Receiving without CRC |
1 = No RX CRC 0 = RX CRC |
B6 | dir_mode | Direct mode type |
0 = Output is subcarrier data 1 = Output is bit stream and clock from decoder selected by ISO bits |
B5 | rfid | RFID mode |
0 = RFID reader mode 1 = Reserved (should be set to 0) |
B4 | iso_4 | RFID |
See Table 6-7 for B0:B4 settings based on ISO protocol used by application. |
B3 | iso_3 | RFID |
See Table 6-7 for B0:B4 settings based on ISO protocol used by application. |
B2 | iso_2 | RFID |
See Table 6-7 for B0:B4 settings based on ISO protocol used by application. |
B1 | iso_1 | RFID |
See Table 6-7 for B0:B4 settings based on ISO protocol used by application. |
B0 | iso_0 | RFID |
See Table 6-7 for B0:B4 settings based on ISO protocol used by application. |
Iso_4 | Iso_3 | Iso_2 | Iso_1 | Iso_0 | PROTOCOL | REMARKS |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | ISO/IEC 15693 low bit rate, one subcarrier, 1 out of 4 | |
0 | 0 | 0 | 0 | 1 | ISO/IEC 15693 low bit rate, one subcarrier, 1 out of 256 | |
0 | 0 | 0 | 1 | 0 | ISO/IEC 15693 high bit rate, one subcarrier, 1 out of 4 | Default for RFID IC |
0 | 0 | 0 | 1 | 1 | ISO/IEC 15693 high bit rate, one subcarrier, 1 out of 256 | |
0 | 0 | 1 | 0 | 0 | ISO/IEC 15693 low bit rate, double subcarrier, 1 out of 4 | |
0 | 0 | 1 | 0 | 1 | ISO/IEC 15693 low bit rate, double subcarrier, 1 out of 256 | |
0 | 0 | 1 | 1 | 0 | ISO/IEC 15693 high bit rate, double subcarrier, 1 out of 4 | |
0 | 0 | 1 | 1 | 1 | ISO/IEC 15693 high bit rate, double subcarrier, 1 out of 256 | |
0 | 1 | 0 | 0 | 0 | ISO/IEC 14443 A, bit rate 106 kbps | |
0 | 1 | 0 | 0 | 1 | ISO/IEC 14443 A high bit rate 212 kbps | RX bit rate when TX rate different from RX rate (see register 0x03) |
0 | 1 | 0 | 1 | 0 | ISO/IEC 14443 A high bit rate 424 kbps | |
0 | 1 | 0 | 1 | 1 | ISO/IEC 14443 A high bit rate 848 kbps | |
0 | 1 | 1 | 0 | 0 | ISO/IEC 14443 B, bit rate 106 kbps | |
0 | 1 | 1 | 0 | 1 | ISO/IEC 14443 B high bit rate 212 kbps | RX bit rate when TX rate different from RX rate (see register 0x03) |
0 | 1 | 1 | 1 | 0 | ISO/IEC 14443 B high bit rate 424 kbps | |
0 | 1 | 1 | 1 | 1 | ISO/IEC 14443 B high bit rate 848 kbps | |
1 | 0 | 0 | 1 | 1 | Reserved | |
1 | 0 | 1 | 0 | 0 | Reserved | |
1 | 1 | 0 | 1 | 0 | FeliCa 212 kbps | |
1 | 1 | 0 | 1 | 1 | FeliCa 424 kbps |