Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

How to connect TRF7970A EVM to Arduino Nano using SPI?

Other Parts Discussed in Thread: TRF7970A, RF430FRL152HEVM, MSP430F2370, RF430FRL152H

I have a TRF7970A EVM board and a Arduino Nano. I want to output the data from TRF7970A to Arduino Nano using SPI or other methods. Anyone knows how I should do? 

Thanks!

  • Hello Jing,

    If you are going to control the TRF7970A with the Arduino, you would need to remove the 0 ohm resistors from the center header (HDR_4, HDR_5, HDR_6, I think they are on 4/5 by default) and then get a header which can fit on HDR_4 to bring out the SPI pins. You will also need Data CLK from HDR_1 and IRQ from HDR_3. They aren't the standard .100 centerline, but 2mm. You will probably need to use clips on the EVM side.
  • Hi Ralph, thank you for your reply. I tried to remove the 0 ohm resistors, but after I removed the resistors between HDR_4 and HDR_5, TRF7970A doesn't work anymore. It cannot communicate with the PC. It cannot be used on the RF430FRL152HEVM GUI Interface. I don't know why. Do you have any idea?

    thanks!

    Jing
  • Hello Jing,

    This is to be expected... you asked how to connect the Arduino via SPI to the TRF7970A. To do this, you need to disconnect the MCU on the EVM first which is the MSP430F2370, and that is what runs the firmware for the GUI interface.

    There was no mention of your intention to use this with the RF430FRL152HEVM GUI.

    I am unclear how the Arduino comes into play now. Do you plan to port the MSP430F2370 firmware to the Arduino and run the NFC stack which handles all NFC communication on that device? If not, then you should not connect it to the TRF7970A and just let the MSP430F2370 run the firmware provided by TI.

    Perhaps you instead meant to say you wish to connect the Arduino Uno to the EVM as a whole to access information with it rather than over USB on your PC, then the answer would be to use something like UART to interface the Arduino Uno to the MSP430F2370.

  • Hi Ralph,

    Sorry about that I didn't tell you my intention clearly. Yes, I want to use the TRF7970A EVM communicate with RF430FRL152HEVM, and I also want to transfer the data from TRF7970A EVM to Arduino. So you mean that I can disconnect the MCU on the EVM and connect the TRF7970A chip to Arduino? And also I can connect the TRF7970A EVM to Arduino directly? Is this your meaning? 

    Jing

  • Hello Jing,

    If you want to transfer data from the TRF7970AEVM to your Arduino, then I would recommend just connect to the MSP430F2370 over UART or some other serial protocol, and pass data from the MSP430F2370 to your Arduino that way. You probably will have to develop some host command setup to control the MSP430F2370, but that would be far simpler than typing the TRF7970A chip directly to the Arduino.

    You do have the option to disconnect the MCU on the EVM, but I would not recommend that as you would then have to run NFC Stack on Arduino and control TRF7970A directly with Arduino. That would require porting of TI software to the Arduino which likely would take longer to do.
  • Hi Ralph,

    Thanks for your advises! If I want to transfer data from the TRF7970AEVM to Arduino, how should I connect the MSP430F2370 with Arduino?
    And if so, what do the data stand for ? Such as if I use the RF430FRL152HEVM, what do the data from MSP430F2370 to Arduino stand for? Temperature or voltage?
    Actually, what I want to do is to replace the temperature sensor on RF430FRL152HEVM using our own sensor. And our sensor is different with the sensor on the RF430FRL152HEVM , so the temperature-voltage function would be changed. Therefore, we should reprogram the code in the MSP430F2370. So it's better for us to get the voltage data of the sensor because it's easy for us to deal with it. Do you have any suggestions?

    Thanks!

    Jing
  • Actually the RF430FRL152H responds with the ADC result that is unmodified.  So the voltage value of the sample can be computed by the reader.  The equation to do this can be found in the RF430FRL15xH Firmware Users Guide: http://www.ti.com/lit/pdf/slau603 ( Section 2.8.2 Thermistor Resistance Calculation) .

    The MSP430F2370 does not have any RF430FRL152H specific code.  It simply can read out a certain portion of memory on the RF430FRL152H and output it unto the USB bus to the PC.  The RF430FRL152HEVM PC program actually performs the conversion.  In your case, with a new sensor, you would have to modify the calculation.

    There is documentation ( http://www.ti.com/lit/an/sloa233/sloa233.pdf

  • Alex, thank you for your help! So we can get the voltage data applied on the sensor from the USB bus to the PC. Then how can I transfer the data from USB to Arduino? Or can we get the data from Pin 22 and 23 of MSP430F2370, you know it's the SPI port? Is there any methods to transfer the data to Arduino?

    Thanks

    Jing
  • The TRF7970AEVM communicates to the PC via a serial interface. I don't know much on the Arduino but it is also able to connect to the PC. It may be possible to make a bridge application on the PC to stream data from the TRF7970AEVM to the Arduino. This is not an ideal system design as this has redundant parts. Really all you should need is an MCU + TRF7970A and maybe a PC. But a bridge PC application may be quicker to put together than porting the NFC stack to the Arduino.

    However an even simpler method would be as you suggested to connect pins 22 and 23 to a UART interface on the Arduino. You should cut the UART traces going to the USB transciever on the TRF7970AEVM.

    The protocol on the UART bus is explained here:
    www.ti.com/.../sloa141.pdf
    If there are still somethings that are not clear, then test the commands on the TRF7970A PC program and check out the communication log window.
  • Hi Alex,

    Thank you.

    If I use the pins 22 and 23 to a UART interface on the Arduino, do I have to cut the UART traces going to the USB transceiver on the TRF7970AEVM? If so, how to power on the TRF7970AEVM? Did you mean I only need to cut the two lines?

    Or can I also use the ports P5_6 and P5_7 of HDR_5, they are also the SPI pins. However, it seems it won't work if I remove the 0 ohm resistors between HDR_4 and HDR_5.

    What do you think?

    Jing

  • To power the TRF7970AEVM you obviously would still have to connect it to USB, however there would be no communication through it.

    So with the the last option that I proposed, you could connect the MSP430F2370 UART to the Arduino UART (and disconnect only the UART lines to the USB transciever). Then on the Arduino you would need to send commands over the serial connection to the MSP430F2370 to communicate with the TRF7970A like turning it on, sending out commands and receiving responses. This process can be seen on the TRF7970AEVM PC program command console.

    You would not need to do anything with SPI. If SPI is used on your EVM to communicate with the TRF7970A then this can be left as is. By default parallel bus is used. In either case, you would not need to do anything with HDR_4/5/6.
  • Hi Alex,
    Thank you for your reply!
    So you mean that the PC program is controlling the communication between the MSP430F2370 and TRF7970A, and that there is no codes inside the MSP430F2370 to control TRF7970A (we cannot program MSP430F2370)? And I have to use Arduino to control MSP430F2370 if the UART lines are disconnected with the USB transciever?
    Do you know how to control MSP430F2370 using Arduino? Or where can I find the codes of the PC program? It might help for me to control MSP430F2370 using Arduino.

    Thanks
  • The MSP430F2370 should contain the original program that it was shipped with. The Arduino can control that program through the UART interface.
    To control the MSP430F230 please refer to the ISO 15693 Host Commands document that I linked in a previous email. If you would like to implement this system the host interface would have to be developed on the Arduino.
    Please check the software section in this link ( www.ti.com/.../toolssoftware ) for a TRF7970AEVM GUI where you could test sending and receiving ISO15693 commands using the host interface. Then reproduce those commands on your host controller.
  • Thanks. It's still too complex for me. I am trying to use software to read the data.

    Thanks so much for your help!