Hello E2E,
I have a customer who sent me the following. Can you advise?
"I am currently working with the CC2564. We would like to have a way to control the BLE output power of the chip. So far I’ve come across one of the vendor specific HCI commands called HCI_VS_LE_Output_Power mentioned here: http://processors.wiki.ti.com/index.php/CC256x_VS_HCI_Commands#HCI_VS_LE_Output_Power_.280xFDDD.29. This function works by changing the power level index used for LE power (the indices and their corresponding output values in dBm are defined in the GFSK power vector table). In short, using this method seems to work, for when I put the device into advertising mode and scan for it using an iPhone app, I can see that the RSSI of the device changes as I alter the LE output power.
However, from what I’ve read on a few forums, the HCI_VS_LE_Output_Power command should not be used and the LE power setting should not be changed on the fly (see the accepted answers of the question posted here: https://e2e.ti.com/support/wireless_connectivity/bluetooth_cc256x/f/660/p/447764/1609133). That same forum states that the HCI_VS_DRPb_Set_Power_Vector command should be used instead to change the LE output power (by modifying power level index 1 of the GFSK power vector table, which is used for LE power) and should then be followed by RF recalibration. So I tried using the HCI_VS_DRPb_Set_Power_Vector command to change the power vector table and followed that up with a RF recalibration, but I am not seeing any discernible changes in the output power when using my ad hoc testing method mentioned previously. In addition, when I try to set the power level index #1 to anything less than -5dBm, the HCI returns BTPS_ERROR_HCI_DRIVER_ERROR.
So in summary my questions are:
- Why should I not be using the HCI_VS_LE_Output_Power command to alter the LE output power?
- How do I read the current LE output power level in use by the chip? (When I try using HCI_Read_Transmit_Power_Level(), the function always returns 12dBm, even after I’ve successfully changed the LE output power using HCI_VS_LE_Output_Power)
- How do I rewrite the GFSK power vector table since it does not seem to work using HCI_VS_DRPb_Set_Power_Vector?
Why do I get an error when attempting to change the power level index #1 value to anything less than -5dBm?
Thank you very much!
Russell