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.

TRF7970 Emulate Type 4 NFC Tag???

Other Parts Discussed in Thread: RF430CL330H, TRF7970A

I have 2 TRF7970's. One acting as an NFC writer, and the second emulating a type 4 tag. Right now I have the writer successfully writing a message to a type 4 tag (RF430CL330H), but I need to have the second TRF7970 act exactly like that tag. The TRF7970 that's emulating a type 4 tag is receiving the first REQB/SENSB_RES command, but when I send the response, the writer does not receive it. My question is, how do I send a response to the writer? Do I write the response to the FIFO?

  • Hello,

    You are correct in that you need to write your response to the REQB into the FIFO of the TRF7970. You will need to include the ATQB packet data and enable sending the CRC for the transmission.

    For Card Emulation, I recommend that you look over the following TI design: www.ti.com/.../TIDM-NFC-CE

    There is a Users Guide as well as example code which you can look at in order to see how we use the TRF7970A in Card Emulation mode. I think that can help serve as a solid starting point for your application. For example, if you take a look at the nfc_b.c file contained in our software, you can see all the details about how we handle replying to a REQB under the NFC_B_send_SENSB_RES function.

  • Thanks for the response! I read through the Application Note, and it looks like I'm doing everything right. When I send the SENSB_RES, I do all the steps that are specified. I have my main writer printing out the bytes it receives back from the emulator, and I see the response after sending the message 3 times. Are there any other messages that need to be sent before the SENSB_RES?
  • No there isn't another message you need to send before the REQB, you just need to ensure the TRF7970 is probably setup for Card Emulation B in the register settings beforehand.

    Based on your description, there could be issues with the RF communication. Can you describe the hardware setup you have? Also how are you presenting the Tag Emulated TRF7970 - is it statically staying in place or are you removing it and placing it in the Reader's RF field each time?

    Also if you have access to a Logic State Analyzer (LSA) - screenshots of the SPI lines and IRQ pin could help as well in case there are any timing issues.

  • I'll work on finding a logic analyzer to get that info. Do you happen to have a screenshot or excel sheet with the bytes of the commands and responses from a working type 4 emulator? Another TI employee sent me one of those when I was first starting out with the writer, and that really helped. Thanks again!
  • dev -

    attached here is a zip file with Saleae logic captures - you can download the software and use it prior to getting an LSA.

    i used the Beta version 1.2.2 ()

    this was done with the CE example firmware loaded on -F5529LP + TRF7970A BoosterPack that you can get here:

    (if you have not already).

    this is hardware that is listed on our eStore as:

    anyway - in there is config of Type 4A and Type 4B individually and then reading each of them out with handset

    hope that helps!

    _5529LP_in_CE_logic_captures.zip

  • I have one more question....the emulator is now sending the right messages, and the writer is receiving the messages correctly, but whenever the writer gets a message from the emulator, the IRQ line is never triggered. When I do the exact same thing with the RF430CL330H, the IRQ line goes high after every message. In addition to sending the message to the FIFO, is there anything else I need to do to complete the transaction of a message? Like write something to a specific register?
  • Hi dev,

    There shouldn't be any other steps beyond sending the data to the FIFO. Are there any difference between your code and the example firmware/LSA shots provided? We have done extensive testing with the TRF7970A with that firmware and haven't run across such an issue.

    Have you been able to verify that you are receiving the entire packet correctly, but without an IRQ line triggering? How are you reading those packets without having an IRQ Interrupt?

    Can you share the register settings you are using? Such as the initial TRF7970A configuration seen in the config Saleae log files, and any other settings that are modified after the initial setup.

    Also can you describe which hardware you are using on the tag and reader side besides the TRF7970A? Are you using one of our BoosterPack+LaunchPad combinations, or a different MCU platform?