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>; };
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_MPSL=y CONFIG_MPSL_FEM=y CONFIG_MPSL_FEM_SIMPLE_GPIO=y CONFIG_BT_CTLR_TX_PWR_ANTENNA=22