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.

Dynamic card emulation using the TRF7970A EVM

Other Parts Discussed in Thread: TRF7970A, DLP-7970ABP, MSP430FR5739, RF430CL330H

I am currently working on a research project which basically requires the following;

An NFC tag whose data can only be changed wired (usb). The data is to be read by a reader, in my case an Android phone (HTC One X). The tag should be connected to a PC, the data on the tag changes as the user interacts with a desktop application.  For instance, if a user click button 1, the tag should provide a link to the reader. If the user click button 2, the tag should provide some text to the reader.

To get the entire thing started, i want to do some basic card emulation using the TRF7970A EVM GUI application. I've tried following the user guide, but it seems the guide was set up for making one -70A communicate with another -70A, which is not what i was looking for.
Furthermore i've been searching these forums for similar posts. I've found some similar things, but the answers mostly include writing registers.. I, sadly, have no idea how to do this. For example, http://e2e.ti.com/support/low_power_rf/f/667/t/181530.aspx describes emulating an ISO14443B card. As i'm trying to accomplish a similar thing using the GUI application, i can not map all registers in the answer to the registers available in the GUI application.

So my question would be;
Is it possible to set up the TRF7970A EVM to emulate any kind of NFC card so it can be read using an NFC phone. And more important, can this be done using a desktop application (i'm thinking about either C# or Java to communicate with a serial port. I've got a test project working in C# to read an NFC tag using the TRF7970A EVM).

Assuming this can be done, can the data on the emulated card be changed, depending on user input?

Thanks in advance,
Arend

  • Arend, the GUI application is basically for allowing the minimum set of demostration functions, not for fully implementing card emulation using it.

    For implementing card emulation using the TRF7970A reader you have basically these options:

    • Use one TRF7970A EVM with it's own embedded MSP430 SoC and modify/rewrite the most suitable firmware from the ones provided by TI.
      (in my oppinion useless for implementing ISO-14443/TypeA, limited in resources but possible to implement ISO-14443-TypeB).
    • Use DLP-7970ABP booster pack, and connect it to one of TI's MCU LaunchPads including a higher performance MCU.
    • Take one TRF7970A-EVM module and modify it as described in some previous posts, connect it to your favourite MCU and develope the firmware with the tools you prefer.
      (we started this way and later continued with the next)
    • Develop you'r own board including the MCU/SoC of your choice and the TRF7970A. The schematics from the TRF7970A-EVB are a good starting point.

    In any of the previous options you'll need to develop the card emulation firmware and implement the commands you need for reading from the Air Interface and writing from the 'wired' interface.

    What is allowed from one interface or the other is always up to what you implement in the command interpreter(s).

    Besides writing one cards emulator, there're some other options around you could also investigate, there are some dual interface memories (RFID+I2C/SPI) and some proxy-like interface devices (RFID+SPI Memory interface for external memory).

    --Victor

  • If you only need card emulation mode, you should also take a look at the RF430CL330H dynamic type 4B tag.  This tag also has an I2C and SPI interface.  There is an evaluation board, RF430CL330HTB, which connects to our MSP430FR5739 experimenters board which does have a backchannel UART (UART to USB).  Our example code for this device does not utlize the USB interface, but this hardware platform could be used if you implement the firmware for your specific requirements.     

    There is also a boosterpack for the RF430CL330H that will be available in the next few days.  This comes from our third party, DLP Design.  If you are familiar with our launchpad ecosystem, this may be preferred. 

    http://www.dlpdesign.com/

  • Victor, Eddie,

    Thank you for your answers. In this stage of the project, i am trying to keep hardware design to a minimum (seeing i'm a software engineer). As a matter of fact, i don't even have any tools to program the chips (yet).

    I'll have a look at the recommended products and see what would work best for the project.

    Thanks,
    Arend.

  • Hi Arend,

    It's never too late to let your 'hidden hardware hacker capabilities' show up. ;). Give it a try, it's fun.

    You may start with the RF430CL330H Target Board, for that you'll need one 3V3 (3 point 3 volts) power supply, a couple of short wires and an SPI interface. you could check this FTDI-CHIP cables here: http://www.ftdichip.com/Products/Cables/USBMPSSE.htm, some of them even include the 3V3 regulator so you don't need any external 3V3 power supply.

    I've not used those cables before from C#, but perhaps someone has already created the p-invoke methods/classes for the libraries (the libraries are here: http://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm).

    Good luck!

    --Victor

  • Victor,

    Certainly seems like a good thing to take a better look at, and to give those hidden capabilities a boost :). And i'm pretty sure the libraries won't be much of a problem once everything is set up and ready to go.

    Thanks for your help, and i'm gonna check out all the products.

    Arend.