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.

CC2642R: CC2642 Connection Channel Configuration Issues

Part Number: CC2642R

Hi,

The slave broadcasts using only channel 37, and the host calls the interface GAP_SetParamValue(GAP_PARAM_SET_SCAN_CHAN, LL_SCN_ADV_MAP_CHAN_7) to set the scanning channel to 37. After calling GapScan_enable, it does indeed scan only to devices with channel 37 After calling GapScan_enable, it does only scan devices with channel 37. But when I call GapInit_connect to initiate the connection, the broadcast devices of channel 37, 38 and 39 can be connected, if I only want to connect the broadcast devices of channel 37, how should I configure it.

sdk version:simplelink_cc13xx_cc26xx_sdk_7_10_01_24

The slave broadcast channels are configured as follows:

GapAdv_params_t advParams1 = {
  .eventProps =   GAP_ADV_PROP_CONNECTABLE | GAP_ADV_PROP_LEGACY | GAP_ADV_PROP_SCANNABLE,
  .primIntMin =   1600,
  .primIntMax =   1600,
  .primChanMap =  GAP_ADV_CHAN_37,
  .peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID,
  .peerAddr =     { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa },
  .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ,
  .txPower =      GAP_ADV_TX_POWER_NO_PREFERENCE,
  .primPhy =      GAP_ADV_PRIM_PHY_1_MBPS,
  .secPhy =       GAP_ADV_SEC_PHY_1_MBPS,
  .sid =          0
};

  • It was misspelled earlier, it should have looked like this:

    GAP_SetParamValue(GAP_PARAM_SET_SCAN_CHAN, LL_SCN_ADV_MAP_CHAN_37)

  • Hi,

    Thank you for reaching out. Can you clarify if fixing the misspelling implemented your desired behavior?

    Best Regards,

    Jan

  • Hi,

    No implementation, my actual test code is GAP_SetParamValue(GAP_PARAM_SET_SCAN_CHAN, LL_SCN_ADV_MAP_CHAN_37), I just wrote it incorrectly in the forums

  • Hi,

    Got it. Thank you for clarifying. I don't believe the channels used while the connection is being set up may be selected. Can you see the device switch to the data channels after the connection is fully established?

    Best Regards,

    Jan

  • Hi,

    After the connection is established switching to the data channel works fine and everything else works fine. My intention is to only scan for devices on channel 37 and connect when initiating a connection, since my slave only broadcasts on channel 37, and to improve connection efficiency, I would like to not scan channels 38 and 39 when initiating a connection.

  • Hi,

    Looking further into this, it seems that the Bluetooth Specification does not offer a provision to scan on a specific channel, but it is possible to do so by specifying the scan channel as you have done. To clarify, in your testing you are seeing that after you send the connection indication, the peripheral and central use all three advertising channels for connection establishment?

    Could you share a log of the scanning, advertisement and connection establishment to see what is happening over the air?

    Best Regards,

    Jan

  • Hi,

    The host program calls GAP_SetParamValue(GAP_PARAM_SET_SCAN_CHAN, LL_SCN_ADV_MAP_CHAN_37) during initialization to configure only channel 37 to be scanned, after which GapInit_connect is called to initiate the connection, and the slaves set the primChanMap to respectively GAP_ADV_CHAN_37 and GAP_ADV_CHAN_38. both slave configurations, the host can connect.

    20231208.rar

  • Hi,

    Thank you for the log. Upon discussing this with the team, I believe this is likely expected behavior. It seems that in BLE, you are not able to specify the channels used during connection establishment like you can for scanning and advertising.

    Best Regards,

    Jan