which TX Power value is maximum ?

Hello,

nRF21540DK

which TX Power value is maximum for long rang?

void set_tx_power(uint8_t handle_type, uint16_t handle, int8_t tx_pwr_lvl)
{
    struct bt_hci_cp_vs_write_tx_power_level *cp;
    struct bt_hci_rp_vs_write_tx_power_level *rp;
    struct net_buf *buf, *rsp = NULL;
    int err;

    buf = bt_hci_cmd_create(BT_HCI_OP_VS_WRITE_TX_POWER_LEVEL,sizeof(*cp));
    if (!buf) {
         printk("Unable to allocate command buffer\n");
         return;
    }

    cp = net_buf_add(buf, sizeof(*cp));
    cp->handle = sys_cpu_to_le16(handle);
    cp->handle_type = handle_type;
    cp->tx_power_level = tx_pwr_lvl;

    err = bt_hci_cmd_send_sync(BT_HCI_OP_VS_WRITE_TX_POWER_LEVEL,buf, &rsp);
    if (err) {
        uint8_t reason = rsp ?
            ((struct bt_hci_rp_vs_write_tx_power_level *)
              rsp->data)->status : 0;
        printk("Set Tx power err: %d reason 0x%02x\n", err, reason);
        return;
    }

    rp = (void *)rsp->data;
    printk("RADIO Tx Power: %d + PA_GAIN(%d) = %d\n", rp->selected_tx_power, CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB, rp->selected_tx_power + CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB);

    net_buf_unref(rsp);
}

void main()
{
...
	// set TX power
	set_tx_power(BT_HCI_VS_LL_HANDLE_TYPE_ADV, 0, RADIO_TXPOWER_TXPOWER_Pos8dBm);
...
}

  

Best Regards

Parents
  • The nRF21549 have 20 dB gain, so you will have max output power when the input power is 0 dBm. 

  • Hi,

    nRF21540DK

    with periodic_adv project, your means ?

    set_tx_power(BT_HCI_VS_LL_HANDLE_TYPE_ADV, 0, RADIO_TXPOWER_TXPOWER_0dBm);
       
    but i test RADIO_TXPOWER_TXPOWER_Pos8dBm is maximum distance.
      
    thanks
    Best Regards
  • What difference in range do you see between 0 dBm and 8 dBm?

  • Hi,

    distance difference :

    RADIO_TXPOWER_TXPOWER_0dBm         30M

    RADIO_TXPOWER_TXPOWER_Pos8dBm   50M

       

    another,why 5340 and 52840 define difference ?

    5340 don't have  [+8 dBm]

    i only want to furthest distance,

    5340DK / 52840DK / 21540DK,

    What is their maximum power option?

      

        

    thanks
    Best Regards
  • nRF5340 doesn't have 8 dBm, that's correct. Max ix 3 dBm for this. 

    The range you measure seems very short. Have you configured the PA correctly? 50 m is much shorter than what you will see with only 8 dBm

    BTW, make sure you can actually use more than 10 dBm where you intend to use this device. BLE is usually max 10 dBm.

  • Hi,

    thanks for reply,

    for nRF21540DK

    nrf21540dk_nrf52840.conf

    CONFIG_BT_CTLR_ADV_EXT=y
    CONFIG_BT_CTLR_ADV_PERIODIC=y
    # CONFIG_BT_LL_SW_SPLIT=y
    # CONFIG_BT_CTLR_PHY_CODED=y
    #CONFIG_BT_USER_PHY_UPDATE=y
    
    
    # ------------FEM-------------------------------
    CONFIG_MPSL_FEM=y
    CONFIG_BT_CTLR_ADVANCED_FEATURES=y
    CONFIG_BT_CTLR_TX_PWR_MINUS_20=y
    CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=n
    CONFIG_MPSL_FEM_NRF21540_RX_GAIN_DB=0
    CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB=20

       

    prj.conf

    CONFIG_I2S=y
    CONFIG_LOG=y
    CONFIG_I2S_LOG_LEVEL_DBG=y
    CONFIG_I2S_LOG_LEVEL_INF=y
    
    CONFIG_BT=y
    CONFIG_BT_EXT_ADV=y
    CONFIG_BT_PER_ADV=y
    CONFIG_BT_DEBUG_LOG=y
    CONFIG_BT_DEVICE_NAME="PerAdv"
    
    CONFIG_NEWLIB_LIBC=y
    # CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
    
    CONFIG_HEAP_MEM_POOL_SIZE=8192
    CONFIG_MAIN_STACK_SIZE=8192
    
    CONFIG_GPIO=y
    
    # CONFIG_BT_LL_SW_SPLIT=y
    # CONFIG_BT_USER_PHY_UPDATE=y
    
    
    # Allow for large Bluetooth data packets.
    # Increase maximum data length of PDU supported in the Controller
    CONFIG_BT_L2CAP_TX_MTU=252
    CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=244
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
    CONFIG_BT_BUF_ACL_TX_SIZE=251
    CONFIG_BT_BUF_ACL_RX_SIZE=502
    
    
    
    

    i want to set maximum statically only. TX Power and GAIN

    is the PA correctly? 

    and nRF21540DK without external antenna the distance can large than 200M?

      

    Best Regards

Reply
  • Hi,

    thanks for reply,

    for nRF21540DK

    nrf21540dk_nrf52840.conf

    CONFIG_BT_CTLR_ADV_EXT=y
    CONFIG_BT_CTLR_ADV_PERIODIC=y
    # CONFIG_BT_LL_SW_SPLIT=y
    # CONFIG_BT_CTLR_PHY_CODED=y
    #CONFIG_BT_USER_PHY_UPDATE=y
    
    
    # ------------FEM-------------------------------
    CONFIG_MPSL_FEM=y
    CONFIG_BT_CTLR_ADVANCED_FEATURES=y
    CONFIG_BT_CTLR_TX_PWR_MINUS_20=y
    CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=n
    CONFIG_MPSL_FEM_NRF21540_RX_GAIN_DB=0
    CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB=20

       

    prj.conf

    CONFIG_I2S=y
    CONFIG_LOG=y
    CONFIG_I2S_LOG_LEVEL_DBG=y
    CONFIG_I2S_LOG_LEVEL_INF=y
    
    CONFIG_BT=y
    CONFIG_BT_EXT_ADV=y
    CONFIG_BT_PER_ADV=y
    CONFIG_BT_DEBUG_LOG=y
    CONFIG_BT_DEVICE_NAME="PerAdv"
    
    CONFIG_NEWLIB_LIBC=y
    # CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
    
    CONFIG_HEAP_MEM_POOL_SIZE=8192
    CONFIG_MAIN_STACK_SIZE=8192
    
    CONFIG_GPIO=y
    
    # CONFIG_BT_LL_SW_SPLIT=y
    # CONFIG_BT_USER_PHY_UPDATE=y
    
    
    # Allow for large Bluetooth data packets.
    # Increase maximum data length of PDU supported in the Controller
    CONFIG_BT_L2CAP_TX_MTU=252
    CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=244
    CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
    CONFIG_BT_BUF_ACL_TX_SIZE=251
    CONFIG_BT_BUF_ACL_RX_SIZE=502
    
    
    
    

    i want to set maximum statically only. TX Power and GAIN

    is the PA correctly? 

    and nRF21540DK without external antenna the distance can large than 200M?

      

    Best Regards

Children
Related