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.

CC1352P: chained command behavior

Part Number: CC1352P

Hi!

I have a TDMA like network where I leave things listening for multiple slots instead of the rfSynchronizedPacket example. 
it is important to not stop listening between slots. I had this working without chaining but the timing was not very tight. 
Using chaining, I'm very close to what I want to see, other than the issue below.

I'm chaining 4 commands as follows

cmdFs[0]  - channel for 'master' packet on one of many leading slots that synchronize the system
cmdRx[0] - listen for 'master' packet
cmdFs[1] - channel for 'non master' data we're listening for
cmdRx[1] - listen for 'non master' packet

  • cmdRx[0] listens forever (endTrigger = TRIG_NEVER) until It receives a packet on frequency from cmdFs[0]
  • CMD_TRIGGER cancels cmdRx[0] in the callback and the chain moves on to cmdFs[1]

Depending on WHEN cmdRx[0] receives a payload impacts either the start time or duration of cmdRx[1]. 
Is that possible to achieve with chained commands? Is there a way to modify triggers of an existing chain

For example - 

  • I have 4 possible slots where I want to wait for a packet on a frequency set by cmdFs[0].
    • These slots are 'master' slots that 'non masters' may sync to 
    • These slots synchronize the whole system, and set the timing to listen on cmdFs[1]
  • I have 6 possible slots where I want to wait for a packet on a frequency set by cmdFs[1].
    • These slots are 'non master' slots that need to be listening 

So if I get a packet on slot0, I either want to cmdRx[1] with cmdFs[1]

  • on slots 4 thru 9 
  • on slots 1 thru 9 (don't care about slots 1-3 if I'm already synchronized)

So if I get a packet on slot1, I either want to cmdRx[1] with cmdFs[1]

  • on slots 4 thru 9 
  • on slots 2 thru 9 (don't care about slots 1-3 if I'm already synchronized)

So if I get a packet on slot3, I want to cmdRx[1] with cmdFs[1] 

  • on slots 4 thru 9

Is this possible with chaining? 
Can I use another trigger type such as TRIG_REL_EVT1? 
If so are there examples or documentation for those?

My best idea is to use another TRIG_NEVER on cmdRx[1] invoked by a RAT timer event. 
I hope there are better ideas. 
 

Thanks!