SWRA751 September 2022
Description:
The new transmit power control algorithm is based on the capability to construct power control word for any required power level, based on predetermined ACW and interpolating the required control.
This VS command allows definition of the desired power vector for each modulation scheme, and determination of whether a specific power requires activation of an external PA (in Class1 case).
Power Level Explanation:
Power Level | dBm | Value in bts file |
---|---|---|
15 | 12 | 0x18 |
14 | 7 | 0x0e |
13 | 2 | 0x04 |
12 | -3 | 0xfa |
11 | -8 | 0xf0 |
10 | -13 | 0xe6 |
9 | -18 | 0xdc |
8 | -23 | 0xd2 |
7 | -23 | 0xd2 |
6 | -23 | 0xd2 |
5 | -23 | 0xd2 |
4 | -23 | 0xd2 |
3 | -23 | 0xd2 |
2 | -23 | 0xd2 |
1 | 12 | 0x18 |
0 | -50 | 0x9c |
Command Parameter | Size (bytes) | Value | Description |
---|---|---|---|
Modulation type | 1 | 0x00 0x01 0x02 |
GFSK EDR2 EDR3 |
Level n power (n = 0 – 15) | 1 | –64 to 16 0xFF |
Required RF power for each of
the upper 15 power levels (in dBm) Do not change. |
tx_power_edr_epc_idx | 1 | 0xFF | Do not change. |
External PA mode | 2 | Bit 1 Bit 15 0xFFFF |
1: External PA on @Power level
1; 0: Off 1: External PA on @Power level 15; 0: Off Do not change. |
Procedure For power level vector update:
The following script shows the commands required to run the example:
#Set BT BR (GFSK) LP Vectors Values (note the need to multiply the output power in dBm by '2')
Send_HCI_VS_DRPb_Set_Power_Vector 0xFD82, 0x00, 0x9c, 0x18, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xdc, 0xe6, 0xf0, 0xfa, 0x04, 0x0e, 0x18, 0xff, 0x0000
Wait_HCI_Command_Complete_VS_DRPb_Set_Power_Vector_Event 5000, 0x00, 0xfd82, 0x00
#Set BT BR EDR 2MB LP Vectors Values (note the need to multiply the output power in dBm by '2')
Send_HCI_VS_DRPb_Set_Power_Vector 0xFD82, 0x01, 0x9c, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xd8, 0xe2, 0xec, 0xf6, 0x00, 0x0a, 0x14, 0xff, 0x0000
Wait_HCI_Command_Complete_VS_DRPb_Set_Power_Vector_Event 5000, 0x00, 0xfd82, 0x00
#Set BT BR EDR 3MB LP Vectors Values (note the need to multiply the output power in dBm by '2')
Send_HCI_VS_DRPb_Set_Power_Vector 0xFD82, 0x02, 0x9c, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xd8, 0xe2, 0xec, 0xf6, 0x00, 0x0a, 0x14, 0xff, 0x0000
Wait_HCI_Command_Complete_VS_DRPb_Set_Power_Vector_Event 5000, 0x00, 0xfd82, 0x00
#Set max power level index to be used with a peer device that does not support power control (per LP/HP and per modulation)
Send_HCI_VS_DRPb_Set_Class2_Single_Power 0xFD87, 0x0d, 0x0e, 0x0e
Wait_HCI_Command_Complete_VS_DRPb_Set_Class2_Single_Power_Event 5000, 0x00, 0xfd87, 0x00
#Run TPC (Transmission Power Control) calibration
Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x00, 0x00000800, 0x01
Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00
Returned Value | Description | Size (bytes) | Events Generated |
---|---|---|---|
0x00 0x01 – 0xFF |
Command succeeded. Command failed. |
1 | Command Complete |