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: NFC/RF-ID support code for DLP-7970ABP(TRF7970A) integrated with TM4C1294

Part Number: TRF7970A
Other Parts Discussed in Thread: TM4C1294NCPDT,

Tool/software:

I'm working on porting the RF-ID TRF7970A module integrated with the tm4c1294ncpdt controller. I have already raised the question for the support code, but they told me to port the MSP code for the TM4C. I trying to port the code for the tm4c controller to read/write the trf7970a. here I'm facing the issue regarding the tag detection. I have sent the command from scratch as per the data sheet and other references.
soft init: 0x03
idle: 0x00
write: 0x01 in 0x09 reg
write: 0x21 in 0x00 reg
write: 0x88 in 0x01 reg
After the delay I'm sending the commands: 8f,90,3d,00,0f,,26 and 60 micro sec delay Im sending 6c, for this I'm getting 80,3e response 
after sending 8f, and 6c I'm getting the 40 and 3e responses from the RSSI and IRQ reg and after sending the 5c and 7f, I couldn't receive any response from the FIFO status reg for read-out bytes and atqa. 
What was the problem, Is there any configuration I missed? Can anyone please help me with this problem, and what can I send or write for the proper responses to read the iso14443a NFC t2t tag?


  • Hi,

    soft init: 0x03
    idle: 0x00
    write: 0x01 in 0x09 reg
    write: 0x21 in 0x00 reg
    write: 0x88 in 0x01 reg

    Can you read back from registers at 0x9, 0x0 and 0x1? What do you read?

    After the delay I'm sending the commands: 8f,90,3d,00,0f,,26

    What are you trying to do with 8f,90,3d,00,0f,,26? As far as I can see, you are doing the below.

    8f = sending a command to reset the FIFO

    90 = sending a command to transmit without CRC

    3d = Write to address starting at 0x1D in continuous mode

    00,0f = Sending the 0 number of bytes to be transmitted out of FIFO. See below register description for 0x1D and 0x1E. By writing 00,0f to these two registers, you are setting Broken byte. I'm not sure why you are using broken bytes. 

    26 = Writing to the FIFO (memory mapped to 0x1F) with a value equal to 0x26. What is this value for? What ISO command are you trying to send to the tags? See below example for sending a REQB command? Are you trying to write 0x26 to the APf field? 

    I will suggest you use the EVM to communicate your ISO-1443A tags and probe the SPI interface signals between the host MCU (MSP430) and the TRF7970A transceiver. You can use the GUI to interact with the host MCU. I think you may have already played with it before. 

    You can then see what commands are sent by the host MCU to the transceiver and how it transmits and receives data to the tags. Next you can compare with how you do the same using TM4C129. 

  • Hi Charles,
    I have read the registers 0x09, 0x00, and  0x01 is show only the value that I have written. 

    I have referred this from the datasheet to send those values 8f,90,3d,00, etc., What direct command do we need to send and what are all the registers we need to write for the tag detections?  Can you share any related documents if possible? Can I get the send REQB command document for reference? I'm using the iso14443a support tag. That GUI only supports the MSP430 not TM4C1294NCPDT, If I connect the TM4C it asks to update the supported firmware.

  • I have read the registers 0x09, 0x00, and  0x01 is show only the value that I have written. 

    I don't understand what you mean. Are you saying you are reading correctly the values you have written?

    The Figure-22 you are showing is for sending a Inventory command to a ISO 15693 transponder. I thought you are using  ISO-1443A? 

    I don't have experience with ISO14443A in particular. This is why I asked you to use the GUI with the EVM based on MSP430. Play with sending/receiving data using the EVM and GUI to your ISO1443A tags and at the same time probe the SPI interface signals. This GUI demo is based on the NFCLink Standalone Getting Started Guide. This way you have a reference to compare to when you run your code on a TM4C129. 

     Here is another app note with software collateral that talks about ISO-14443A formats. NFC/HF RFID reader/writer using the TRF7970A (Rev. B)

    Below is another app note that talks about using ISO14443A with authentication. 

    MIFARE DESFire EV1 AES Authentication With TRF7970A

  • I don't understand what you mean. Are you saying you are reading correctly the values you have written? -- Yes
    I'm using the ISO14443A but the commands I sent to the trf through mcu were from the reference of the ti forum links.
    I got the ppt for iso14443a tag detection and activation from the link. ppt:0841.NFC Forum Type 2 Tag Platform Operations with TRF7970A_02_18_2014.pdf

    In the ppt also they are sending the commands 8f,90,3d,00,0f, and 26 for iso14443a that's why I sent those commands.

    Are there any other references, documents, or proper ways to activate and read the ISO14443A?  Can you please share the document you attached for the REQA command guidelines previously?

  • I'm using the ISO14443A but the commands I sent to the trf through mcu were from the reference of the ti forum links.
    I got the ppt for iso14443a tag detection and activation from the link. ppt:0841.NFC Forum Type 2 Tag Platform Operations with TRF7970A_02_18_2014.pdf

    Hi,

      Thank you for sharing. I didn't know the existence of this presentation myself. I will go through it to learn too as I mentioned I have not much knowledge about ISO-14443A protocol.

    In the ppt also they are sending the commands 8f,90,3d,00,0f, and 26 for iso14443a that's why I sent those commands.

    Ok. I see. 

    Are there any other references, documents, or proper ways to activate and read the ISO14443A?  Can you please share the document you attached for the REQA command guidelines previously?

    It is this one that talks about REQB for ISO-14443B. Implementation of ISO14443B Protocol in the TI TRF796x

  • Thank you for sharing. I didn't know the existence of this presentation myself. I will go through it to learn too as I mentioned I have not much knowledge about ISO-14443A protocol --> Welcome. Is the process followed by the ppt is worked or not for iso14443a
    Do you have any documents or reference documents for ISO14443A support? What do I do for the next step to read the tag?

  • After the delay I'm sending the commands: 8f,90,3d,00,0f,,26

    Comparing your sequence with the ppt, you are doing what is described. 

    and 60 micro sec delay Im sending 6c, for this I'm getting 80,3e response 
    after sending 8f, and 6c

    You seem to be getting the same response 80,3e as shown on the ppt. So far so good, I guess.

    and 6c I'm getting the 40 and 3e responses from the RSSI and IRQ reg

    I think 40 is for IRQ status register. May I ask why 3e is for RSSI register? I thought RSSI register is at address 0x0F. I'm a bit confused with myself here. 

    and after sending the 5c and 7f, I couldn't receive any response from the FIFO status reg for read-out bytes and atqa.

    If you send 5c, it is to read the FIFO status register. What does it return? It is supposed to return the number of bytes. You should read the status before issuing 7F which is to read from the FIFO register. In the below example after 5C is sent, the transceiver returns 0x2 which is the number of bytes to read out from the FIFO.

    Why don't you show your SPI captures between the host MCU and the transceiver?

    Is the process followed by the ppt is worked or not for iso14443a
    Do you have any documents or reference documents for ISO14443A support?

    I think the ppt presentation is a very good document for reference, I also learn from it. 

    Why don't you look at the NFC Standalone stack and search for 14443a in the source code to see how it is done to transmit and receive data to the NFC-type2 tags? 

    Can you also try multiple tags? Are you getting the same result or problem with just one tag. 

    As I mentioned this app note MIFARE DESFire EV1 AES Authentication With TRF7970A has additional sample code for interfacing with 14443A tags. Although the app note focus on authentication, I think the non authentication code should be common to accessing 14443A tags. 

  • Hi Charles,

    Are you have the set of commands to send and registers settings to read any RFID tag? Any idea about this and what are all the delay we need to handle properly.

    And how to check the antenna is working properly and how the irq works in the trf7970a.

  • Hi,

      Have you had a chance to go over the app note NFC/HF RFID reader/writer using the TRF7970A (Rev. B)? The app note has the software collateral http://www.ti.com/lit/zip/sloa227 that communicates with various types of tags including Type-2 ISO14443A. 

  • Hi Charles,

    We have completed the code for trf7970a with tm4c1294ncpdt. The tag is properly detected and read.

    Thank you 

  • Hi Govindharajen,

      Glad that your issue is resolved. Do you mind sharing what did you do to make it work?

  • Hi Charles,

    We have properly cleared the FIFO and IRQ registers and we need to make sure in the hardware also mostly in rc circuits.

  • Hi Govindharajen,

      You are saying that your code for accessing the ISO-14443A tags was mostly correct by following the ppt:0841.NFC Forum Type 2 Tag Platform Operations with TRF7970A_02_18_2014.pdf. The only thing extra to add was to clear the FIFO and IRQ registers. Is that a correct understanding? 

      Also what was wrong with your earlier RC circuit? I didn't check your schematic before. 

  • Yes Charles, we can refer that pdf file and as well as the MSP430 code for data transferring and we need to the exact hardware changes as per the trf datasheet.