QN9020 TX power

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

QN9020 TX power

1,486 Views
marcos_darino
Contributor II

We are working with the example prj_qpps and we want to change the TX power. We are using the Advertising mode, the big part of the time we are sleeping, wakeup ~20 seconds to do the advertising and then we go to sleep again.

could you help me with the function to set the TX power? 

Labels (1)
  • QN

Tags (1)
5 Replies

1,373 Views
marcos_darino
Contributor II

We already have checked the rf_tx_power_level_set function but we do not have the result we are searching. We are calling this function with different values of TX power just after the ble_start_advertising() in the Sleep wakeup callback function.

To check the result I am checking the distance with a discover software and we cannot see differences in the RSSI value.

Another thing we check is the registers: PA_GAIN with the jlink commander, and for example when we set the TX to TX_GAIN_LEVEL1 (-18 dBm) the register is showing 10010 (not listed value in the user manual), it is changing but not as we spect.

0 Kudos

1,373 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Marcos,

The power level must be called before the system init. So the way that you are wake up your device must be with a reset, and you will achieve a different power level.

    rf_tx_power_level_set(TX_GAIN_LEVEL12);

    // System initialization, user configuration

    SystemInit();

 

Please let me know your findings.

Regards,

Mario

1,373 Views
marcos_darino
Contributor II

Hi Mario, Thanks for your information

The result of the test: 

We have added the call of the function just before the system init:

AVG RSSI test results (~50 samples per level)

TX_GAIN_LEVEL12 -> RSSI AVG: -65 

TX_GAIN_LEVEL7-> RSSI AVG: -75

TX_GAIN_LEVEL2-> RSSI AVG: -84

Distance test:

We have checked only LEVEL 2 and Level 12, and we see 1 or 2 meters of difference – (max distance 10 meters open space inside the house)

The RSSI test is showing differents average values, we do not see enough difference in the distance test, but maybe we are doing wrong the test.

Let me know your opinion about the results.

Thanks 

Marcos

0 Kudos

1,373 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Marco,

The test results that you are getting look good, but it is just a reference, the RSSI value is lower when the power level is equal to 4dBm, which means that the TX is close or is transmitted with high power.

TX_GAIN_LEVEL12 -> RSSI AVG: -65 

TX_GAIN_LEVEL7-> RSSI AVG: -75

TX_GAIN_LEVEL2-> RSSI AVG: -84

The RSSI test is showing differents average values, we do not see enough difference in the distance test, but maybe we are doing wrong the test.

This value will depend on the  RX device, remember that it could be changed for any obstacle, WIFI network, wall, the temperature, but it could double-check it with a spectrum analyzer.

I am sorry for my misunderstanding, the rf_tx_power_level_set must be called before the system init only if you want 4dBm 

TX_GAIN_LEVEL12,            /*!<   4 dBm, Chip need calibration after entering or exiting this level */
The device needs calibrate to achieve this power level.
Regards,
Mario
0 Kudos

1,373 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Marcos,

Please look at the rf_tx_power_level_get API defined in the app_util.h file.

We provide constant values for the TX power level.

const int8_t pa_gain2dbm_table[] = {-20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, 2, 4};

Regards,

Mario

0 Kudos