Actual BLE transmit power vs. configured transmit power

We are using a 5340 with a Skyworks 66112 FEM.  Below is our hci_ipc.overlay file.

/ {
    nrf_radio_fem: sky66112_11_fem {
        compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins";
        ctx-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
        crx-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
        tx-gain-db = < 20 >;
    };
};

&radio {
	fem = <&nrf_radio_fem>;
};

We are setting CONFIG_BT_CTLR_TX_PWR_ANTENNA=20.  When we measure the output of the FEM with a spectrum analyzer via a conducted connection, we are measuring 10 dBm instead of 20 dBm.

Can you explain how the CONFIG_BT_CTLR_TX_PWR_ANTENNA configuration determines the output power of the 5340 and how we can adjust the values to get the expected transmit power at the antenna?

We are using nRF Connect SDK 2.6.0.

Thanks,

Andrew

  • Hi Andrew,

    Can you explain how the CONFIG_BT_CTLR_TX_PWR_ANTENNA configuration determines the output power of the 5340 and how we can adjust the values to get the expected transmit power at the antenna?

    Yes, I believe you are doing it correctly.  If a FEM is used, it will calculate the required TX power from the SoC based on the TX gain of the FEM to give the final TX power requested.

    I have seen a lot of cases about people having issues with Skyworks FEM+5340 lately, and I believe the issue is related to the lack of references to child image configuration in older documentation. Have you configured anything on the child image of the 5340 like what is mentioned in this documentation for 2.7?

    Regards,

    Elfving

  • Hello Elfving,

    If a FEM is used, it will calculate the required TX power from the SoC based on the TX gain of the FEM to give the final TX power requested.

    So, based on this, since the FEM is set for a 20 dB gain and we are requesting 20 dBm at the antenna, then the nRF5340 transmit power is set to 0 dBm?  Is there any way we can query the transmit power setting of the nRF5340 to verify this?  We know about the HCI VS command to read transmit power, but that seems to be returning the expected power at the antenna.

    Have you configured anything on the child image of the 5340 like what is mentioned in this documentation for 2.7?

    In the child_image folder, we have the hci_ipc.overlay file that was included above along with the hci_ipc.conf and mcuboot.conf file.  We have verified that the SoftDevice is using the Tx and Rx GPIO lines of the FEM by probing them with a scope and seeing the lines toggle as we expect.

    Thanks,

    Andrew

  • Hello again Andrew,

    I am deeply sorry about the delay on this case. 

    aspearDS said:
    So, based on this, since the FEM is set for a 20 dB gain and we are requesting 20 dBm at the antenna, then the nRF5340 transmit power is set to 0 dBm?

    So the way this job is divided between the FEM and the nRF depends on what you are using as a static FEM gain. Then the SoC TXPOWER is changed to compensate for the remainder such that TXPOWER+FEM gain <= CONFIG_BT_CTRL_TX_PWR_ANTENNA. So for instance if you happened to be using the nRF52840, and have set a static 20dB gain in the FEM, and set CONFIG_BT_CTRL_TX_PWR_ANTENNA=15dBm, you'll only get 12dBm on the antenna, since -8dBm is the closest you can get on the '840.

    For this calculation to work though, the nRF needs to know how much gain is set on the FEM. You can set that on the dts node using tx-gain-db. 

    aspearDS said:
    We know about the HCI VS command to read transmit power, but that seems to be returning the expected power at the antenna.

    You can read what TXpower the NRF is providing by for instance reading the TXPOWER register

    aspearDS said:

    In the child_image folder, we have the hci_ipc.overlay file that was included above along with the hci_ipc.conf and mcuboot.conf file.  We have verified that the SoftDevice is using the Tx and Rx GPIO lines of the FEM by probing them with a scope and seeing the lines toggle as we expect.

    Hmm in that case it does look like it is enabled. 

    It might be that you haven't set tx-gain-db, making it assume some default static gain which is wrong?

    Regards,

    Elfving

Related