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: TI 15.4 in ETSI band and LBT RSSI threshold

Part Number: CC1352P

Hello,

I have a specific question regarding LBT and CSMA with TI 15.4 stack depending on the band used (ETSI or US).

If ETSI band is chosen, the stack automatically does LBT for about 5 milliseconds. Is the RSSI threshold fixed at -92 as defined in source/ti/ti154stack/low_level/cc13xx/mac_radio_defs.h?

#define MAC_LBT_THRESHOLD                       -92 // -92 dBm

As I cannot find any place where this define is used, I suppose its used for compilation of the closed-source stack itself? Can this threshold be modified by stack configuration?

I found this one:
"RSSI threshold for CCA, expressed as a signed int with range -127 to 127"
common/osal_port/api_mac.h:    ApiMac_attribute_rssiThreshold = 0xF4,

but I think it would only change the threshold if US or China bands are used, but changes nothing for ETSI band. Is this correct?

Thanks for clarifications,

hkr

  • Hello,

    see below my answers in RED:

     

    If ETSI band is chosen, the stack automatically does LBT for about 5 milliseconds. Is the RSSI threshold fixed at -92 as defined in source/ti/ti154stack/low_level/cc13xx/mac_radio_defs.h?

    No, this can be modified utilizing the MAC API

    As I cannot find any place where this define is used, I suppose its used for compilation of the closed-source stack itself? Can this threshold be modified by stack configuration?

    Yes, you are correct, this is only used inside the stack library, which is not accessible to the application. 

    but I think it would only change the threshold if US or China bands are used, but changes nothing for ETSI band. Is this correct?

    No, you can change it using that API MAC Attribute.

     

    Regards,

    AB

  • Thanks, that helps a lot!

    Some additional questions popped up for me:

    Are the attributes ApiMac_attribute_backoffExponent, ApiMac_attribute_maxBackoffExponent, and ApiMac_attribute_maxCsmaBackoffs related to LBT or just CSMA for US/China bands?

    What is the ApiMac_FHAttribute_CsmaBaseBacoff exactly? Does it relate to LBT and/or CSMA?

    How does ApiMac_attribute_maxCsmaBackoffs relate to ApiMac_attribute_maxFrameRetries? If the maximum number of back offs are reached and there are left frame retries, then the stack starts a new transmission attempt that has again max CSMA backoffs?

    Can ApiMac_attribute_maxFrameRetries be overwritten with 0 in a data request to ApiMac_mcpsDataReq() if dataReq.txOptions.noRetransmits is set to true?

    Thank you very much!

    hkr

  • Hello,

    Are the attributes ApiMac_attribute_backoffExponent, ApiMac_attribute_maxBackoffExponent, and ApiMac_attribute_maxCsmaBackoffs related to LBT or just CSMA for US/China bands?

    Only to CSMA

    What is the ApiMac_FHAttribute_CsmaBaseBacoff exactly? Does it relate to LBT and/or CSMA?

    Only for CSMA

    How does ApiMac_attribute_maxCsmaBackoffs relate to ApiMac_attribute_maxFrameRetries? If the maximum number of back offs are reached and there are left frame retries, then the stack starts a new transmission attempt that has again max CSMA backoffs?

    If the max backoff is reached and there are still retries left, It will consider it as a failed frame and count towards the current Frame retry count.

    Can ApiMac_attribute_maxFrameRetries be overwritten with 0 in a data request to ApiMac_mcpsDataReq() if dataReq.txOptions.noRetransmits is set to true?

    The stack will handle this for you, no need to worry about the retry setting. Send a packet with dataReq.txOptions.noRetransmits set to true and it will not expect an ack.

  • Thanks AB, 2 further inquiries in green...

    What is the ApiMac_FHAttribute_CsmaBaseBacoff exactly? Does it relate to LBT and/or CSMA?

    Only for CSMA

    And what does it do/set? (It is a bit strange that the default value is 0x8 but the comment where this default is set says it is set to 0).

    Can ApiMac_attribute_maxFrameRetries be overwritten with 0 in a data request to ApiMac_mcpsDataReq() if dataReq.txOptions.noRetransmits is set to true?

    The stack will handle this for you, no need to worry about the retry setting. Send a packet with dataReq.txOptions.noRetransmits set to true and it will not expect an ack.

    So, if ApiMac_attribute_maxFrameRetries is set to 1 and dataReq.txOptions.noRetransmits is set to true, then the transmission will be retried once in case LBT/CCA fails but it will not expect an ack?

     

    Thank you, hkr

  • And what does it do/set? (It is a bit strange that the default value is 0x8 but the comment where this default is set says it is set to 0).

    Where do you see this? can you point me to what you are seeing?

    So, if ApiMac_attribute_maxFrameRetries is set to 1 and dataReq.txOptions.noRetransmits is set to true, then the transmission will be retried once in case LBT/CCA fails but it will not expect an ack?

    I am sorry, my initial statement was partially wrong. it will send the first try of the packet once the LBT/CCA algorithm lets the radio Tx unless it times out, and it WILL expect an ACK but will not retry if it does not receive the ack.

  • Hi AB,

    And what does it do/set? (It is a bit strange that the default value is 0x8 but the comment where this default is set says it is set to 0).

    Where do you see this? can you point me to what you are seeing?

    I found this in source/ti/ti154stack/high_level/mac_cfg.c:

    const FHPIB_DB_t FHPIB_defaults =
    {
    ...
    /*! macBaseBackOff : 0 */
        0x08,

    and FH_PibTbl tells me that macBaseBackOff has limits 0 and 16, so the default would be in the middle. So what does it do?

    So, if ApiMac_attribute_maxFrameRetries is set to 1 and dataReq.txOptions.noRetransmits is set to true, then the transmission will be retried once in case LBT/CCA fails but it will not expect an ack?

    I am sorry, my initial statement was partially wrong. it will send the first try of the packet once the LBT/CCA algorithm lets the radio Tx unless it times out, and it WILL expect an ACK but will not retry if it does not receive the ack.

    So to conclude: If ApiMac_attribute_maxFrameRetries is set to 1,
    and dataReq.txOptions.noRetransmits is set to true,
    and dataReq.txOptions.ack is set to false,

    if then the LBT detects a blocked channel the first time and gives up,

    the stack will retry transmitting this packet?

     

    It's getting detailed...that's good :-)

    Thank you for your support! hkr