What is the correct way to modify the RF transmit power

What I'm going to do is make changes to the RF power of the device. The device I use is a module of 52840, and the protocol uses thread.
First,I used my own ncs-based program and used the API: otPlatRadioSetTransmitPower to modify the transmit power. I set the power to 0dBm and 8dBm respectively and recorded the current data. The results are shown in the figure, 15.83mA at 0dBm and 19.44mA at 8dBm.
Then I used this sample github.com/.../radio_test.This sample can change the transmit power via cmd:output_power.
I tested the current at power 0dBm and 8dBm. The results are shown in the figure, 11.45mA at 0dBm and 21.01mA at 8dBm.

The first thing I want to confirm is whether otPlatRadioSetTransmitPower is an API that accurately modifies transmit power?

Then I think that although the transmit power of different programs should be different, the difference between the current at 0dbm and 8dbm should be almost the same. Why is radio_test current difference of 9.56mA between the transmit power of 0dBm and 8dBm, while the current difference of my program is only 3.61mA?

Parents
  • The two applications can not be compared with respect to maximum current conumption as the radio_test sample only runs the radio and CPU, and nothing else, a static load who's average and max values are very close.

    A Thread application however has a vast set of load states that can occur at the same time as the radio is operating. Any CPU or peripheral activity will affect the observed current consumption and therefore you cannot directly compare the measured effect of a higher or lower TX power setting. 

    There is also measurement artefacts that can result in inaccurate displays of large transient signals. This is due to aliasing of the sampled signal, and the curve-fitting algorithm used to turn discrete-time samples into continuous-time curves that is rendered in the PPK app. 

    The result of these phenomena shows itself as a large variation in measured peak loads of the 0dBm Thread scope compared to the +8dBm Thread scope. 

    If you capture the average power of your radio events of your Thread application in the two TX power modes, you should see a difference in current consumption that will converge on the results of the radio_test sample, as you increase the number of radio events included in your average. 

    Note that the radio_test sample's current consumption matches the current consumption of the radio in TX mode and that of the CPU, as both are kept in a static high load state. See Radio current consumption (transmitter) and CPU running current consumption. 

Reply
  • The two applications can not be compared with respect to maximum current conumption as the radio_test sample only runs the radio and CPU, and nothing else, a static load who's average and max values are very close.

    A Thread application however has a vast set of load states that can occur at the same time as the radio is operating. Any CPU or peripheral activity will affect the observed current consumption and therefore you cannot directly compare the measured effect of a higher or lower TX power setting. 

    There is also measurement artefacts that can result in inaccurate displays of large transient signals. This is due to aliasing of the sampled signal, and the curve-fitting algorithm used to turn discrete-time samples into continuous-time curves that is rendered in the PPK app. 

    The result of these phenomena shows itself as a large variation in measured peak loads of the 0dBm Thread scope compared to the +8dBm Thread scope. 

    If you capture the average power of your radio events of your Thread application in the two TX power modes, you should see a difference in current consumption that will converge on the results of the radio_test sample, as you increase the number of radio events included in your average. 

    Note that the radio_test sample's current consumption matches the current consumption of the radio in TX mode and that of the CPU, as both are kept in a static high load state. See Radio current consumption (transmitter) and CPU running current consumption. 

Children
Related