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.

Combine rfPacketTX and RX and WOR manage tasks.

Other Parts Discussed in Thread: CC1310, CC1350

Hi All,

I want to implement custom mash for sub 1GHZ, in the requierment i need to use the WOR(wakeOnRadio) and send and receive packets.

In the TI resources explorer there is examples for all of them, my qustion is about manage the tasks.

Stat machine of the tag:

1- Run WOR to listen to central unit.(WOR task), after 2(registration) i need to stop the WOR task.

2- Send registration command to the central.(rfPacketTX).

3- Receive commands from the central.(rfPacketRX).

Each of the above is separate task, by questions are:

1- Did it's good idea to combine the Send and receive packet to one task?

2- Also did it's good to have some task that manage the whole tasks, like block task WOR when tag register and run again WOR when cut off?

3- Continue to question 2, This tag gonna work also with BLE, so when the BLE connected to device i need to shutdown the sub 1-ghz, so again did i need some task to manage all the sub 1ghz and BLE when each one works, when to shutdown each one...

  • Hello,

    1- Did it's good idea to combine the Send and receive packet to one task?

    Yes. Think of the RF driver instance as a complex resource. It is always much easier to keep such resources in a single task and implement an event-based state machine. We don't have a comprehensive example, but maybe this post about implementing a state machine for RF commands can give you some basic ideas.

    2- Also did it's good to have some task that manage the whole tasks, like block task WOR when tag register and run again WOR when cut off?

    Don't overuse tasks on the CC1310 because you only have a limited amount of RAM. More tasks means also more complexity and potentially higher risks for concurrency problems. I suggest to keep everything RF-related in a single task and implement a proper state machine. By RF-related I mean "one PHY configuration". It is possible to have multiple instances of the RF driver, but I suggest to have one driver instance per PHY configuration. 

    3- Continue to question 2, This tag gonna work also with BLE, so when the BLE connected to device i need to shutdown the sub 1-ghz, so again did i need some task to manage all the sub 1ghz and BLE when each one works, when to shutdown each one...

    As I said, here I would suggest to use 2 RF driver clients and the multi-client RF driver. You can put the clients in different tasks though. Power management and reconfiguration is handled automatically. Please note that the CC1350 supports currently only BLE advertisements and Sub 1 GHz at the same time. There is a lot of work going on to make the BLE stack ready for the multi-client RF driver.

  • Richard! what an incradable answer, thanks my friend.

    I have 2 other question related to your answers:

    1- "Power management and reconfiguration is handled automatically"

    what did you mean about power manager? if some task run each 15 seconds, and only this task is running, so the TI-RTOS power management turn off the main MCU? 

    2- "Please note that the CC1350 supports currently only BLE advertisements and Sub 1 GHz at the same time"

    So can i advertisement(BLE) and send/receive sub-1ghz packets at the same time? what can't(or can) i do with the currently supported BLE and sub-1ghz?

  • Hello Nav.Dev,

    1- "Power management and reconfiguration is handled automatically"

    what did you mean about power manager? if some task run each 15 seconds, and only this task is running, so the TI-RTOS power management turn off the main MCU? 

    By power management I mean RF-core power management. The RF core is a hardware peripheral and can be turned on and off. When the RF driver powers the RF core up, it will prevent the TI-RTOS power management from putting the CC1310 into standby.

    2- "Please note that the CC1350 supports currently only BLE advertisements and Sub 1 GHz at the same time"

    So can i advertisement(BLE) and send/receive sub-1ghz packets at the same time? what can't(or can) i do with the currently supported BLE and sub-1ghz?


    Yes, proprietary RX/TX and BLE advertisements. This is shown for instance in our dual-mode wireless sensor network examples rfWsnDmConcentrator and rfWsnDmNode. If you want to have full BLE support on the CC1350, you need to use the BLE SDK 2.2.1, but then you cannot do proprietary communication at the same time. It might be possible to hack it in, but we are currently working on that as well. 

  • Richard, thanks again.