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.

CCS/CC2650: How to turn off RF core?

Part Number: CC2650


Tool/software: Code Composer Studio

I am working with CC2650MODA mounted on a custom board.

I thought following lines of code turns the RF core off so that it can save power

AdvertEnable = FALSE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &AdvertEnable);

but it turns out to turn the transmission off but not the RF core. (current draw remains the same.)

Where would I find an API for deactivating the RF core off and lessen the current draw?

  • Hello Hyunsoo,
    Where in the code do you disable advertising?
    If you disable all timers and disable advertising the device should enter standby with current consumption in the uA range.
  • Doesn't the code I post above disable advertising?

  • Yes.
    Have you made sure it is not re-enabled other places in your code and that you are not in a connection?
    What is the current draw? Have you tried to run some basic example code (without BLE) to verify what your expected current draw is? Could there be leakage through IO's or other peripherals on your custom board?
  • Is it possible that there is other API that would prompt the RF core to activate but not advertise?

    I initiate the advertisement at one place in the source code. If I change that part not to advertise, there is no other place where it would advertise to my knowledge.

    The total current draw is about 3.8mA when it is transmitting. When I change the code not to, it goes down to about 3.7mA.

    So it seems like even if the device is not visible on the BLE scanner, the RF core is active and drawing current.

  • Hello Hyunsoo,
    3.7m-3.8 mA should indicate that the device is in active idle mode. If the basic advertisement was enabled (i.e. radio active) with power management I expect lower average current.
    Which code are you using?
    Have you enabled power saving?
  • My code is based off of the Project Zero. So,

    #ifndef POWER_SAVING
        /* Set constraints for Standby, powerdown and idle mode */
        Power_setConstraint(Power_SB_DISALLOW);
        Power_setConstraint(Power_IDLE_PD_DISALLOW);
    #endif // POWER_SAVING

    this is what I have in main(). (I don't really know what they mean. Would you explain it to me?)

  • Hello Kim,

    Which software version are you using?

    This should work as long as POWER_SAVING is defined in predefined symbols:

    And that you have set up the correct standby policy in your board file:

    /*
    * ============================= Power begin ==================================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
    #endif
    const PowerCC26XX_Config PowerCC26XX_config = {
    .policyInitFxn = NULL,
    .policyFxn = &PowerCC26XX_standbyPolicy,
    .calibrateFxn = &PowerCC26XX_calibrate,
    .enablePolicy = TRUE,
    .calibrateRCOSC_LF = TRUE,
    .calibrateRCOSC_HF = TRUE,
    };

  • I am using CCSv6.

    I found that the standby policy in the board file was commented out. (I assume it has to be uncommented.)

    Also, the board file in which I found the policy is named CC2650_LAUNCHXL.c.

    Does this file stay relevant when I am loading the code onto the custom board?

  • I assume you made a board file to match your custom board or modified the CC2650_LAUNCHXL.c?
    Yes, you need to uncomment the PowerCC26XX_config settings in your board file.
  • It says POWERCC26XX identifiers are undefined. (config, standby, and calibrate)

    What files do I need to include?
  • Hello Kim,
    You might have incompatible versions of your board file and TI-RTOS version.
    For development I recommend you to start of with a fresh copy of the simple_peripheral example from the BLE-STACK-2-2-1 found here:
    www.ti.com/.../BLE-STACK