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.

CC2640R2F: LL_REJECT_IND_EXIT issue

Part Number: CC2640R2F
Other Parts Discussed in Thread: CC2640

hi,

We use the TI's Launchpad to play as a slave device to do the BLE connection with my WIN7 PC(BT Chip is Qualcomm Atheros), using the Sniffer to record the bahavior, we found Master seems try to modify the CONNECTION PARAM, but CC2640 always feedback "LL_REJECT_IND_EXIT", do you know why does this happen? And how to modify my FW to aviod this happen again?

my FW is based on simplelink_cc2640r2_sdk_2_40_00_32

  • Hi Erik,

    Assigning an expert to comment.

  • hi 

    does there have any feedback for this issue?

    we can sure the FW setting sould be correct by observed the "GAPROLE_PARAM_UPDATE_ENABLE" in debug mode as picture below:

    And by the way, this issue is only happened on WIN7 PC, WIN10 doesn't have this issue.

  • Hi Erik, 

    Can you share the complete sniffer log?

    What did you set GAPROLE_PARAM_UPDATE_ENABLE to?

    Thanks,
    Elin

  • Dear Elin,

    Thanks for your reply,

    1. link below is the complete sniffer log :

    https://drive.google.com/open?id=1ia6rGdy14kdNCfGGCJhUs_KEAcAwdXHm

     

    2. we set GARROLE_PARAM_UPDATE_ENABLE as below,

    uint8_t enableUpdateRequest = DEFAULT_ENABLE_UPDATE_REQUEST;

    but anyway, we did try every items as picture below, the same still fail.


  • Hi Erik, 

    Thanks, I'll look at the files sometime today.

    In the meantime, you could try turning off the LL Connection Parameter Update Request and use L2CAP instead. Read more here: https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/p/824770/3063542

    Thanks,
    Elin

  • Hi Erik, 

    So the error code you are getting is "Invalid LMP Parameters" which indicates that some parameters are invalid. Have you changed any of the parameters? 

    Did you try to use L2CAP?

    Thanks,
    Elin

  • Dear Elin,

    below is my parameters setting:

    // Advertising interval when device is discoverable (units of 625us, 160=100ms)
    #define DEFAULT_ADVERTISING_INTERVAL          160
    // HID idle timeout in msec; set to zero to disable timeout
    #define DEFAULT_HID_IDLE_TIMEOUT              60000
    // Minimum connection interval (units of 1.25ms, 80=100ms) if automatic
    // parameter update request is enabled
    #define DEFAULT_DESIRED_MIN_CONN_INTERVAL     6
    // Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic
    // parameter update request is enabled
    #define DEFAULT_DESIRED_MAX_CONN_INTERVAL     800
    // Slave latency to use if automatic parameter update request is enabled
    #define DEFAULT_DESIRED_SLAVE_LATENCY         50
    // Supervision timeout value (units of 10ms, 1000=10s) if automatic
    // parameter update request is enabled
    #define DEFAULT_DESIRED_CONN_TIMEOUT          500
    // Whether to enable automatic parameter update request when a connection is
    // formed
    #define DEFAULT_ENABLE_UPDATE_REQUEST         GAPROLE_LINK_PARAM_UPDATE_WAIT_REMOTE_PARAMS
    // Connection Pause Peripheral time value (in seconds)
    #define DEFAULT_CONN_PAUSE_PERIPHERAL         10
    refer to the L2CAP test, do you mean add program below in end of static void SimplePeripheral_init(void) ?
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    uint8_t features[8];
    uint8_t i;
     
    features[0] = (
                    LL_FEATURE_ENCRYPTION
                   //|LL_FEATURE_CONN_PARAMS_REQ
                   | LL_FEATURE_REJECT_IND_EXT
                   | LL_FEATURE_SLV_FEATURES_EXCHANGE
                   | LL_FEATURE_PING
                   | LL_FEATURE_DATA_PACKET_LENGTH_EXTENSION
                   | LL_FEATURE_PRIVACY
                   | LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
                  );
     
    for(i=1; i<8; i++)
    {
        features[i]=0;
    }
    HCI_EXT_SetLocalSupportedFeaturesCmd(features);
  • Hi Erik, 

    If you change the parameters back to their default value, do you see the same issue?

    erik lee2 said:
    refer to the L2CAP test, do you mean add program below in end of static void SimplePeripheral_init(void) ?

    Yes, have you tested it? 

    Thanks, 
    Elin

  • Dear Elin,

    it works when add the L2CAP modification.

    but our customer consider it's a workaround way, they want to know the root cause to fix it, they still want to solve this issue at lower layer to prevent the compatible issue among different products in market. 

    or if using the modification at L2CAP instead of fixing at lower layer, any risky?

    thank you again, it's a big milestone about this issue.

  • Hi Erik, 

    If you want to solve the root cause you can reset the parameters to the default values and see if it generates the expected behavior. If using the default parameters work, you can modify one parameter at the time and check that the change doesn't generate unexpected behavior. Continue to do this until you find the parameter that is causing these issues. 

    Thanks,
    Elin