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.

CC1310: EasyLink_transmitCCAAsync() Backoff Window and Number of Retries

Part Number: CC1310

From the documentation, I have a hard time understanding how the number and spacing of retries in EasyLink_transmitCCAAsync() are supposed to work. The docs say:

This function is a non blocking call to send a packet. It will check for a clear channel prior to transmission. If the channel is busy it will backoff for a random period, in time units of EASYLINK_CCA_BACKOFF_TIMEUNITS, before reassessing. It does this a certain number (EASYLINK_MAX_CCA_BACKOFF_WINDOW - EASYLINK_MIN_CCA_BACKOFF_WINDOW) of times before quitting unsuccessfully and running to the callback. If the Tx is successfully scheduled then the callback will be called once the Tx is complete.

1. "it will backoff for a random period". So this random period is at least (EASYLINK_CCA_BACKOFF_TIMEUNITS * EASYLINK_CCA_BACKOFF_TIMEUNITS) long? And no more than ( EASYLINK_MIN_CCA_BACKOFF_WINDOW * EASYLINK_CCA_BACKOFF_TIMEUNITS) long?

2. If not, what are the minimum and maximum "random periods" between each CCA?

3. How many CCA attempts are there? It it exactly  (EASYLINK_MAX_CCA_BACKOFF_WINDOW - EASYLINK_MIN_CCA_BACKOFF_WINDOW) times as the docs say? In that case, with the default values in EasyLink.h, there would be 224 CCA attempts. So the total max length of time between first CCA and last CCA would be 224 times the "random period"?

Thank you.

  • Hello out2sea,

    1. Yes, you are right. The random period is between 5*250µS and 8*250µs (default values), in multiples of 250µs . Please look for "backOffTime" in EasyLink.c file in ccaDoneCallback function for better understanding.

    2. The minimum is EASYLINK_MIN_CCA_BACKOFF_WINDOW * EASYLINK_CCA_BACKOFF_TIMEUNITS and maximum is EASYLINK_MAX_CCA_BACKOFF_WINDOW * EASYLINK_CCA_BACKOFF_TIMEUNITS

    3.The number of CCA attempts is EASYLINK_MAX_CCA_BACKOFF_WINDOW - EASYLINK_MIN_CCA_BACKOFF_WINDOW. If the default values are unchanged, then it is 8-5 = 3 times.

    Please refer to the code in ccaDoneCallback function in Easylink.c file for better understanding.

    Regards,
    Prashanth