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.

RTOS/LAUNCHXL-CC1310: Rx module to ping Tx to transmit packet or else remain in sleep

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

Tool/software: TI-RTOS

Hello

My application is simple. I have one CC1310 Rx module and 16 CC1310 Tx module operating at 433M. The Rx module should ping the specific Tx module upon an external interrupt and receive sensor data connected 

to that specific Tx module. Essentially both the modules have to be transceivers. The 16 modules should be in sleep mode when not transmitting. I referenced the following thread:

But found it confusing. Also tried rfEasyLinkListenBeforeTalk. But thats not the exact solution to my problem. Any insights would be very helpful!

Regards

Shubhankar

  • Hello Shubhankar,
    Your Rx module can ping the specific TX module using the address filtering. You can assign one address to each of the Tx modules and use that address for communication. Refer to rfc_CMD_PROP_RX_t address0 and address1 parameters. For more information on address filtering refer to TRM www.ti.com/.../swcu117h.pdf

    You can refer to the rfEchoRx and rfEchoTx examples to see how they work as a transceiver (Note that it uses command chaining for switch from Tx to Rx and viceversa) dev.ti.com/.../
    Alternatively this example uses two separate tasks for Tx and Rx to work as transceiver e2e.ti.com/.../2100735

    Regards,
    Prashanth
  • The TX modules should use WOR to be able to receive the ping from the Rx module. A long preamble from the RX when pinging the transmitter will ensure low current consumption on the 16 TX modules.
    Then a TX module receives a ping (use address filtering as suggested by PrashanthS) the can use LBT when sending their sensor Data.

    BR

    Siri
  • hello Prashanth

    Thank you for your reply. Could you tell me how to connect the WOR and LBT in the rfEcho example. I intend to use these in EasyLink method.

    Thanks

    Shubhankar

  • Hi Prashanth

    I checked rfEasyLinkEchoTx. this code will be loaded to my receiver module, which pings the specific Tx module and then gets data from it(packet). 

    Supposing I wanted to take two tx modules and one receiver. i l uncommented the following into the receiver code (rfEasyLinkEchoTx)

    uint8_t addrFilter[2] = {0xaa,0xab};
    EasyLink_enableRxAddrFilter(addrFilter, 2, 2);

    Here, i am assigning 0xaa and 0xab to tx module 1 and module 2 respectively as addresses. Is this correct? 

    I tried following your advice of address0 and 1 but didn't quite understand that when i read up the commands in the ref manunal.

    I could add 16 addresses in the addrFilter array and reference them with different txPacket_x variables like x = 1,2,3,4,5....16 check on the receiver side if that specific ping is received and then send the sensor data right?

    Or is there an optimized way in the rfc_cmd_prop_rx_t as you suggested?

    Thanks