BT840X Low Transmit Power with Skyworks FEM

Hello,

I have read through many threads and am trying to understand how the Skyworks fem module works as there is not a good example.  I will start by saying that I am seeing more power with the FEM but it is now what was expected. This is all being used for BLE.

Currently I have 2 boards and several different advertising sets and one has the module with the skyworks FEM.  When I set both to 8db using set_tx_power(BT_HCI_VS_LL_HANDLE_TYPE_ADV, 2, 8); I am not seeing the same rssi.  The unit with the FEM is about 6-10 DB low so I am going to say something is being left on the table for link budget.  I would expect to see the same RSSI when using the same antenna and not moving it.  I can see the the spike on the power profiler is about the same as well which is why it is a bit confusing.

Device Tree:

    nrf_radio_fem: skyFem {
        compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins";
        ctx-gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
        crx-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
        cps-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
        chl-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
        };

&radio {
    fem = <&nrf_radio_fem>;
    };
Init code
gpio_pin_configure_dt(&CHL, GPIO_OUTPUT | GPIO_OUTPUT_INIT_HIGH);
		gpio_pin_configure_dt(&CPS, GPIO_OUTPUT | GPIO_OUTPUT_INIT_LOW);

		// mpsl_fem_gain_t fem = {.gain_db=22};
		// int ret = mpsl_fem_pa_gain_set(&fem);
		// if(ret != 0)
		// {
		// 	LOG_ERR("FEM");
		// }

		tx_power = 22;
		set_tx_power(BT_HCI_VS_LL_HANDLE_TYPE_ADV, 0, tx_power);
		set_tx_power(BT_HCI_VS_LL_HANDLE_TYPE_ADV, 1, tx_power);
		set_tx_power(BT_HCI_VS_LL_HANDLE_TYPE_ADV, 2, 8);
		set_tx_power(BT_HCI_VS_LL_HANDLE_TYPE_ADV, 3, 8);
Config
CONFIG_MPSL=y
CONFIG_MPSL_FEM=y
CONFIG_MPSL_FEM_SIMPLE_GPIO=y
CONFIG_BT_CTLR_TX_PWR_ANTENNA=22
Parents
  • Hello edmcnicolas,

    The unit with the FEM is about 6-10 DB low so I am going to say something is being left on the table for link budget.

    By this, do you mean that the device with FEM output at 6-10dB lower than you expected, or 6-10dB lower than the device without FEM?

    In NCS, MPSL takes care of FEM control completely, so you shouldn't need to toggle the CHL and CPS line like you are doing.

    I unfortunately haven't tried to control TX power dynamically with FEM before, and unfortunately have neither a Skyworks nor a nRF21540 with me to test at the moment. 

    For the time being, could you please try to build a simple project (such as the beacon sample) with the TX Power set only in Kconfig, without any additional code controlling it? This is a setup I have tested before and confirmed to be working. We can use it as a starting point to rule out any other factors that could be wrong.

    Please also share:

    • What version of the nRF Connect SDK (NCS) you are using. If possible, please use the latest version. At the time of writing, it's 2.5.1.
    • Your compiled DTS file, <build folder>/zephyr/zephyr.dts
    • Your compiled Kconfig file, <build folder>/zephyr/.config

    Hieu

    ---

    Please be informed that due to the ongoing Christmas - New Year holiday season, we are severely understaffed, and there would be delays in responses. Our apologies for the inconveniences.

Reply
  • Hello edmcnicolas,

    The unit with the FEM is about 6-10 DB low so I am going to say something is being left on the table for link budget.

    By this, do you mean that the device with FEM output at 6-10dB lower than you expected, or 6-10dB lower than the device without FEM?

    In NCS, MPSL takes care of FEM control completely, so you shouldn't need to toggle the CHL and CPS line like you are doing.

    I unfortunately haven't tried to control TX power dynamically with FEM before, and unfortunately have neither a Skyworks nor a nRF21540 with me to test at the moment. 

    For the time being, could you please try to build a simple project (such as the beacon sample) with the TX Power set only in Kconfig, without any additional code controlling it? This is a setup I have tested before and confirmed to be working. We can use it as a starting point to rule out any other factors that could be wrong.

    Please also share:

    • What version of the nRF Connect SDK (NCS) you are using. If possible, please use the latest version. At the time of writing, it's 2.5.1.
    • Your compiled DTS file, <build folder>/zephyr/zephyr.dts
    • Your compiled Kconfig file, <build folder>/zephyr/.config

    Hieu

    ---

    Please be informed that due to the ongoing Christmas - New Year holiday season, we are severely understaffed, and there would be delays in responses. Our apologies for the inconveniences.

Children
  • Hieu,

    I am using 2.5.0 as I have not seen 2.5.1 on the toolchain manager.

    What I was saying is that when i set the power to 8db dynamically the unit with FEM is being received at a lower level than the unit without fem when connecting wither to the same board mounted antenna so there is obviously a difference in power through the FEM unit with the the current config at defaults.  

    As for using the default settings and setting the "CONFIG_BT_CTLR_TX_PWR_ANTENNA=22" that only shows 10mA on the power profiler so that is not the correct setup.  As per the data sheet for the SKY66112-11 the fact that fem control is only 2 pin and not 4 pin CHL and CPS need to be set so that the FEM uses high power mode as only CRX and CTX are controlled by MPSL from what I can see and have read.

    If i set the CHL and CPS then I do get higher output but i only see peaks of 75ma when the fanstel example has peaks up to 200mA.  WIth this setting I see rssi best rssi of -32 on a nrf52833 dk at 40". By lowering the tx-db-gain in the device tree to -12 i get a peak of -28 dbm with peaks of 225mA and can manipulate it up and down from there.  What I see is that the dynamic power control seems a bit confused with the default settings and is not using 1db increments like the data sheet would indicate it is able to.  I have use dynamic power controls repeatedly with non-fem modules with no issue. 

    My though is that with the fem settings and the default device tree set at 22db i dont think the output power is be set correctly in the tx.  I tried reading the txpower register but it was always at 0. For full power on the Skyworks part I need an input of -1db from the radio.

  • edmcnicolas,

    edmcnicholas said:
    I am using 2.5.0 as I have not seen 2.5.1 on the toolchain manager.

    I checked the Toolchain Manager, and it is as you said. My apologize. I saw that the documentation was already release and repository already tagged for v2.5.1 and thought it was released. Perhaps the process was interrupted due to the holiday.

    Thank you for the details of your tests. I will have someone with better knowledge on this topic look at this and we will get back to you soon.

Related