Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

RTOS/LAUNCHXL-CC2640R2: System CPU Sleep Mode Configuration

Part Number: LAUNCHXL-CC2640R2

Tool/software: TI-RTOS

Hello All,

I am willing to built an Bluetooth based Custom Device using  CC2640R2F which will connected to a Bluetooth Custom appllication,

I have refereed  Project zero as reference and now to reduce Power consumption i want to put the device in sleep mode (As mentioned in Technical Reference manual Chapter 6.2)

Which will awake on Bluetooth Event or Interrupt so Please help me to use the device in Sleep Mode, 

Also If there is any other way to get the device working in Lowest Power Consumption and which supports Bluetooth Event as well As Interrupt,

Please help me with this with detailed steps,

Thanks and Regards 

Utkarsh 

  • Hi Utkarsh,

    This app note should give you an understanding on power consumption and how to measure it using a LaunchPad:

    http://www.ti.com/lit/pdf/swra478

    Section 4.2 of that section will provide details on the SimplePeripheral example. However, the details are similar to project zero if you want to stick to that.

    -Sy Su

  • Hello Sy Su,

    Thank you for replying,

    I read the "Measuring Bluetooth Low Energy Power Consumption" document and as per i made few changes in the main file of Project Zero,

    The code snippet with changes is given below,

    #ifdef POWER_SAVING
    /* Set constraints for Standby, powerdown and idle mode */
    // PowerCC26XX_SB_DISALLOW may be redundant
    i32Result = Power_setConstraint(PowerCC26XX_STANDBY);
    if (i32Result != Power_SOK)
    {
    while(1);
    }
    Power_setConstraint(PowerCC26XX_IDLE_PD_DISALLOW);
    #endif // POWER_SAVING | USE_FPGA

    Will these changes put the device in STANDBY Mode, If no should i include the below Mention Function as given in simple BLE peripheral Example

    "Power_registerNotify(Power_NotifyObj *pNotifyObj, uint_fast16_t eventTypes, Power_NotifyFxn notifyFxn,uintptr_t clientArg)"

    And How can i determine that device is in STANDBY  i.e., is there any method to check the power consumption.

    Please help me with This,

    Thanks and Regards

    Utkarsh 

  • Hi Utkarsh,

    By default in project zero, POWER_SAVING should already be defined and what was included before is sufficient enough to allow for power management. The RF core does not power on when no Bluetooth protocol events occur, such as sending an advertisement.

    For reference this was what was already included in the main.c file. Removing the POWER_SAVING define would prevent the device from entering standby and idle mode (which you wouldn't want to do in your case):

    #if !defined( POWER_SAVING )
      /* Set constraints for Standby, powerdown and idle mode */
      // PowerCC26XX_SB_DISALLOW may be redundant
      Power_setConstraint(PowerCC26XX_SB_DISALLOW);
      Power_setConstraint(PowerCC26XX_IDLE_PD_DISALLOW);
    #endif // POWER_SAVING | USE_FPGA

    Calling the Power_registerNotify will register a function to be called when a certain power event would occur. So something like the following will call rFSwitchNotifyCb when standby is entered:

    Power_registerNotify(&rFSwitchPowerNotifyObj, PowerCC26XX_ENTERING_STANDBY, (Power_NotifyFxn) rFSwitchNotifyCb, NULL);

    As detailed in the "Measuring Bluetooth Low Energy Power Consumption" application note, to check for the actual power consumption:

    1. Remove all the jumpers from the LaunchPad

    2. Connect it to the power analyzer as so:

      3. You should see something similar to this when advertising:

     

    -Sy Su