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.

Is it need to set protocol again when Swicth the RF "on to off to on" in the TRF7960AEVM?

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

Is it need to set protocol again when Swicth the RF "on to off to on" in the TRF7960AEVM?

hello

    I have a problem with the TRF7960AEVM. When I turn off the RF and turn on the RF, I need to set protocol again.It wastes too much time that I complete a inventory need about 160ms.In my use, when I execute an inventory, I need do some steps as below: 1、turn on the RF 2、set protocol(like ISO15693) 3、do a inventory 4、turn off the RF I must turn off the RF because the RF will affect another test system every time.It waste too much time that I want it about 50ms.

    I want know whether have some method that I only SET the protocol only one time, and I could turn on/off the RF optionally by myself.

thanks

  • Hello,

    The TRF7960AEVM and it's GUI isn't really designed for use cases where you need to rapidly send a series of commands like what you describe.

    You could make a number of changes to the TRF7960AEVM source code in order to support that use case, but I'd rather suggest that you utilize a different evaluation method which would achieve this with very limited modifications.

    For example, you could use the boosterpack for the TRF7970A and an MSP430 along with TI example code to do this. If you want basic ISO15693 functionality, I would recommend the DLP-7970ABP and MSP-EXP430G2 LaunchPad. The TRF7970A is what we have all the latest source code and demos for, and is recommended for evaluation. You can then switch to the TRF7960A or one of it's protocol specific subset devices afterwards.

    Please see this E2E post for details about the firmware example available that leverages the MSP-EXP430G2 and DLP-7970ABP: e2e.ti.com/.../493678

  • hello Ralph
    I just know that the existing communication protocol in the TRF7960AEVM defalut may do not fit our Requirements. So I want to modify the TRF7960A C Code Samples by CCS. But I do not know how to do?
    ****************************************************************************
    void
    Iso15693FindTag(void)
    {
    Trf797xTurnRfOn();

    Trf797xWriteIsoControl(0x02);

    // The VCD should wait at least 1 ms after it activated the
    // powering field before sending the first request, to
    // ensure that the VICCs are ready to receive it. (ISO15693-3)
    McuDelayMillisecond(6);

    flags = SIXTEEN_SLOTS;
    // flags = ONE_SLOT;

    buf[20] = 0x00;
    Iso15693Anticollision(&buf[20], 0x00); // send Inventory request

    Trf797xTurnRfOff();

    Trf797xResetIrqStatus();
    // clear any IRQs
    }
    *****************************************************************************
    #ifdef ENABLE15693
    case 0x14: // ISO 15693 Anticollision
    phello = "ISO 15693 Inventory request.\r\n";
    UartSendCString(phello);
    Iso15693FindTag();--------------------------------new addition
    /*
    flags = buf[5];
    if(flags & 0x10)
    {
    afi = buf[7];
    }
    else
    {
    afi = 0;
    }
    for(count = 0; count < 8; count++)
    {
    buf[count + 20] = 0x00; // clear mask
    }
    Iso15693Anticollision(&buf[20], 0x00);
    */
    break;
    #endif
    ****************************************************************************************
    I only use "Iso15693FindTag()" to take the place of code above. It can realize our goal. It may waste 160ms to excute one inventory.
    But it is too long for us.So some method of change the code to cost down the time. I will see E2E post for details about the firmware example available that leverages the MSP-EXP430G2 and DLP-7970ABP: e2e.ti.com/.../493678.
    thanks.
  • I think a lot of the bottleneck you are seeing time wise is using the UART to send messages back. You can try and minimize those messages and see if that helps?
  • Hello Ralph

    I don't completely know what you say.May be I only want to know how to modify the register to achive our requirement.

    we turn on or off the RF power by handle the register chip status control (0X00).Is it necessary that when I swicth the RF power off to on, I must set the protocol again?

    *****************************************************************************************************************************

  • Hello,

    I think you are not focusing on the source of the issue you are observing.

    The TRF7960AEVM demo with the GUI interface will not allow you to meet a very narrow time requirement of 50ms based on how it is structured. The UART interface is a bottleneck timing wise. To send commands like "Set protocol" which is a GUI specific operation, not part specific, and then receive responses from the device alone will exceed the 50ms.

    The GUI was never designed to be quick.

    This will apply for pretty much any GUI command. If you want to get to less than 50ms turnaround on the command, you need to abandon GUI.

    The Iso15693FindTag(); call will do what you want in the 50ms period if you strip out any UART API's called within the flow of this function and just run it without GUI control.

    If you look at the inner workings of the Iso15693FindTag function, it handles the RF on, and writing ISO control already, so you don't need to worry about all the 'Set protocol' aspects of the GUI.

    Regarding if you need to set the ISO Control settings once again after turning RF on or off, that is not required as long as the TRF has not been Reset either with Software Init command or by hardware through EN line.
  • HI Ralph 

    In fact,I didn't use the GUI to control the demo.I only use its communication protocol like "010A0003041001210000" and developped a communication software by C#. 

    I modify the code. I only send  "010A0003041001210000" command and the demo can execute the "Iso15693FindTag()" function.

    Maybe you think I send several command by UART and receive data from demo and it cost too much time.But it isn't that.  I only send one command by UART.

    thanks.

  • Hello,

    That's good to hear as that does remove a lot of the overhead!! In the code you posted before, you had lines such as
    phello = "ISO 15693 Inventory request.\r\n";
    UartSendCString(phello);
    which had me concerned there was too much UART communication occurring. I assume those have been removed as well?

    One more thing I just noticed, try to use a Single Slot inventory and present only one tag as well. In the find tag function, toggle this comment line:
    flags = SIXTEEN_SLOTS;
    // flags = ONE_SLOT;
  • Hi Ralph
    I think I have the method of reducing the time.So I will test my guess by modify the code.
    thanks.