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.

CC2650: Simple Peripheral Example not entering into standby mode upon no connection

Part Number: CC2650

Hi,

I have used pinStandby example to measure standby current consumption of CC2650 launchpad.  It is consuming 10 uA when it is in sleep mode with LED's off. I have used only Green LED and removed jumper from RED LED. When green led is on it consumes 11.5 mA of power.

I have read from forum (e2e.ti.com/.../611493 that in simple_peripheral example device automatically enters into sleep mode upon no connection.  However after 2 mins of no connection device is still advertising. How long will it takes to enter into standby mode?  I have defince POWER_SAVING in main.c. Do I need any further modification in code? As per my understanding power policy function automatically puts device into standby mode and I dont need to do anything else.

What am I missing here? Should I expect same amount of current consumption around 10 uA as achieved in pinstandby example in case of simple peripheral ?

  • Hi Bluto,

    Assigning an expert to comment.

    Thanks,
    Elin

  • simple_peripheral example enable advertising by default. If you meant to disable advertising in the beginning, you can set initialAdvertEnable to FALSE in SimpleBLEPeripheral_init to make it.

  • Hi,

    As mentioned by , you can disable advertising if you want.

    That being said, the device is entering standby mode in between the advertisements.

    The standby current is expected to be the same as the one you measured with the pinStandby example. You can review the datasheet of the part to see the standby current expected depending on the configuration of the device and the temperature.

    I hope this will help,

    Kind regards,

  • Hi,

    I have modified code to start periodic clock upon startup and added following code in Simple BLEPeripheral_performPeriodicTask() function. Also disabled advertise enabled part in other part of code like in SimpleBLEPeripheral_processStateChangeEvt() function.

    This seems to do trick and toggles advertising on and off. However when I put break point in two if statements it enters only if(value) part only. Is it expected behaviour? Also I could get current consumption fo 10uA in standby mode when not advertising

    static void SimpleBLEPeripheral_performPeriodicTask(void)
    {
        System_printf("BLE periodic task\n");
        System_flush();

        char status, value;
        status = GAPRole_GetParameter(GAPROLE_ADVERT_ENABLED, &value);
        uint8_t initialAdvertEnable;

        if(value){
            //Switch off advertisizng
            initialAdvertEnable = 0;
            GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),  &initialAdvertEnable);
        }

        if(!value){
            //Switch on advertisizng
            initialAdvertEnable = 1;
            GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),  &initialAdvertEnable);

        }


    }

  • Hi,

    The question you are asking here is not really related to the initial topic. In order to keep the forum easy to read, please mark the current thread as resolved and open a new one for this question.

    Kind regards,