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.

CCS/LAUNCHXL-CC1352R1: CSMA-CA algorithm and LBT

Part Number: LAUNCHXL-CC1352R1

Tool/software: Code Composer Studio

Hey guys,

this is a follow up question from this https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz/f/156/p/916245/3394707#3394707

I went through documentation and I additionally checked the settings in easylink_config.h. During certification, we want to use our final software, which mainly bases on the sensor/collector example from the 15.4 Stack, which includes CSMA-CA and LBT. I repost the the table from the EN 300 220 guideline:

According to our certification lab, we have to provide quantitative information (see Annex D, EN 300 220-2). So here my questions:

  1. Is the CCA interval in the sensor/collector example also 250µs, like it is in the easylink example? Or is it 2^3 * 250µs since CONFIG_MIN_BE = 3 ?
  2. What is the deferral period and to what value is it set in the sensor/collector example?
  3. What is the minimum unit of deferral period in our application?
  4. In the easylink example, the dead time is set to 5ms, which is the limit. Can and should we set this to something like 4.8 ms?
  5. What is the minimum Toff_min on the same operating frequency in the sensor collector example? How is this parameter controlled within sensor/collector example? Are message retries fired faster than 100 ms?!

Sorry for bothering you again, but we need this info for passing the tests.

best wishes

Slev1n

  • 1. CCA period is ~200 us (i forgot the actual time to do the CCA)
    2. A node will do a random back in terms of "unitBackofdSlots"
    3. Unitbackoffslot = 1 ms + 20 symbol period in Sub 1Ghz and 192 us in 2.4 GHz
    4. A node will choose a randomtime (0-Backoff) * unitBackoffslit
    5. at the end of that period it will do a CCA and determine whether to transmit or not
    6. When LBT is enabled (for Europe), a device will check if channel is free for 5 ms in additional to backoff before transmitting
    7. There is no explicit gap between retries.. after a packet fails,.. another backoff will be done (Rand (0-BE)) and then transmitted

  • Thank you for your time and patience AB.

    But I think I dont understand your answer completely. Maybe I post the exact question from the questionnaire and you can give me feedback. Besides I will try to rephrase your answer in my own words to see if I understood it correctly.

    1. Looking at the questionnaire the following is asked in ETSI EN 300 220-2 V3.1.1 (2017-02) Annex D.2 page 29.

    h) What is the spectrum access mechanism of the equipment? -> Polite spectrum access (My answer)

    i) In case of polite spectrum access:

    • The CCA time implemented by the equipment is ........ ms.
    • The minimal unit of deferral period is: ..........
    • The deadtime T_DIS is ............ ms.

    So what are the correct answers?

    2. Rephrasing

    First, the channel is checked during CCA for 200µs. Then the devices waits for a random time. You now write randomtime (0-Backoff) * unitBackoffslit, and some questions occur at my side.

    • Is unitBackOffSlot the same as the minimum unit of deferral period? If not, what is the deferral period?!
    • Is this unitBackOffSlot 2 ms, since according to your point 3, it is 1 ms + 20 Symbols (@5kbps LRM the symbol rate is 20kbaud/s)?
    • Does the "random" mean, a random value between 0 and Backoff times this unitBackOffSlot? (later you write (Rand (0-BE))) (BE = BackoffExponent)?!
    • This would mean, that 0*unitBackOffSlot is possible which is 0ms. Doesnt this violate the regulation, since the table states that the minimum deferral period has to be higher than the CCA period?!
    • On the other hand, this waiting time could easily exceed 5 ms, which would violate the maximum dead time of 5 ms after the CCA?! (see table)
    • With CONFIG_MIN_BE and CONFIG_MAX_BE, which is 3 and 5, respectively, what is the "Backoff" or "BE" value your talking about?

    According to your point 5, when this waiting time has passed, it does another CCA?! Why? I though this is done BEFORE the backoff/waiting process.

    Now to your point 6, when LBT is active, the channel is checked for 5ms, than the device waits again for "randomtime (0-Backoff) * unitBackoffslot" ms?

    AB said:
    7. There is no explicit gap between retries.. after a packet fails,.. another backoff will be done (Rand (0-BE)) and then transmitted

    So, if a device sends a message, which is not acknowledged the retry could occur BEFORE 100 ms have passed? I thought this would violate the ETSI guideline according to the table I posted.

    I think the retry due to an occupied channel is no issue, because the 100 ms only apply if the device has actually transmitted something.

    I am sorry for bothering you, but we have to provide correct information to pass the certification.

    kind regards and happy 4th of july.

    Slev1n

  • One quick further question regarding the LBT limit: according to the certification lab for the CC1352R1 it has to be at least -90.6dBm, hence I want to set it to -92dBm. Since the below function can only interpret uint8_t I assume 35 represents the value -92, since the comment says: RSSI threshold for CCA, expressed as a signed int with range -127 to 127?

    ApiMac_mlmeSetReqUint8(ApiMac_attribute_rssiThreshold, 35);

    EDIT: Ok, using the get-function, the value for the rssiThreshold is 173. The value 255 could be 0dBm, then 173 is -82dBm, which sounds logical. Since I need -92dBm I choose 163, is this the correct value to get -92dBm?!? I do not have the equipment to precisely measure the LBT threshold in practice. I wan to set the value manually, since I dont think, that the stack can handle the limit correctly, because the stack does not know the external antenna gain.

    best wishes

    Slev1n