I have the TRF7970A EVM, and I manage it directly using our own MCU.
The communication between both devices is over SPI.
Further I have a Sumsung Nexus with an NFC initiator application, to test the functionality.
The functionality that we are looking for is: NFC peer-to-peer passive communication (Samsung as Initiator) & (TRF7970A EVM as passive target).
The problems that we have are:
Then, after applying this settings, I approximate the Samsung to the TRF7970A EVM antenna; then de IRQ sets and the MCU reads the register <0x0C- >. The value in that register is 0x04.
Following I read the register <0x19 – NFC Target Protocol Register>, and the value in that register is 0x80.
After that I waiting to receive a new IRQ with the <IRQ_Register -0x04>, with the value 0x40 (to know the technology used for the initiator)! But instead I receive new IRQ and when I read the IRQ_Register the value was again 0x04, and the value in the register <0x19 – NFC Target Protocol Register> was 0x00!!!
Then the problem was that the we never read a value different from 0x80 or 0x00 in the <0x19 – NFC Target Protocol Register> was 0x00! En then we haven’t got the possibility to start the communication.
I don’t know if we have anything wrong in the register configuration?
Does anybody with more experience on that can help me?
Thanks in advance!
Lluis Olivet Cos
To know how our MCU initialize the TRF7970A EVM , an to know the values configured in all the register, I provide more information in the document attached to the following link: www.otcengineering.com/nfc/TRF7970AEVM_STARTUP.pdf
Hi to all,
You can see this Registry Bug Report
TRF7970A Registry problem
I. Problem description
Because of the needs of custom changes in some registers of the TRF7970A in order to be used with external power amplifier and detection circuit the following problem was found.
1. In the TI datasheet for TRF7970A is explicitly written:
6.1 Register Preset
After power-up and the EN pin low-to-high transition, the reader is in the default mode. The default configuration is ISO15693, single subcarrier, high data rate, 1-out-of-4 operation. The low-level option registers (0x02 to 0x0B) are automatically set to adapt the circuitry optimally to the appropriate protocol parameters. When entering another protocol (by writing to the ISO Control register 0x01), the low-level option registers (0x02 to 0x0B) are automatically configured to the new protocol parameters. After selecting the protocol, it is possible to change some low-level register contents if needed. However, changing to another protocol and then back, reloads the default settings, and so then the custom settings must be reloaded.
The Clo0 and Clo1 register (0x09) bits, which define the microcontroller frequency available on the SYS_CLK pin, are the only two bits in the configuration registers that are not cleared during protocol selection.
2. In the TI bug datasheet for TRF7970A “ sloa159” is written:
7.8 SPI With SS Pin Only – Some Registers Do Not Take Default Values
Some of the registers do not take the default values when the appropriate protocol is chosen in the ISO Control Register.
Manually program the default settings into the TRF796x during initialization.
3.In the TI sample program trf797x.c founded in SLOC250 lines for “Manually program the default settings into the TRF796x during initialization” are commented!!!
4.We found exact information in the datasheets for only two of the registers that are not affected from writing to the ISO register.
To be sure what really happens with the registers a small program was written, which sends to the PC HyperTerminal program trough the RS232 over USB chip FT232 registry contents.
In the following table1 are given the results. The time sequence is from the left to right.
Values after PWRON or EN (hex)
Values after filling the registry with 0x00
Values after loading ISOCONTROLL
Values after filling the registry with 0xff
In table 2. are the results from the current program flow. Trf7970aINIT is our ini program for entering some custom values in the registry. The time sequence is from the left to right.
Values after PWRON or EN (hex
It is seen that even after PWRON some of the important registers don’t take default values described in TI latest datasheet.
Readed from real
From the results is clear that only couple of the registers are particularly affected from the ISOCONTROLL register loading.
It will be necessary after setting the ISOCONTROLL register in the code, also set every particular register with the appropriate settings without believing on the PWRON settings also!!!
12. October 2012. Danko Ivanov
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.