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.

CC2564 - Setting Power Level Clarification

Other Parts Discussed in Thread: CC2564

CC2564 Champs,

We are using the bluetopia API VS_Set_Max_Output_Power to set the max power. This in turn calls VS commands 0xFD82 and 0xFD87. Will this have any effect on BLE power?

 I see that setting the power vector will change power for GFSK but it looks like this may only be for basic rate and not for LE.

 On the wiki page:  http://processors.wiki.ti.com/index.php/CC256x_VS_HCI_Commands#HCI_VS_DRPb_Set_Power_Vector_.280xFD82.29

 It says “NOTE: Power level 1 is used for BLE power”. To change BLE power do we need to use command 0xFDDD?

 HCI_VS_DRPb_Set_Class2_Single_Power (0xFD87) --> Is this used to set the power of another device? Not the DUT.

HCI_VS_DRPb_Set_Power_Vector (0xFD82) --> Does this set available power levels (1-15) for ONLY BT Classic’s Basic Data Rate(GFSK), EDR2, EDR3? Or does it also effect the GFSK used by BLE? What are the effects of modifying the power level 1?

HCI_VS_LE_Output_Power (0xFDDD) --> Used to set current power state for BLE. Does this reference the Power Vector set by 0xFD82 for GFSK?  It is unclear how Power Level 1 applies here.

 

The root of my question is, will commands 0xFD82 and 0xFD87 have any effect on BLE output power?  It is unclear how these commands intermingle, can you please clarify them.

 

Thanks,

 

  • Hi Mike,

    The HCI_VS_DRPb_Set_Power_Vector (0xFD82) command parameters are as below:

    The second field (index #1) of the GFSK power vector configures the BLE output power.


    HCI_VS_DRPb_Set_Class2_Single_Power (0xFD82) : Some Bluetooth devices do not support the power control feature, which allows increasing or decreasing the transmitted power level of the other devices in the connection (LMP_incr_power / LMP_decr_power commands ).
    This command lets the user set the power level to be used during such a connection. This doesn't have anything to do with BLE.


    HCI_VS_LE_Output_Power (0xFDDD) : As mentioned before, power level 1 in "HCI_VS_DRPb_Set_Power_Vector" is used for the BLE output power. If you want to change the BLE output power to another level, you can use this command.


    Regards,
    Gigi Joseph.

  • Joseph,

    The input to the 0xFDDD command is a value between 1-15.  Does this correspond to what is set in the Power Vector Table for GFSK when BLE is being used? 

    It sounds like the HCI_VS_DRPb_Set_Power_Vector is used to set the vector for all allowed 16 different power levels. By default BLE uses power level index 1 as its power.

    0xFD87 is used to set the vector index for the three classic levels (BR/EDR2/EDR3).

    0xFDDD is used to set  the vector index for BLE, which uses the same GFSK vector.

    Let me know if I have this correct.

  • Hi Mike,

    The HCI_VS_DRPb_Set_Power_Vector (0xFD82) command should be used to change the power setting for any modulation. In the case of BLE, the GFSK setting and Power Level 1 should be used to set the desired BLE value. The HCI_VS_LE_Output_Power (0xFDDD) command should not be used. This is used internally as part of the BLE Service Pack and it is set to 1 (indicating Power Level 1).

    ~Miguel
  • Thanks for the help Miguel,

    I believe I may have mis-communicated in my previous post. Here is what i meant to propose:

    0xFD82 is used to define power vector which contains all the possible power levels for the modulations (BR/EDR2/EDR3) and the BLE max

    0xFD87 is used to set the default power level for BT Classic devices that do not support power control.  This selects values from the BR/EDR2/EDR3 defined power vector.

    0xFDDD is used to set the current power level for BLE from the defined GFSK power vector. This by default is set max level (index 1). <-- Wrong!

    From your previous post it sounds like 0xFDDD should NOT be used to change the BLE power level on the fly (i.e. from the GFSK Power Vector).   If so then the only way to modify the BLE power level would be to modify the Power Vectors using 0xFD82. Is this correct?

    Were trying to determine how to reduce the output power level for BLE, and BT-BR/EDR2/EDR3 for a test using commands 0xFD84 and 0xFD85.  It is clear how these commands map to the power levels for BR/EDR2/EDR3, however it is unclear how this works for BLE. 

    Is it necessary to change the Power Level 1 (0x18) in order to modify the power settings for BLE tests?  Or is it possible to use other settings stored in the Power Vector for GFSK?

  • Mike,

    The BLE power cannot be changed dynamically or on the fly. It is set during initialization and should not be changed later on. That being said, the BLE power should be changed by modifying the Power Level 1 in the GFSK power vector.

    ~Miguel