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.

LAUNCHXL-CC1310: TX echo example

Part Number: LAUNCHXL-CC1310
Other Parts Discussed in Thread: CC1310

Hi Experts,

Good day.

Would you help to obtain an understanding of:

Q1: I'm studying the example "rfEchoTx_CC1310_LAUNCHXL_nortos_ccs", So I can't understand the point of one "if-snippent" in the example - it is on the picture attached to this letter.

Q2: Would U explain the point of the field "pastTrig" of the structure

struct __RFC_STRUCT rfc_CMD_PROP_TX_ADV_s {

.....

struct {
      uint8_t triggerType:4;            //!<        The type of trigger
      uint8_t bEnaCmd:1;                //!< \brief 0: No alternative trigger command<br>
                                        //!<        1: CMD_TRIGGER can be used as an alternative trigger
      uint8_t triggerNo:2;              //!<        The trigger number of the CMD_TRIGGER command that triggers this action
      uint8_t pastTrig:1;               //!< \brief 0: A trigger in the past is never triggered, or for the start of commands, give an error<br>
                                        //!<        1: A trigger in the past is triggered as soon as possible
   } startTrigger (endTrigger);

....

I can't understand what means :

0: A trigger in the past is never triggered, or for the start of commands, give an error<br>
1: A trigger in the past is triggered as soon as possible

what is the behavior/point? Would you explain it more widely and in detail

Please advise.

Regards,

Josel

  • There are no pictures attached to this post, so please specify what you are asking in Q1.

    For the past trigger, assume the following.

    At time tn, you are issuing TX command with a start time at time tn+1

    In this case, the pastTrig setting is don’t care, and the packet will be sent at tn+1

    However, if you have a case where the start time is set to tn+1, but you are not issuing the command before time tn+2, then the pastTrig will affect what is happening.

    If pastTrig = 0, the packet will not be transmitted, and the TX command will return an error (this is because you called the command at tn+2, and wanted the packet to be sent at tn+1

    If pastTrig = 1, the packet will be sent as soon as possible, in this case, at time tn+2

    Siri

  • Hi Siri,

    My apology for that. below is the image


    Regards,

    Josel

  • In the example, the TX command is chained with an RX command.

    The TX command will always run and result in a RF_EventCmdDone interrupt.

    The RX command can generate 3 different interrupts:

    • RF_EventCmdDone
    • RF_EventLastCmdDone
    • RF_EventRxEntryDone

    1 and 2 will always happen, while 3 will only happen if a packet is received.

    Assume you get the callback and RF_EventRxEntryDone is asserted (packet is received). The code will then set bRxSuccess = true; set the proper LEDs and return (will not check the next else if)

    You will then have the callback again when RX is finished (RF_EventRxEntryDone).

    the RF_EventRxEntryDone is already cleared on the previous interrupt, so the

    else if((e & RF_EventLastCmdDone) && !(e & RF_EventRxEntryDone)) is true.

    It is not necessary to figure out if a packet was actually received (bRxSuccess) or if the RF_EventRxEntryDone never happened and the RF_EventLastCmdDone happened due to a timeout.

    Siri