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: Card emulation not working with Google Pixel phones

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

Hello Folks!

We are trying to use the TI TRF7970A in card-emulation mode to communicate with Android and iOS phones via NFC. When using card-emulation mode it appears that Google Pixel 6a and 4a fail to connect.

We are using the LaunchPad board (MSP-EXP430F5529LP) with the TRF7970A booster pack and the provided NFC-Link example code. Using the GUI we disable reader/writer mode and then enable card-emulation mode.

Only on rare occasions the Pixel 4a can connect and exchange an NDEF message. I've never seen Pixel 6 work at all. Samsung Galaxy phones seem to work OK, as well as a few other brands we've tried.

I have added debug code into the NFC-Link lower layers and find that the Pixel seems to fail during NFC_PARAMETER_SELECTION with IRQ_STATUS_PROTOCOL_ERROR.

Any help would be much appreciated, thanks!

  • Hello Customer, thank you for your question and interest in our products.

    The forum support of this product has been reduced to first reference our existing documentation and collateral. TI does not have plans to stop production or place the device into a “Not Recommended for New Design” status, we genuinely feel most questions on these devices can be answered by reviewing existing collateral and previous questions asked. Please feel free to continue to use this device as you see fit for your applications. For support, please take a look to the “Similar Topics” section at the lower right of the thread page. In addition, please consult the existing collateral in the “Technical Documentation” section of the TRF7970A product web page along with the Frequently Asked Question document. Alternatively, you can use the search engine of your choice to look for related E2E threads. With each of these resources we believe it will help with your question.

  • Hi,
    I have tried the card emulation function, can give you some advice.You may need to study the program of mobile phone App to read NFC.

    NDEF raw data in ram = 2 bytes file length + other data.

    Read phase
    1. read cc file.
    2. read ndef size.
    3. read ndef data.
    Regarding the reading process, you can also follow the program reference of 7970A. See what happen between those three process.

    Write phase
    1. read cc file.
    2. set ndef file size to zero. e.g. set 0x0, 0xA to 0x0, 0x0
    3. write ndef data.
    4. update new ndef file size. e.g. set 0x0, 0x0 to 0x0, 0xA

    Steps 2 to 4, for different apps, the implementation method is different, of course, they all need to get a response of 7970 ACK.
    e.g.
    App 1: Execute steps 2, 3, 4 at a time and wait for the response to be correct.
    App 2: Execute steps 2, 3, and 4 in sequence. However, an error occurs in one of the steps, or the expected correct response is not received.

    In App 2, you will find that the length of the simulation data (the first 2 bytes) has been cleared to 0. But the rest of the data are the same. At this time, you need to print out the card simulation buffer for confirmation. For the steps performed by different apps, modify the response in 7970, and it should be able to meet your requirements.

  • The problem is with Google Pixel phones. Other brands of phone work correctly with the NFC-Link launchpad. Apple phones work correctly also.