Clarifications for sdc_default_tx_power_set() and CONFIG_BT_CTLR_TX_PWR in NCS 2.2


1. Can I assume that if I set CONFIG_MPSL_FEM_POWER_MODEL=n, then the value I set with sdc_default_tx_power_set() is just the radio tx power level and not necessarily the power level fed to the antenna?

  • The documentation for sdc_default_tx_power_set(int8_t requested_power_level) says:

requested_power_level represents the actual power level fed to the antenna. When a Front-End Module is used, gain values for the SoC and FEM are calculated automatically to guarantee the closest possible match to the value requested by the user at the RF output.

The reason I bring this up is that I can still have an FEM that I control outside of the SDC. In this case, with CONFIG_MPSL_FEM_POWER_MODEL=n, the requested_power_level is not the power level fed to the antenna, contrary to the description. right?  If so, then perhaps the description could be clarified by adding what's in bold:  “When a Front-End Module is used and CONFIG_MPSL_FEM_POWER_MODEL=y, gain values for …”

2. If CONFIG_MPSL_FEM_POWER_MODEL=n, then what is the difference between CONFIG_BT_CTLR_TX_PWR and sdc_default_tx_power_set()?  Do they both achieve the same result, except one is a build-time setting and the other is a run-time setting, and the latter can override the former?

3. Why don’t the possible values of CONFIG_BT_CTLR_TX_PWR allow all possible nRF5340 radio transmit power levels?  For example, -6 dBm is a valid nRF5340 radio tx power (see TXPOWER register) but no such choice exists for CONFIG_BT_CTRL_TX_PWR.  The closest choices are CONFIG_BT_CTLR_TX_PWR_MINUS_4 and CONFIG_BT_CTLR_TX_PWR_MINUS_8.

4. Again with CONFIG_MPSL_FEM_POWER_MODEL=n:  From my understanding, the beginning of a transmit for a BLE connection or for BLE advertising begins with the radio transmit power value in CONFIG_BT_CTRL_TX_PWR, unless overridden by sdc_default_tx_power_set() having been called before calling sdc_enable().  If, for example, I change the transmit power during a BLE connection by using the HCI command BT_HCI_OP_VS_WRITE_TX_POWER_LEVEL, the radio transmit power level will change to that HCI command value, but the radio transmit power level will return to the default value at the start of the next BLE connection or if I start advertising again.  Is that correct?

Thanks in advance.

Related