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: How to disable 2Mbps PHY

Part Number: CC2642R

Hi team,

My customer would like to use 1Mbps only. Please instruct how to disable 2Mbps.

We verify Simple_Peripheral example. While advertising, it use 1Mbps. After connection to master, it becomes to use 2Mbps. 

Please base on Simple_Peripheral example and instruct how to disable 2Mbps.

Thank you.

  • Hey Jerry,

    The peripheral can set their preference using the following line inside SimplePeripheral_init(), which will set the preference to be 1Mbps for rx/tx:

    HCI_LE_SetDefaultPhyCmd(HCI_PHY_1_MBPS, HCI_PHY_1_MBPS , HCI_PHY_1_MBPS);

    Please have them try this and let me know if it suits their needs!

    EDIT: Would you be able to explain the motivation behind this change for the customer?

  • Hi Jerry,

    So if you want to completely disable the other PHY options, you can follow the steps below.

    • Go to the init function of your application and add HCI_LE_ReadLocalSupportedFeaturesCmd(); to the very end of it.
    • Go to the processCmdCompleteEvt function of your application, and add the following case to the switch statement
    case HCI_LE_READ_LOCAL_SUPPORTED_FEATURES:
        {
            if (pktStatus == SUCCESS)
            {
              uint8_t featSet[8];
    
              // Get current feature set from received event (bits 1-9
              // of the returned data
              memcpy( featSet, &pMsg->pReturnParam[1], 8 );
    
              // Clear bits 0 and 3 of byte 1 
              CLR_FEATURE_FLAG( featSet[1], LL_FEATURE_2M_PHY );
              CLR_FEATURE_FLAG( featSet[1], LL_FEATURE_CODED_PHY );
    
              // Update controller with modified features
              HCI_EXT_SetLocalSupportedFeaturesCmd( featSet );
          }
        }
        break;
    

    Best Regards,
    Alec