This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cc2541 TX and RX amplification

Other Parts Discussed in Thread: CC2541, CC2540, CC2590

Hi,

I'm trying to amplify the cc2541 TX and RX signals by calling the following HCI functions:

HCI_EXT_SetRxGainCmd(HCI_EXT_RX_GAIN_HIGH);

HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_4_DBM);

For some reason, I don't see any improvement in performance (in either RSSI signal strength or the connection distance).

I'm calling the above functions at the end of osal_init_system().

When measuring the current consumption of the cc2541 during BLE activity, I can see an increase between standard mode and high-gain/high-power mode as can be seen in the attached images below.

How is it possible that the TX/RX signals are amplified but I can't see any range improvement ?

Am I missing something here ?

Thanks,

Nadav

CC2541 current consumption during BLE activity:

RX/TX standard mode:

RX high gain mode:

RX high gain mode + TX high power mode:

  • Hi Nadav,

    The maximum output power of the CC2541 is 0 dBm, so calling HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_4_DBM); will simply default to the 0 dBm setting.

    Current consumption for RX high gain and standard gain is outlined in the datasheet.

    The difference in sensitivity between SG and HG is 6 dB, which should give you a theoretical doubling of the line of sight range. How much improvement you actually achieve will of course depend on your environment.

    Cheers,
    Fredrik
  • Hello Nadav,

    The maximum specified output power of the CC2541 is 0 dBm. So, setting to 4 dBm (CC2540 maximum) is not supported. If higher output power is desired, please consider using a range extender, such as CC2590 for up to 10 dBm TX power.

    Best wishes
  • OK, thanks.

    I think this info (max output 0dBm for cc2541) should also be reflected in the hci.h function description.

    It's easy to miss this detail when reading the current function's description:

    * @fn          HCI_EXT_SetTxPowerCmd API

    *

    * @brief       This HCI Extension API is used to set the transmit power.

    *

    *              Related Events: HCI_VendorSpecifcCommandCompleteEvent

    *

    * input parameters

    *

    * @param       txPower - For CC254x: HCI_EXT_TX_POWER_MINUS_23_DBM,

    *                                    HCI_EXT_TX_POWER_MINUS_6_DBM,

    *                                    HCI_EXT_TX_POWER_0_DBM,

    *                                    HCI_EXT_TX_POWER_4_DBM

    *

    *                        For CC26xx: HCI_EXT_TX_POWER_MINUS_21_DBM,

    *                                    HCI_EXT_TX_POWER_MINUS_18_DBM,

    *                                    HCI_EXT_TX_POWER_MINUS_15_DBM,

    *                                    HCI_EXT_TX_POWER_MINUS_12_DBM,

    *                                    HCI_EXT_TX_POWER_MINUS_9_DBM,

    *                                    HCI_EXT_TX_POWER_MINUS_6_DBM,

    *                                    HCI_EXT_TX_POWER_MINUS_3_DBM,

    *                                    HCI_EXT_TX_POWER_0_DBM,

    *                                    HCI_EXT_TX_POWER_1_DBM,

    *                                    HCI_EXT_TX_POWER_2_DBM,

    *                                    HCI_EXT_TX_POWER_3_DBM,

    *                                    HCI_EXT_TX_POWER_4_DBM,

    *                                    HCI_EXT_TX_POWER_5_DBM