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.

CC2652R7: Knowing when radio packets are sent

Part Number: CC2652R7
Other Parts Discussed in Thread: SYSCONFIG

Hi,

We have a design which includes some sensitive metrology which is scheduled by the sensor controller. When using advertising we are able to use advertising events to carefully schedule our measurements between adverts to ensure that we do not measure whilst the radio is sending a packet. This is done using

GAP_EVT_ADV_START

GAP_EVT_ADV_END

events and registering with the GAP to receive these:

// Set event mask for set #1

status = GapAdv_setEventMask(advHandleLegacy,

  GAP_ADV_EVT_MASK_START_AFTER_ENABLE |

  GAP_ADV_EVT_MASK_END_AFTER_DISABLE |

  GAP_ADV_EVT_MASK_END |

  GAP_ADV_EVT_MASK_SET_TERMINATED);

This all works well.

We now want to be able to run our metrology whilst the stack is serving connections from LE clients. In this case we have much less control over when radio packets are sent, but we would still like to be able to determine when our measurements might be corrupted. Are there any similar events that we can register for to be informed when a packet is about to be sent? Or another strategy that could give us knowledge of when our measurements are likely to be corrupted?

To be clear, we're not trying to know when connections are made or disconnected, but rather when the packets are sent during the time that a connection is in place.

Thanks

Ed

  • Hi Ed,

    I have a few questions that may help us resolve this as efficiently as possible. Can you share the SDK version you are using? Are you using custom hardware at the moment or a LaunchPad? Can you specify the example you used to start your development? We will take a close look at your query and get back to you as soon as possible.

    To clarify, you are interesting in knowing when connection events occur while the device is in a connection? 

    Best Regards,

    Jan

  • Hello Jan,

    Thank you for looking into my question, and yes, I should have provided a good deal more background, sorry.

    This is SimpleLink CC13xx CC26xx SDK [6.20.0.29] project

    It uses Sysconfig [1.14.0]

    The app itself is a derivative of simple_peripheral_oad_onchip

    It runs on custom hardware, quite similar to a LaunchpadCC2652R7 - albeit the IO pinouts are different. The first versions were developed on the Launchpad.

    If there are connection events whenever the radio sends a packet then yes, I'm interested in connection events which occur while the device is in a connection. If however there are radio packets sent for which there are no events then I probably need to go deeper.

    One thread that was intriguing was the use of the RATGPO0 signal as detailed in the technical reference manual 2.3.2.8 and picked up in a number of old threads, e.g.

    https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/488244/cc1310-route-sync-found-to-pin

    My understanding from the reference manual is that this signal is asserted whenever the RF core is transmitting a packet, and that it is possible to route it to an external IO for debugging and observation.

    Following such a line of reasoning, if I could identify a way to expose this signal to the Sensor Controller, or alternatively to receive an app event linked to the transition of this signal then I think I'd be very close to a complete solution.

    Thanks

    Ed

  • Hi Edward,

    Ill get back to you on tuesday, but as you said there is a way to route to an I/O pin.

    Kind Regards,

    Rogelio

  • Hi Rogelio,

    Very interested to hear what you can offer.

    Is the implication that in routing the signal to an I/O pin it may be possible to read that pin? Presumably this requires a configuration that has the pin as both an input - from the perspective of the sensor controller and an output. Is there a recommended way to set this up?

    Kind regards

    Ed

  • Hello Ed,

    As you said you can route the signal when there is any transmission being sent. A guide can be found here.

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_6_40_00_13/docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/debugging-index.html#debugging-rf-output

    I guess you could then read the value of the pin (high or low). Of course I believe some debugging will need to be done, but that is the approach I would take for what you want.

    Kind Regards,

    Rogelio

  • Hi Rolelio,

    Thanks for these tips.

    I now have this implemented and appear to have a solution - currently testing.

    I'd be interested if anyone has any suggestions on how to read a pin from the sensor controller AUX domain whilst having it configured as an output in the main domain. I wasn't able to get this detail to work so I have had to dedicate 2 pins to looping back the IOC_PORT_RFC_GPO3 signal

    // crowbar the TX indication

    IOCPortConfigureSet(DIO4_TX_IND, IOC_PORT_RFC_GPO3, IOC_IOMODE_NORMAL);

    Reading this pin back through another in the sensor controller allows me to create an event based on its going high. Using this event I can invalidate a measurement if the modem transmits during sampling.

    Thanks!

    Ed