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.

Example code of NFC value reading for RF430FRL152H

Other Parts Discussed in Thread: RF430FRL152H, TRF7970A, RF430FRL152HEVM, MSP-FET

Hi,

I'm using the RF430FRL152H EVM now.

I'd like to read the correct NFC value (RF13MRXF?) whenever the NFC reader (like Smartphone) is tagging on RF430FRL152H EVM.

If there is any suitable example code, please share with me.

When I see it, there is no enough example code for RF430 series.

Please help me.

Thanks.

  • Hello,
    We do have a preliminary app which I can share the source code to. I will send you a PM with details.
  • Hi Eddie,

    I need below example code.

    (1) NFC ISO15639 Read/Write Android App and source code for RF430FRL15X series.
    (2) How to read the received value (RF13MRXF) of RF430FRL15X which is written by Android app.
    RF13MRXF value will be displayed through SPI I/F. Currently SPI I/F is working well.
    But I don't know how to handle the NFC related code.
    I'm not familiar with NFC.
    (3) I also have a TRF7970A EVM for NFC testing but it is not helpful for me. Openration is not good. UI program is unstable.

    Thanks.
  • Just for general E2E information here is how the questions were addressed.

    The RF430FRL152HEVM project that has an example sensor firmware and also a custom command that allows sending data in and out of the RF430.

    /cfs-file/__key/communityserver-discussions-components-files/667/RF430FRL152H_5F00_ISO15693_5F00_Only_5F00_Project-_2D00_-Example-SD14-_2D00_-RFID-Custom-Command.zip

    Here is an example project.  The custom command function:

     //firmware snipper from project, check RF430FRL152H Technical Reference Manual for how to use the RF13M or RFID module.

    void userCustomCommand()

    {

           u16_t test;

     

           //use RF13MRXF to receive two bytes

           //use RF13MRXF_L to receive one byte, continue reading this register until all data has been received (check the FIFO length register for how much data is in the FIFO

           //same for RF13MTXF, RF13MTXF_L, each write to this register add the data to the FIFO which is then later sent out

           //Device has 32 byte in FIFO and 32 byte out FIFO, this includes the CRC bytes

     

           test = RF13MRXF_L;  // pull one byte from the recieve FIFO

     

        if( RF13MFIFOFL_L == CRC_LENGTH_IN_BUFFER)         // if all bytes have been read out, the only thing left should be the CRC bytes, 2 of them

        {

           RF13MTXF_L = 0;      // no error, send out

     

           RF13MTXF_L = test;   // send out the received byte

        }

        else

        {

           RF13MTXF_L = 0x1;    // an error response

        }

    }

     

    When the custom command is issued this function checks if there is only one byte as the payload.  If there is then it sends back a 0x00 as the first character and echoes the received byte in the second character.  If more or less than one byte was received then it responds with 0x01 (as an error condition).

     

    Here is how the code was tested:

     

    Using a TRF7970AEVM and this GUI in test mode (use “Send” button):

     

    The string that was sent to the RF430FRL152H:

     

    1802AA0702

     

    18 – raw string command (TRF specific) (omit this byte if sending using a NFC handset or another reader)

    02 – ISO/IEC 15693 high data rate flags, handled by RF stack

    AA – custom command ID (can be between A0 to Dx), handled by RF stack

    07 – TI manufacturer ID, handled by RF stack

    02 – this is the payload byte, it is echoed, payload can be up to 26 bytes including this one, this byte is what the RF430 firmware receives

     

    Result:

    [0002]

    00 – no error

    02 – echoed from received byte

    Return payload can be up to 30 bytes plus 2 bytes for CRC total of 32 bytes.

     If anything other than one byte is sent the result will only be 0x01.

  • Hi Eddie

    I am working on a custom sensor application using the RF430FRL152HEVM and the TRF7970AEVM. I would like to read data from the I2C (stored in a buffer), from external sensors. This buffer must then be transmitted to a cellphone. Is it possible that I can get the prelim. app as well please for testing?

    Regards

    Michael 

  • Thanks Eddie! Very much appreciated!

  • Thank you Eddie! One question: Is it possible that the source code is not synchronized with the .apk file? I am asking this because the source code includes some bugs and doesn't look like the app-debug.apk when executed..

    Best Regards
    Remo
  • Hi Alex,

    I am testing this FW and use TRF7970A EVM to send the test command as you told.

    but I can not get the echo reponse from FR430FRL152HEVM and the result show like as below

    ==========================================================================

    []

    18:09:11.003 --> 010C0003041802AA07020000
    18:09:11.452 <-- Request mode.
    []

    ==========================================================================

    would you please help me to check what's wrong with my process?

    Frist I use your example project to program RF430 by CCS and run it in debug mode then put RF430FRL152HEVM close to TRF7970A EVM and open the GUI to send those command but I cann't get any response.

    thank you

    Jerrel

  • The RF430FRL152HEVM was not designed to communicate over RF and be in debug mode (that is using a MSP-FET tool).

    I would recommend that you determine if you get a response without connecting the debug tool.

  • Hi Alex,

    Actually I also have run it without debug mode (MSP-FET), and set the switch(S3~6) correctly on RF430 EVM but it also has no response.

    Actually I want to creat two ADC to sense sensors periodicitlly and put each ADC result to FRAM for RF to read, as I knew that ROM

    base function of RF430FRL251H also provide those application but I may need to add some additional infomation(like head, index..) around 6bytes in

    front of each ADC result as a frame and keep each ADC result frame in FRAM for RF reader to read. Do you think that can I use this example code to

    achieve this funciton? if not, do you have any comment for me? thank you very much!

    Jerrel

  • Yes, you can use the example project to put a header before the ADC result.  If it is placed in FRAM, you will be able to read it out over RF.  Of course you will have to develop the firmware to do this.

    Could you test if the RF430FRL152HEVM responds to standard ISO15693 commands like inventory or read single block?  This can be done using the "15693" tab.

    If you can perform inventory, then I would suggest to proceed to testing the custom command.  Going straight to the custom command without using "Set Protocol" button generally does not work.