Note: This KBA has been marked as deprecated. A more updated KBA can be found here:
The command system_set_tx_power can be used to set the maximum TX power, but the value which is set by the Bluetooth stack may not be the same that is given as input to the command. The actual set value can be read from the command response.
The TX power values of EFR32xG chipset are not continuous, the lower the value, the coarser the adjustment. Attachment is a test result by iterating value from -300 to +80 on a BGM111. Note the TX power is in 0.1 dBm steps, so for example the value of 50 equals to +5 dBm. For more information, refer to the API reference manual, system_set_tx_power command.
Attached is an application, which will iterate through a minimum and a maximum TX power value given to system_set_tx_power command, and it will print out both the input parameter and the response. This sweep runs only once out of reset and if you open a terminal (115200 baud, 8N1) it will show output like in the below image.
To run the application, follow these steps:
Create an SoC - Empty project in Simplicity Studio for the radio board that you want to use.
Copy the attached app.c to the root directory of the project.
Change DEBUG_LEVEL to 1 in app.h file to enable logging to UART.
Compile and run the program. The results will go out through the VCOM and you can visualize them on a terminal application such as TeraTerm or PuTTY.
if we provide a tx power range more than its limits then what will it gives an output
As i am having +10 dBm Module and i have set a limit from -300 to 190
then what will be it give result after +10 dBm
The system_set_tx_power will limit it to the maximum that the chip can support.