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/CC2640R2F: CC2640R2F

Part Number: CC2640R2F

Tool/software: Code Composer Studio

Use a code (without adding other function) 1.50.00.71 simple_peripheral. Separately try to connect BT4.0 (Android mobile ) and BT5.0 (1.50.00.71 simple_central).

The connection and broadcast status as the following table:

 

BT4.0 Broadcast

BT5.0 Broadcast

Non connection status

Tag can be turn off 1M Broadcast

Tag can be turn off 500k broadcast

BT4.0(Android mobile )connection

Automatically turn off 1M Broadcast

Can be turn off 500K Broadcast

BT5.0(1.50.00.71 simple_central) connection

Cannot be turn off 1M Broadcast

Automatically turn off 500K Broadcast

When central is in BT5.0 connection state, we must keep BT4.0 broadcast. If we try turn off BT4.0 broadcast, will triggers Hci_ble_hardware_error_event_code event.

The Error code is 0x83

Issue:

1. Can this hci_ble_hardware_error_event_code event be ignored?

2. If cannot be ignored, are there any ways to close BT4.0 broadcast? We have power consumption concern and must turn off 1M broadcast when 500K is in connection state.

#define GAPADV_PARAMS_LEGACY_SCANN_CONN {                                  \

  .eventProps = GAP_ADV_PROP_CONNECTABLE | GAP_ADV_PROP_SCANNABLE |        \

                GAP_ADV_PROP_LEGACY,                                       \

  .primIntMin = 160,                                                       \

  .primIntMax = 160,                                                       \

  .primChanMap = GAP_ADV_CHAN_ALL,                                         \

  .peerAddrType = 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                                                                 \

}

 

/**

* Default parameters for long range, connectable, advertising extension

*/

#define GAPADV_PARAMS_AE_LONG_RANGE_CONN {                                 \

  .eventProps = GAP_ADV_PROP_CONNECTABLE,                                  \

  .primIntMin = 160,                                                       \

  .primIntMax = 160,                                                       \

  .primChanMap = GAP_ADV_CHAN_ALL,                                         \

  .peerAddrType = 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_CODED_S2,                                    \

  .secPhy = GAP_ADV_SEC_PHY_CODED_S2,                                      \

  .sid = 0                                                                 \

}

  • Hi,

    When you said "When central is in BT5.0 connection state, we must keep BT4.0 broadcast." What's the data rate used when the central is connected with peripheral?(is it 1Mbps, 2Mbps...etc)
  • The data rate is 500Kbps when the central is connected with peripheral. However, the  peripheral is still with 1Mbps broadcast signal. The power consumption of peripheral is too big.

  • Dear Christin
    Have you reproduced your issue? What is the issue status?
  • I am looking into this now, will get back asap
  • When you connect, did you change to coded phy S=2 and then turn off 1Mbps adv under HCI_LE_SET_PHY callback in this function "static void SimplePeripheral_processCmdCompleteEvt(hciEvt_CmdComplete_t *pMsg)" ?

    In out of box simple central, the link is only established in 1Mbps data rate.  

    #define DEFAULT_INIT_PHY                     INIT_PHY_1M
      GapInit_connect(advRpt.addrType, advRpt.addr, DEFAULT_INIT_PHY, 0);

    Without any modification to the software, the peripheral will stay advertising until it gets to connection to 3 central devices. (MAX_NUM_BLE_CONNS is the parameters for setting maximum number of active connection) 

        case SP_START_ADV_EVT:
          if (linkDB_NumActive() < MAX_NUM_BLE_CONNS)
          {
            // Enable advertising if there is room for more connections
            GapAdv_enable(advHandleLegacy, GAP_ADV_ENABLE_OPTIONS_USE_MAX, 0);
            GapAdv_enable(advHandleLongRange, GAP_ADV_ENABLE_OPTIONS_USE_MAX, 0);
          }

    So it seems like you have added some code to achieve what you described above. Please provide the code snippet so that I can reproduce what you see.

  • Dear Christin

    We modify in simple central, define DEFAULT_INIT_PHY = INIT_PHY_CODED

    Please check attached codes.8420.simple_central.c7762.simple_peripheral.c

  • Hi,

    I actually found more bugs when I was doing the test. Since this is a evaluation version of SW and it has not been certified, there is no plan on making a fix for this version of SDK.

    There will be an official CC2640R2F BLE SDK for Bluetooth 5 available in our second quarter release. I would suggest that you develop application code with the evaluation SDK and port it to the official release as soon as it's available. Then you can do intensive testing with that version of SW. If there is any bug, we will fix it asap.
  • Dear Christin

    As your suggestion, there are new SDK for 500K bps. It will solve this issue ,right?